配置经典负载均衡器的 Connection Draining - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置经典负载均衡器的 Connection Draining

要确保经典负载均衡器停止向正在取消注册或运行状况不佳的实例发送请求,并使现有连接保持打开状态,请使用 Connection Draining。这将使负载均衡器能够完成向正在取消注册或运行状况不佳的实例发出的进行中请求。

启用连接耗尽时,您可以指定在将实例报告为已取消注册之前,负载均衡器使连接保持活动状态的最大时间。最大超时值可设置为介于 1 和 3600 秒之间 (默认值为 300 秒)。当达到最大时间限制时,负载均衡器会强制关闭与正在取消注册的实例的连接。

在为进行中请求提供服务时,负载均衡器会将正在取消注册的实例的状态报告为 InService: Instance deregistration currently in progress。当正在取消注册的实例为所有进行中请求提供完服务时,或在达到最大超时限制时,负载均衡器会将实例状态报告为 OutOfService: Instance is not currently registered with the LoadBalancer

如果实例运行状况不佳,则负载均衡器会将实例状态报告为 OutOfService。如果存在向运行状况不佳的实例发出的进行中请求,则会完成这些请求。最大超时限制不适用于与运行状况不佳的实例的连接。

如果您的实例属于 Auto Scaling 组,并且为负载均衡器启用了 Connection Draining,则 Auto Scaling 在由于扩展事件或运行状况检查替换而终止实例之前,将会等待进行中的请求完成或等待最大超时过期。

如果您希望负载均衡器立即关闭与正在取消注册的实例或运行状况不佳的实例的连接,则可以禁用连接耗尽。禁用连接耗尽后,不会完成向正在取消注册的实例或运行状况不佳的实例发出的任何进行中请求。

启用 Connection Draining

您可以随时为负载均衡器启用连接耗尽。

New EC2 experience
使用控制台启用连接耗尽
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择负载均衡器的名称以打开其详细信息页面。

  4. 属性选项卡上,选择编辑

  5. 编辑负载均衡器属性页面的流量配置部分中,选择启用连接耗尽

  6. (可选)对于超时(耗尽间隔时间),键入一个介于 1 到 3600 秒之间的值。如果您不做任何选择,则将使用 300 秒的默认值。

  7. 选择保存更改

Old EC2 experience
使用控制台启用连接耗尽
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择您的负载均衡器。

  4. Instances 选项卡上,对于 Connection Draining,选择 (Edit)

  5. Configure Connection Draining 页面上,选择 Enable Connection Draining

  6. (可选) 对于 Timeout,键入在 1 到 3600 秒之间的值。

  7. 选择 Save

使用 Amazon CLI 启用连接耗尽

使用以下 modify-load-balancer-attributes 命令:

aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":true,\"Timeout\":300}}"

以下为响应示例:

{ "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": true, "Timeout": 300 } }, "LoadBalancerName": "my-loadbalancer" }

禁用 Connection Draining

您可以随时为负载均衡器禁用连接耗尽。

New EC2 experience
使用控制台禁用连接耗尽
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择负载均衡器的名称以打开其详细信息页面。

  4. 属性选项卡上,选择编辑

  5. 编辑负载均衡器属性页面的流量配置部分中,取消选择启用连接耗尽

  6. 选择保存更改

Old EC2 experience
使用控制台禁用连接耗尽
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择您的负载均衡器。

  4. Instances 选项卡上,对于 Connection Draining,选择 (Edit)

  5. Configure Connection Draining 页面上,清除 Enable Connection Draining

  6. 选择 Save

使用 Amazon CLI 禁用连接耗尽

使用以下 modify-load-balancer-attributes 命令:

aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":false}}"

以下为响应示例:

{ "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": false, "Timeout": 300 } }, "LoadBalancerName": "my-loadbalancer" }