跳至主要内容

Elastic Load Balancer 文档

概述

弹性负载均衡器可将传入的应用流量分发到多个目标,如 Amazon EC2 实例、容器、IP 地址、Lambda 函数和虚拟设备。弹性负载均衡器提供四种类型的负载均衡器,分别是应用程序负载均衡器、网络负载均衡器、网关负载均衡器和传统负载均衡器。

Application Load Balancer

Application Load Balancer 在请求级别(第7层)运行,根据请求的内容将流量路由到目标(EC2 实例、容器、IP 地址和 Lambda 函数)。Application Load Balancer 有助于使用最新的 SSL/TLS 密码和协议简化和提高应用程序的安全性。  

第 7 层负载均衡

您可以根据请求属性(例如 X-Forwarded-For 标头)对目标(Amazon EC2 实例、微服务和容器)的 HTTP/HTTPS 流量进行负载均衡。

安全性

使用 Amazon Virtual Private Cloud(VPC)时,您可以创建和管理与弹性负载均衡器关联的安全组,以提供其他联网和安全选项。您可以将应用程序负载均衡器配置为面向互联网的负载均衡器,也可以创建一个没有公有 IP 地址的负载均衡器作为内部(非面向互联网的)负载均衡器。

应用负载均衡器支持基于 http_desync_guardian 库实施取消同步防护。借助该功能,您可以提高应用程序抵御 HTTP 漏洞的能力。您还能根据自身的应用程序架构选择对可疑请求的容忍级别。 

HTTPS 支持

应用程序负载均衡器支持客户端和负载均衡器之间的 HTTPS 终止。应用程序负载均衡器还通过 Amazon Identity and Access Management(IAM)和 Amazon Certificate Manager 为预定义的安全策略提供 SSL 证书管理。

HTTP/2 和 gRPC 支持

HTTP/2 是超文本传输协议 (HTTP) 的新版本,它使用单个多路复用连接允许在同一连接上发送多个请求。它还会压缩标头数据,然后再以二进制格式发送,并支持与客户端的 SSL 连接。

应用程序负载均衡器可以在微服务之间或启用了 gRPC 的客户端和服务之间路由和负载均衡 gRPC 流量。这样可以在架构中引入 gRPC 流量管理,而无需更改客户端或服务上的任何底层基础设施。gRPC 使用 HTTP/2 进行传输。它具有二进制序列化、支持多种语言等特性。

TLS 卸载

您可以创建使用加密连接(也称为 SSL 卸载)的 HTTPS 侦听器。此功能支持在负载均衡器与启动 SSL 或 TLS 会话的客户端之间进行流量加密。Application Load Balancer 支持客户端 TLS 会话终止。这样,您就可以将 TLS 终止任务卸载到负载均衡器,同时保留后端应用程序的源 IP 地址。您可以为 TLS 侦听器选择预定义的安全策略,以帮助满足特定的合规性和安全性标准。 Amazon Certificate Manager(ACM)或 Amazon IAM 可用于管理您的服务器证书。 

您可以使用 SNI 通过单个 TLS 侦听器为多个安全网站提供服务。如果客户端中的主机名与多个证书匹配,负载均衡器将根据智能选择算法选择要使用的证书。

粘性会话

粘性会话是一种将来自同一客户端的请求路由到同一目标的机制。应用程序负载均衡器支持基于持续时间的 Cookie 和基于应用程序的 Cookie。粘性会话在目标组级别启用。您可以在所有目标组中结合使用基于持续时间的粘性、基于应用程序的粘性和无粘性。

原生 IPv6 支持

Application Load Balancer 支持 VPC 中的原生 Internet 协议版本 6 (IPv6)。这将允许客户端通过 IPv4 或 IPv6 连接到 Application Load Balancer。

请求跟踪

应用程序负载均衡器会在进入负载均衡器的所有请求上注入新的自定义标识符“X-Amzn-Trace-Id”HTTP 标头。请求跟踪功能让您可以通过唯一 ID 跟踪请求在各类服务间的流转过程。您可以使用这个唯一的跟踪标识符来帮助排查应用架构中的性能问题或耗时异常。 

重定向 

Application Load Balancer 可以将传入的请求从一个 URL 重定向到另一个 URL。这包括将 HTTP 请求重定向到 HTTPS 请求的功能,这使您能够提高浏览安全性,同时能够提高网站的搜索排名和 SSL/TLS 分数。您还可以使用重定向将用户发送到其他网站;例如,从应用程序的旧版本重定向到新版本

固定响应

Application Load Balancer 可以控制应用程序处理哪些客户端请求。这样,您就可以使用 HTTP 错误响应代码和来自负载均衡器本身的自定义错误消息来响应传入的请求,而无需将请求转发到应用程序。

WebSockets 支持

WebSockets 允许服务器与最终用户交换实时消息,而无需最终用户请求(或轮询)服务器进行更新。WebSockets 协议通过长时间运行的 TCP 连接在客户端和服务器之间提供双向通信渠道。

服务器名称指示 (SNI)

服务器名称指示(SNI)是 TLS 协议的扩展,客户端通过该协议在 TLS 握手开始时指示要连接的主机名。负载均衡器可以通过同一个侦听器提供多个证书,这使其能够使用单个侦听器支持多个网站。应用程序负载均衡器还支持带有 SNI 的智能证书选择算法。如果客户端指示的主机名与多个证书匹配,则负载均衡器会根据包括客户端功能在内的多种因素来确定要使用的证书。

IP 地址作为目标

您可以使用应用程序后端的 IP 地址作为目标,对托管在亚马逊云科技或本地的应用程序进行负载均衡。这样即可对托管在某个 IP 地址或某个实例的接口上的应用程序后端进行负载均衡。托管在同一实例上的每个应用程序都可以有一个关联的安全组,并使用相同的端口。您还可以使用 IP 地址作为目标,对在本地位置(通过 Direct Connect 或 VPN 连接)和对等 VPC 中托管的应用程序进行负载均衡。跨亚马逊云科技和本地资源进行负载均衡的能力有助于您迁移到云、突增到云或失效转移到云。 

Lambda 函数作为目标

应用程序负载均衡器支持调用 Lambda 函数来处理 HTTP(S) 请求,使用户能够从 HTTP 客户端(包括 Web 浏览器)访问无服务器应用程序。您可以将 Lambda 函数注册为负载均衡器的目标,并利用对基于内容的路由规则的支持将请求路由到不同的 Lambda 函数。对于使用服务器和无服务器计算的应用程序,您可以将应用程序负载均衡器用作通用 HTTP 端点。

基于内容的路由

如果您的应用程序由多个单独的服务组成,则应用程序负载均衡器可以根据请求的内容(例如主机字段、路径 URL、HTTP 标头、HTTP 方法、查询字符串或源 IP 地址)将请求路由到服务。

基于主机的路由:您可以根据 HTTP 标头的主机字段路由客户端请求,以便从同一负载均衡器路由到多个域。

基于路径的路由:您可以根据 HTTP 标头的 URL 路径来路由客户端请求。

基于 HTTP 标头的路由:您可以根据标准或自定义 HTTP 标头的值路由客户端请求。

基于 HTTP 方法的路由:您可以根据标准或自定义 HTTP 方法路由客户端请求。

基于查询字符串参数的路由:您可以根据查询字符串或查询参数路由客户端请求。

基于源 IP 地址 CIDR 的路由:您可以根据请求发起地的源 IP 地址 CIDR 路由客户端请求。

容器化应用程序支持

应用程序负载均衡器通过在单个 Amazon EC2 实例上的多个端口之间进行负载均衡来提供容器支持。使用 ECS,您可以在 ECS 任务定义中指定动态端口,这可为安排在 EC2 实例上的容器提供未使用的端口。ECS 调度器会使用此端口将任务添加到负载均衡器。

Web 应用程序防火墙

您可以使用 Amazon WAF 帮助保护应用程序负载均衡器上的 Web 应用程序。 

带负载均衡算法的慢启动模式

Application Load Balancer 支持循环负载均衡算法。此外,Application Load Balancer 还支持循环算法的慢启动模式,该算法允许您添加新目标,而不会因为大量请求使新目标不堪重负。在慢启动模式下,目标会根据您指定的提升期限在接受其公平份额的请求之前进行预热。 

用户身份验证

您可以将应用程序中的身份验证功能卸载到应用程序负载均衡器。应用负载均衡器将帮助在用户访问云应用程序时对其进行身份验证。应用程序负载均衡器已与 Amazon Cognito 集成;如果您使用的是与 OpenID Connect 兼容的自定义身份提供商(IdP)方案,应用负载均衡器也可直接与该身份提供商连接,从而为企业用户进行身份验证。

Network Load Balancer

Network Load Balancer 在连接级别(第 4 层)运行,根据 IP 协议数据将连接路由到 Amazon VPC 内的目标(Amazon EC2 实例、微服务和容器)。Network Load Balancer 能够每秒处理数百万个请求,同时保持低延迟。Network Load Balancer 经过优化,可以在每个可用区域使用单个静态 IP 地址的同时处理突发和不稳定的流量模式。它与其他亚马逊云科技服务集成,如 Auto Scaling、Amazon EC2 Container Service(ECS)、Amazon CloudFormation 和 ACM。

基于连接的第 4 层负载均衡

您可以对 TCP 和 UDP 流量进行负载均衡,以将连接路由到目标:Amazon EC2 实例、微服务和容器。

TLS 卸载

Network Load Balancer 支持客户端 TLS 会话终止。这使您能够将 TLS 终止任务卸载到负载平衡器,同时保留后端应用程序的源 IP 地址。您可以从中为 TLS 侦听器预定义的安全策略中进行选择,以帮助您满足某些法规遵从性和安全标准。   

您可以使用 SNI 使用单个 TLS 侦听器为多个网站提供服务。如果客户端中的主机名与多个证书匹配,则负载平衡器会根据智能选择算法选择要使用的证书。

粘性会话

粘性会话(源 IP 关联性)是一种将同一客户端的请求路由到同一目标的机制。粘性在目标组级别定义。

低延迟

网络负载均衡器可为延迟敏感型应用程序提供低延迟。

保留源 IP 地址

网络负载均衡器保留客户端源 IP,允许后端查看客户端的 IP 地址。然后,应用程序可以将其用于进一步处理。

静态 IP 支持

网络负载均衡器自动为每个可用区(子网)提供静态 IP,应用程序可将其用作负载均衡器的前端 IP。

弹性 IP 支持

Network Load Balance 允许您选择为每个可用区(子网)分配弹性 IP,从而提供您自己的固定 IP。

DNS 失效转移

如果没有向网络负载均衡器注册任何运行状况良好的目标,或者给定区域中的网络负载均衡器节点运行状况不佳,则您可以设置 Amazon Route 53 将流量定向到其他可用区中的负载均衡器节点。 

与 Amazon Route 53 集成

如果您的 Network Load Balancer 没有响应,与 Route 53 的集成将从服务中删除不可用的负载平衡器 IP 地址,如果可用,将流量引导到另一个区域的备用 Network Load Balancer。

与亚马逊云科技服务集成

Network Load Balancer 与其他亚马逊云科技服务集成,如自动缩放、Elastic Container Service(ECS)、CloudFormation、Elastic BeanStack、CloudWatch、Config、CloudTrail、CodeDeploy 和 ACM。

长期 TCP 连接

网络负载均衡器支持长期 TCP 连接。

中央 API 支持

Network Load Balancer 使用与应用程序负载平衡器相同的 API。这将使您能够在同一 Amazon EC2 实例上跨多个端口处理目标组、运行状况检查和负载平衡,以支持容器化应用程序。

区域隔离

Network Load Balancer 旨在为单个区域中的应用程序架构而设计。如果可用区中发生故障,网络负载平衡器将故障转移到其他正常的可用区。虽然我们建议客户在多个可用区中配置负载平衡器和目标以实现高可用性,但可以在单个可用区中启用网络负载平衡器,以支持需要区域隔离的架构。

Gateway Load Balancer

Gateway Load Balancer 可帮助您部署、扩展和管理第三方虚拟设备。它为您提供了一个网关,用于在多个虚拟设备之间分配流量,同时根据需求将流量放大或缩小。这有助于消除网络中的潜在故障点,并提高可用性。

您可以直接在 Amazon Marketplace 中从第三方供应商处查找、测试和购买虚拟设备。这种集成的经验可帮助您完成部署过程。

扩展虚拟设备实例

Gateway Load Balancer 与 Amazon Auto Scaling 组一起工作,允许您为虚拟设备实例设置目标利用率级别。这有助于您为用例设置最佳的资源量。当流量增加时,会创建其他实例并将其连接到网关负载平衡器。当流量恢复到正常水平时,这些实例将终止。

为第三方虚拟设备带来更高的可用性

Gateway Load Balancer 通过在正常的虚拟设备中路由流量,并在虚拟设备变得不正常时重新路由流量,帮助提高可用性和可靠性。Gateway Load Balancer 以可配置的节奏对每个虚拟设备实例运行运行状况检查。如果连续失败的测试数超过设置的阈值,则设备将被宣布为不正常,流量将不再路由到该实例。

监控持续运行状况和绩效指标

您可以使用每个可用区的 CloudWatch 指标监控网关负载均衡器。这些指标包括 ENI/接口的总数、ENI/接口的 IP 地址、入站/出站的数据包数、入站/出站的字节数、数据包错误和丢包、负载均衡器指标(例如,目标设备实例的数量、目标运行状况、运行状况良好/不佳的目标计数、当前的活动流量、最大流量和已处理字节数)和 VPC 端点指标(例如,网关负载均衡器端点映射的数量)。

通过 Amazon Marketplace 简化部署

部署新的虚拟设备可以像在 Amazon Marketplace 中选择设备一样简单。这进一步简化了部署。

使用网关负载均衡器端点可确保通过亚马逊云科技网络建立私有连接

Gateway Load Balancer Endpoints 被 Gateway Load Balancer 用于连接到网络流量的源和目标,Gateway Load Balancer 是一种新型的 VPC 端点。它由 PrivateLink 技术支持,通过专用连接连接 Internet 网关、VPC 和其他网络资源。

Classic Load Balancer

经典负载平衡器跨多个 Amazon EC2 实例提供基本负载平衡,并在请求级别和连接级别运行。

第 4 层或第 7 层负载均衡

您可以对 HTTP/HTTPS 应用程序执行负载均衡,并使用特定于第 7 层的功能,例如 X 转发会话和粘性会话。对于纯粹依赖 TCP 协议的应用程序,您还可以使用严格的第 4 层负载均衡。

SSL 卸载

Classic Load Balancer 支持 SSL 终端,包括从应用程序实例卸载 SSL 解密、集中管理 SSL 证书以及通过可选公共密钥身份验证加密后端实例。灵活的密码支持允许您控制负载均衡器向客户端提供的密码和协议。

IPv6 支持

经典负载均衡器支持将互联网协议版本 4 和 6(IPv4 和 IPv6)用于 EC2-Classic 网络。

其他信息

有关服务控制、安全特性及功能的其他信息,包括有关存储、检索、修改、限制和删除数据的信息,请参见 https://docs.amazonaws.cn/。以上链接包含的信息不构成光环新网关于亚马逊云科技(北京区域)的客户协议或西云数据关于亚马逊云科技(宁夏区域)的客户协议的“文档”的一部分,也不构成您与光环新网或西云数据之间就您使用亚马逊云科技中国区域服务达成的其他协议的任何部分。