Elastic Load Balancing
Application Load Balancer
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

应用程序负载均衡器

负载均衡器 充当客户端的单一接触点。客户端将请求发送到负载均衡器,然后负载均衡器将请求发送到两个或更多可用区中的目标 (例如 EC2 实例)。要配置您的负载均衡器,可以创建目标组,然后将目标注册到目标组。您还可以创建侦听器来检查来自客户端的连接请求,并创建侦听器规则以将来自客户端的请求路由到一个或多个目标组中的目标。

有关更多信息,请参阅 Elastic Load Balancing 用户指南 中的 Elastic Load Balancing 工作原理

负载均衡器安全组

安全组 起到防火墙的作用,可控制允许往返于负载均衡器的流量。您可以选择端口和协议以允许入站和出站流量。

与负载均衡器安全组关联的安全组的规则必须允许侦听器和运行状况检查端口上的双向流量。当您将侦听器添加到负载均衡器或更新目标组的运行状况检查端口时,您必须检查您的安全组规则,确保它们允许新端口上的双向流量。有关更多信息,请参阅 推荐的规则

负载均衡器状态

负载均衡器可能处于下列状态之一:

provisioning

正在设置负载均衡器。

active

负载均衡器已完全设置并准备好路由流量。

failed

负载均衡器无法设置。

负载均衡器属性

以下是负载均衡器属性:

access_logs.s3.enabled

指示是否启用存储在 Amazon S3 中的访问日志。默认为 false

access_logs.s3.bucket

访问日志所用的 S3 存储桶的名称。如果启用访问日志,则此属性是必需的。有关更多信息,请参阅 存储桶权限

access_logs.s3.prefix

S3 存储桶中位置的前缀。

deletion_protection.enabled

指示是否启用删除保护。默认为 false

idle_timeout.timeout_seconds

空闲超时值 (以秒为单位)。默认值为 60 秒。

routing.http2.enabled

指示是否启用了 HTTP/2。默认为 true

IP 地址类型

在创建面向 Internet 的负载均衡器时或在该负载均衡器处于活动状态后,可以设置其 IP 地址类型。请注意,内部负载均衡器必须使用 IPv4 地址。

以下是负载均衡器 IP 地址类型:

ipv4

负载均衡器仅支持 IPv4 地址 (例如,192.0.2.1)

dualstack

负载均衡器支持 IPv4 和 IPv6 地址 (例如,2001:0db8:85a3:0:0:8a2e:0370:7334)。

使用 IPv4 地址与负载均衡器通信的客户端将解析 A 记录,使用 IPv6 地址与负载均衡器通信的客户端将解析 AAAA 记录。但是,无论客户端以何种方式与负载均衡器通信,负载均衡器均使用 IPv4 地址与其目标通信。

有关更多信息,请参阅 Application Load Balancer 的 IP 地址类型

删除保护

为了防止您的负载均衡器被意外删除,您可以启用删除保护。默认情况下,已为负载均衡器禁用删除保护。

如果您为负载均衡器启用删除保护,则必须先禁用删除保护,然后才能删除负载均衡器。

使用控制台启用删除保护

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. Description 选项卡上,选择 Edit attributes

  5. 编辑负载均衡器属性页面上,为删除保护选择启用,然后选择保存

  6. 选择 Save

使用控制台禁用删除保护

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. Description 选项卡上,选择 Edit attributes

  5. 编辑负载均衡器属性页面上,为删除保护清除启用,然后选择保存

  6. 选择 Save

使用 AWS CLI 启用或禁用删除保护

使用带 deletion_protection.enabled 属性的 modify-load-balancer-attributes 命令。

连接空闲超时

对于客户端通过负载均衡器发出的每个请求,负载均衡器将维护两个连接。前端连接是客户端和负载均衡器之间的连接,后端连接是负载均衡器和目标之间的连接。负载均衡器管理空闲超时,当在指定时间段内没有通过连接发送任何数据时,将触发空闲超时。超过空闲超时期限后,如果没有发送或接收任何数据,负载均衡器将关闭连接。

默认情况下,Elastic Load Balancing 将空闲超时值设为 60 秒。因此,如果在请求过程中,目标未至少每 60 秒发送一些数据,负载均衡器可以关闭前端连接。为确保长时间运行的操作 (例如文件上传) 有足够时间来完成,请在到达每个空闲超时期限前发送至少 1 个字节的数据,并根据需要增大空闲超时期限的长度。

对于后端连接,我们建议您对 EC2 实例启用 HTTP 保持连接选项。您可以在 EC2 实例的 Web 服务器设置中启用 HTTP 保持活动选项。如果您启用 HTTP 保持活动选项,负载均衡器即可重复使用后端连接,直到保持活动超时过期。此外,我们建议您将应用程序的空闲超时配置为大于负载均衡器的空闲超时的值。

使用控制台更新空闲超时值

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. Description 选项卡上,选择 Edit attributes

  5. Edit load balancer attributes 页面上,键入 Idle timeout 的值 (以秒为单位)。有效范围为 1-4000。默认值为 60 秒。

  6. 选择 Save

使用 AWS CLI 更新空闲超时值

使用带 idle_timeout.timeout_seconds 属性的 modify-load-balancer-attributes 命令。

Application Load Balancer 和 AWS WAF

您可以使用 AWS WAF 和 应用程序负载均衡器 以根据 Web 访问控制列表 (web ACL) 中的规则允许或阻止请求。有关更多信息,请参阅 AWS WAF 开发人员指南 中的使用 Web ACL