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

配置传统负载均衡器的跨区域负载均衡

如果 传统负载均衡器的负载均衡器节点可以在不考虑可用区的情况下分布请求,这称为跨区域负载均衡。启用了跨区域负载均衡时,负载均衡器节点会在对负载均衡器启用的可用区之间均匀地分布请求。否则,每个负载均衡器节点仅向其可用区中的实例分布请求。例如,如果您在可用区 us-west-2a 中有 10 个实例,在 us-west-2b 中有 2 个实例,则在启用了跨区域负载均衡时,请求会在全部 12 个实例间均匀分布。否则,us-west-2b 中的 2 个实例便会与 us-west-2a 中的 10 个实例承担相同的请求数。

跨区域负载均衡可降低在每个启用的可用区中保持相同数量实例的需求,并提高应用程序处理一个或多个实例丢失情况的能力。但我们仍然建议您在每个已启用的可用区中保持大致相等的实例数,以实现更高的容错能力。

对于客户端缓存 DNS 查找所在的环境,传入请求可能会优先选择一个可用区。通过使用跨区域负载均衡,请求负载中的这种不平衡将分散在此区域中的所有可用实例中,从而减小操作不良的客户端产生的影响。

在创建 传统负载均衡器时,跨区域负载均衡的默认设置取决于创建负载均衡器的方式。默认情况下,使用 API 或 CLI 时将禁用跨区域负载均衡。默认情况下,使用 AWS 管理控制台 时启用跨区域负载均衡的选项处于选中状态。创建 传统负载均衡器后,您随时可以启用或禁用跨区域负载均衡。

启用跨区域负载均衡

您随时可以对 传统负载均衡器启用跨区域负载均衡。

使用控制台启用跨区域负载均衡

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

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

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

  4. Description 选项卡上,选择 Change cross-zone load balancing setting

  5. Configure Cross-Zone Load Balancing 页面上,选择 Enable

  6. 选择 Save

使用 AWS CLI 启用跨区域负载均衡

  1. 使用以下 modify-load-balancer-attributes 命令将负载均衡器的 CrossZoneLoadBalancing 属性设置为 true

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

    以下为响应示例:

    { "LoadBalancerAttributes": { "CrossZoneLoadBalancing": { "Enabled": true } }, "LoadBalancerName": "my-loadbalancer" }
  2. (可选) 使用以下 describe-load-balancer-attributes 命令验证是否对您的负载均衡器启用了跨区域负载均衡:

    aws elb describe-load-balancer-attributes --load-balancer-name my-loadbalancer

    以下为响应示例:

    { "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": false, "Timeout": 300 }, "CrossZoneLoadBalancing": { "Enabled": true }, "ConnectionSettings": { "IdleTimeout": 60 }, "AccessLog": { "Enabled": false } } }

禁用跨区域负载均衡

您随时可以对负载均衡器禁用跨区域负载均衡选项。

使用控制台禁用跨区域负载均衡

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

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

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

  4. Description 选项卡上,选择 Change cross-zone load balancing

  5. Configure Cross-Zone Load Balancing 页面上,选择 Disable

  6. 选择 Save

要禁用跨区域负载均衡,请将负载均衡器的 CrossZoneLoadBalancing 属性设置为 false

使用 AWS CLI 禁用跨区域负载均衡

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

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

    以下为响应示例:

    { "LoadBalancerAttributes": { "CrossZoneLoadBalancing": { "Enabled": false } }, "LoadBalancerName": "my-loadbalancer" }
  2. (可选) 使用以下 describe-load-balancer-attributes 命令验证是否对您的负载均衡器禁用了跨区域负载均衡:

    aws elb describe-load-balancer-attributes --load-balancer-name my-loadbalancer

    以下为响应示例:

    { "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": false, "Timeout": 300 }, "CrossZoneLoadBalancing": { "Enabled": false }, "ConnectionSettings": { "IdleTimeout": 60 }, "AccessLog": { "Enabled": false } } }