本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
目标组运行状况
默认情况下,只要目标组至少有一个运行状况良好的目标,就会被视为运行状况良好。如果您的实例集很大,则仅有一个运行状况良好的目标为流量提供服务是不够的。相反,您可以指定必须运行状况良好的目标数量下限或最低百分比,以及当运行状况良好的目标低于指定阈值时负载均衡器将采取哪些操作。这样可以提高可用性。
运行状况不佳状态的操作
您可以为以下操作配置运行状况良好阈值:
-
DNS 故障转移 — 当某区域中运行状况良好的目标低于阈值时,我们会在 DNS 中将该区域的负载均衡器节点的 IP 地址标记为运行状况不佳。因此,当客户端解析负载均衡器 DNS 名称时,流量将会仅路由到运行状况良好的区域。
-
路由故障转移 - 当某区域中运行状况良好的目标低于阈值时,负载均衡器会将流量发送到负载均衡器节点可用的所有目标(包括运行状况不佳的目标)。这增加了客户端连接成功的机会,尤其是在目标暂时未能通过运行状况检查时,并降低了运行状况良好的目标过载的风险。
要求和注意事项
-
如果为某项操作指定了两种类型的阈值(计数和百分比),则负载均衡器会在违反任一阈值时执行该操作。
-
如果为这两项操作都指定了阈值,则 DNS 故障转移的阈值必须大于或等于路由故障转移的阈值,以便 DNS 故障转移会在路由故障转移时或之前发生。
-
如果您将阈值指定为百分比,我们将根据在目标组中注册的目标总数动态计算该值。
-
目标总数取决于关闭还是打开跨区域负载均衡。如果跨区域负载均衡处于关闭状态,则每个节点仅向自己区域中的目标发送流量,这意味着阈值将分别应用于每个已启用区域中的目标数量。如果跨区域负载均衡处于打开状态,则每个节点将流量发送到所有已启用区域中的所有目标,这意味着指定的阈值将应用于所有已启用区域中的目标总数。有关更多信息,请参阅 跨可用区负载均衡。
-
通过 DNS 故障转移,我们会从负载均衡器的 DNS 主机名中删除运行状况不佳区域的 IP 地址。但是,在 DNS 记录中的 time-to-live (TTL) 到期(60 秒)之前,本地客户端 DNS 缓存可能包含这些 IP 地址。
-
当发生 DNS 故障转移时,这会影响与负载均衡器关联的所有目标组。请确保剩余区域中有足够的容量来处理这些额外流量,尤其是在跨区域负载均衡关闭的情况下。
-
使用 DNS 故障转移时,如果所有负载均衡器区域都被视为运行状况不佳,则负载均衡器会将流量发送到所有区域(包括运行状况不佳的区域)。
-
除了是否有足够运行状况良好的目标可能会导致 DNS 故障转移之外,还有其他因素,例如区域的运行状况。
示例
以下示例演示了如何应用目标组运行状况设置。
场景
-
支持 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
运行状况不佳的目标的连接终止
默认情况下,连接终止处于启用状态。当 Network Load Balancer 的目标未通过配置的运行状况检查并被视为不健康时,负载均衡器会终止已建立的连接并停止将新连接路由到目标。禁用连接终止后,目标仍被视为运行状况不佳,不会接收新连接,但已建立的连接会保持活动状态,从而使它们能够优雅地关闭。
可以为每个目标组单独设置运行状况不佳的目标的连接终止。
使用控制台修改连接终止设置
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的负载均衡下,选择目标组。
-
选择目标组的名称以打开其详细信息页面。
-
在 Attributes(属性)选项卡上,选择 Edit(编辑)。
-
在目标运行状况不佳状态管理下,选择当目标变得运行状况不佳时终止连接已启用还是已禁用。
-
选择保存更改。
要修改连接终止设置,请使用 Amazon CLI
使用带有target_health_state.unhealthy.connection_termination.enabled
属性的modify-target-group-attributes命令。
排水间隔不正常
重要
在启用不健康的耗尽间隔之前,必须先禁用连接终止。
处于该unhealthy.draining
状态的目标被视为运行状况不佳,不会接收新连接,但在配置的时间间隔内保留已建立的连接。不健康的连接间隔决定了目标在状态变unhealthy
为之前保持unhealthy.draining
状态的时间长度。如果目标在不健康的连接间隔内通过了运行状况检查,则其状态将healthy
再次变为。如果触发了取消注册,则目标状态变为draining
,取消注册延迟超时开始。
可以为每个目标组单独设置不健康的排水间隔。
使用控制台修改不健康的排水间隔
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的负载均衡下,选择目标组。
-
选择目标组的名称以打开其详细信息页面。
-
在 Attributes(属性)选项卡上,选择 Edit(编辑)。
-
在 Targe t 不健康状态管理下,确保关闭了当目标变得不健康时终止连接。
-
为不健康的排水间隔输入一个值。
-
选择保存更改。
要修改不健康的排水间隔,请使用 Amazon CLI
使用带有target_health_state.unhealthy.draining_interval_seconds
属性的modify-target-group-attributes命令。
为负载均衡器使用 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 故障转移。