目标组运行状况
默认情况下,只要目标组至少有一个运行状况良好的目标,就会被视为运行状况良好。如果您的实例集很大,则仅有一个运行状况良好的目标为流量提供服务是不够的。相反,您可以指定必须运行状况良好的目标数量下限或最低百分比,以及当运行状况良好的目标低于指定阈值时负载均衡器将采取哪些操作。这样可以提高可用性。
运行状况不佳状态的操作
您可以为以下操作配置运行状况良好阈值:
-
DNS 故障转移 — 当某区域中运行状况良好的目标低于阈值时,我们会在 DNS 中将该区域的负载均衡器节点的 IP 地址标记为运行状况不佳。因此,当客户端解析负载均衡器 DNS 名称时,流量将会仅路由到运行状况良好的区域。
-
路由故障转移 - 当某区域中运行状况良好的目标低于阈值时,负载均衡器会将流量发送到负载均衡器节点可用的所有目标(包括运行状况不佳的目标)。这增加了客户端连接成功的机会,尤其是在目标暂时未能通过运行状况检查时,并降低了运行状况良好的目标过载的风险。
要求和注意事项
-
不能将此功能用于目标是 Lambda 函数的目标组。如果应用程序负载均衡器是网络负载均衡器或全局加速器的目标,请不要为 DNS 故障转移配置阈值。
-
如果为某项操作指定了两种类型的阈值(计数和百分比),则负载均衡器会在违反任一阈值时执行该操作。
-
如果为这两项操作都指定了阈值,则 DNS 故障转移的阈值必须大于或等于路由故障转移的阈值,以便 DNS 故障转移会在路由故障转移时或之前发生。
-
如果您将阈值指定为百分比,我们将根据在目标组中注册的目标总数动态计算该值。
-
目标总数取决于关闭还是打开跨区域负载均衡。如果跨区域负载均衡处于关闭状态,则每个节点仅向自己区域中的目标发送流量,这意味着阈值将分别应用于每个已启用区域中的目标数量。如果跨可用区负载均衡处于打开状态,则每个节点将流量发送到所有已启用区域中的所有目标,这意味着指定的阈值将应用于所有已启用区域中的目标总数。
-
通过 DNS 故障转移,我们会从负载均衡器的 DNS 主机名中删除运行状况不佳区域的 IP 地址。但是,本地客户端 DNS 缓存中可能会包含这些 IP 地址,直到 DNS 记录中的生存时间 (TTL) 到期(60 秒)。
-
当发生 DNS 故障转移时,这会影响与负载均衡器关联的所有目标组。请确保剩余区域中有足够的容量来处理这些额外流量,尤其是在跨区域负载均衡关闭的情况下。
-
使用 DNS 故障转移时,如果所有负载均衡器区域都被视为运行状况不佳,则负载均衡器会将流量发送到所有区域(包括运行状况不佳的区域)。
-
除了是否有足够运行状况良好的目标可能会导致 DNS 故障转移之外,还有其他因素,例如区域的运行状况。
监控
要监控目标组的运行状况,请参阅目标组运行状况的 CloudWatch 指标。
示例
以下示例演示了如何应用目标组运行状况设置。
情况
-
支持 A 和 B 两个可用区的负载均衡器
-
每个可用区中包含 10 个注册目标
-
目标组具有以下目标组运行状况设置:
DNS 故障转移 - 50%
路由故障转移 - 50%
-
可用区 B 中有六个目标失败
如果跨区域负载均衡关闭
-
每个可用区中的负载均衡器节点只能将流量发送到其可用区内的 10 个目标。
-
可用区 A 中有 10 个运行状况良好的目标,符合所需的运行状况良好的目标百分比。负载均衡器继续在 10 个运行状况良好的目标之间分配流量。
-
可用区 B 中只有 4 个运行状况良好的目标,占可用区 B 中负载均衡器节点目标的 40%。由于这低于所需的运行状况良好的目标百分比,负载均衡器会执行以下操作:
-
DNS 故障转移 - 可用区 B 在 DNS 中被标记为运行状况不佳。由于客户端无法将负载均衡器名称解析为可用区 B 中的负载均衡器节点,并且可用区 A 运行状况良好,因此客户端会向可用区 A 发送新连接。
-
路由故障转移 - 当新连接明确发送到可用区 B 时,负载均衡器会将流量分配到可用区 B 中的所有目标(包括运行状况不佳的目标)。这样可以防止剩余运行状况良好的目标发生中断。
-
如果跨区域负载均衡打开
-
每个负载均衡器节点可以向两个可用区中的所有 20 个注册目标发送流量。
-
可用区 A 中有 10 个运行状况良好的目标,可用区 B 中有 4 个运行状况良好的目标,总共有 14 个运行状况良好的目标。这是两个可用区中负载均衡器节点目标的 70%,符合所需的运行状况良好的目标百分比。
-
负载均衡器将在两个可用区内 14 个运行状况良好的目标之间分配流量。
修改目标组运行状况设置
您可以按如下方式修改目标组的目标组运行状况设置。
使用控制台修改目标组运行状况设置
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的负载均衡下,选择目标组。
-
选择目标组的名称以打开其详细信息页面。
-
在 Attributes(属性)选项卡上,选择 Edit(编辑)。
-
检查是开启还是关闭了跨区域负载均衡。根据需要更新此设置,以确保在区域出现故障时您有足够的容量来处理额外流量。
-
展开 Target group health requirements(目标组运行状况要求)。
-
对于 Configuration type(配置类型),我们建议您选择 Unified configuration(统一配置),它会为两个操作设置相同的阈值。
-
对于 Healthy state requirements(运行状况良好状态要求),请执行以下操作之一:
-
选择 Minimum healthy target count(运行状况良好的目标最低计数),然后输入介于 1 到目标组的最大目标数之间的数字。
-
选择 Minimum healthy target percentage(运行状况良好的目标最低百分比),然后输入 1 到 100 之间的数字。
-
-
选择保存更改。
使用 Amazon CLI 修改目标组运行状况设置
使用 modify-target-group-attributes 命令。以下示例将两个运行状况不佳状态操作的运行状况良好阈值设置为 50%。
aws elbv2 modify-target-group-attributes \ --target-group-arn arn:aws:elasticloadbalancing:
region
:123456789012
:targetgroup/my-targets
/73e2d6bc24d8a067
\ --attributes Key=target_group_health.dns_failover.minimum_healthy_targets.percentage,Value=50 \ Key=target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage,Value=50
为负载均衡器使用 Route 53 DNS 故障转移
如果使用 Route 53 将 DNS 查询路由到您的负载均衡器,您也可以使用 Route 53 为您的负载均衡器配置 DNS 故障转移。在失效转移配置中,Route 53 将检查负载均衡器的目标组目标的运行状况以确定目标是否可用。如果没有已注册到负载均衡器的运行状况正常的目标,或如果负载均衡器本身运行状况不佳,则 Route 53 会将流量路由到其他可用资源,例如 Amazon S3 中运行状况正常的负载均衡器或静态网站。
例如,假设您有一个用于 www.example.com
的 Web 应用程序,并且您希望使用在不同区域内的两个负载均衡器之后运行的冗余实例。您希望流量主要路由到一个区域中的负载均衡器,并且您希望在发生故障期间将另一个区域中的负载均衡器用作备份。如果配置 DNS 故障转移,则可以指定您的主和辅助 (备份) 负载均衡器。如果主负载均衡器可用,则 Route 53 会将流量定向到主负载均衡器,否则会将流量定向到辅助负载均衡器。
使用评估目标运行状况功能
-
当应用程序负载均衡器别名记录上的“评估目标运行状况”设置为
Yes
时,Route 53 将评估alias target
值指定的资源的运行状况。对于应用程序负载均衡器,Route 53 使用与负载均衡器关联的目标组运行状况检查。 -
当应用程序负载均衡器中的所有目标组均运行正常时,Route 53 会将别名记录标记为运行正常。如果目标组至少包含一个运行正常的目标,目标组将通过运行状况检查。然后,Route 53 会根据您的路由策略返回记录。如果使用失效转移路由策略,则 Route 53 返回主记录。
-
如果应用程序负载均衡器中的任何目标组运行不正常,则别名记录无法通过 Route 53 运行状况检查(失效时开放)。如果使用评估目标运行状况,则失效转移路由策略会失败。
-
如果应用程序负载均衡器中的所有目标组均为空(无目标),则 Route 53 会认为该记录运行不正常(失效时开放)。如果使用评估目标运行状况,则失效转移路由策略会失败。
有关更多信息,请参阅 Amazon Route 53 开发人员指南中的配置 DNS 故障转移。