目标组的跨可用区负载均衡
负载均衡器的节点将来自客户端的请求分配给已注册目标。启用跨可用区负载均衡后,每个负载均衡器节点会在所有已注册可用区中的已注册目标之间分配流量。禁用跨可用区负载均衡后,每个负载均衡器节点会仅在其可用区中的已注册目标之间分配流量。这可能是因为可用区故障域优先于区域性故障域,从而确保运行状况良好可用区不受运行状况不佳可用区的影响,或者改善整体延迟。
对于应用程序负载均衡器,始终在负载均衡器级别启用跨可用区负载均衡,并且无法关闭。对于目标组,默认设置是使用负载均衡器设置,但您可以通过在目标组级别明确关闭跨可用区负载均衡来覆盖默认设置。
注意事项
-
当跨可用区负载均衡关闭时,不支持目标粘性。
-
当跨可用区负载均衡关闭时,不支持 Lambda 函数作为目标。
-
如果任何目标的参数
AvailabilityZone
设置为all
,则尝试通过ModifyTargetGroupAttributes
API 关闭跨可用区负载均衡会导致错误。 -
注册目标时,
AvailabilityZone
参数是必需的。仅当跨可用区负载均衡关闭时,才允许特定可用区值。否则,该参数将被忽略并视为all
。
最佳实践
-
针对每个目标组,在您预期利用的所有可用区内规划足够的目标容量。如果无法为所有参与的可用区规划足够的容量,我们建议您继续启用跨可用区负载均衡。
-
使用多个目标组配置应用程序负载均衡器时,请确保所有目标组都参与配置区域内的相同可用区。这是为了避免在跨可用区负载均衡关闭时可用区为空,因为这会对进入空可用区的所有 HTTP 请求触发 503 错误。
-
请避免创建空子网。应用程序负载均衡器通过 DNS 公开空子网的区域 IP 地址,这会对 HTTP 请求触发 503 错误。
-
在某些情况下,关闭了跨可用区负载均衡的目标组在每个可用区都有足够的计划目标容量,但可用区中的所有目标都变得不正常。当至少有一个目标组包含所有运行状况不佳的目标时,将从 DNS 中删除负载均衡器节点的 IP 地址。在目标组拥有至少一个运行状况良好的目标后,IP 地址将恢复到 DNS。
关闭跨可用区负载均衡
您可以随时对应用程序负载均衡器目标组关闭跨可用区负载均衡。
使用控制台关闭跨可用区负载均衡
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的 Load Balancing(负载均衡)下,选择 Target Groups(目标组)。
-
选择目标组的名称以打开其详细信息页面。
-
在 Attributes(属性)选项卡上,选择 Edit(编辑)。
-
在 Edit target group attributes(编辑目标组属性)页面上,为 Cross-zone load balancing(跨可用区负载均衡)选择 Off(关闭)。
-
选择 Save changes(保存更改)。
使用 Amazon CLI 关闭跨可用区负载均衡
使用 modify-target-group-attributes 命令,并将 load_balancing.cross_zone.enabled
属性设置为 false
。
aws elbv2 modify-target-group-attributes --target-group-arn
my-targetgroup-arn
--attributes Key=load_balancing.cross_zone.enabled,Value=false
以下为响应示例:
{
"Attributes": [
{
"Key": "load_balancing.cross_zone.enabled",
"Value": "false"
},
]
}
启用跨可用区负载均衡
您可以随时对应用程序负载均衡器目标组启用跨可用区负载均衡。目标组级别的跨可用区负载均衡设置会覆盖负载均衡器级别的设置。
使用控制台启用跨可用区负载均衡
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的 Load Balancing(负载均衡)下,选择 Target Groups(目标组)。
-
选择目标组的名称以打开其详细信息页面。
-
在 Attributes(属性)选项卡上,选择 Edit(编辑)。
-
在 Edit target group attributes(编辑目标组属性)页面上,为 Cross-zone load balancing(跨可用区负载均衡)选择 On(打开)。
-
选择 Save changes(保存更改)。
使用 Amazon CLI 启用跨可用区负载均衡
使用 modify-target-group-attributes 命令,并将 load_balancing.cross_zone.enabled
属性设置为 true
。
aws elbv2 modify-target-group-attributes --target-group-arn
my-targetgroup-arn
--attributes Key=load_balancing.cross_zone.enabled,Value=true
以下为响应示例:
{
"Attributes": [
{
"Key": "load_balancing.cross_zone.enabled",
"Value": "true"
},
]
}