本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
目标组的运行状况检查
您可以将目标注册到一个或多个目标组中。一旦注册过程完成,您的网关Load Balancer 就会开始将请求路由到新注册的目标。完成注册过程和开始运行状况检查可能需要几分钟时间。
网关Load Balancer 会定期向每个已注册的目标发送请求以检查其状态。在完成每次运行状况检查后,网关Load Balancer 将关闭为运行状况检查而建立的连接。
运行状况检查设置
可以使用以下设置为目标组中的目标配置主动的运行状况检查。如果运行状况检查超出了,则网关Load Balancer 将使目标停止服务。UnhealthyThresholdCount如果运行状况检查超出了,网关 HealthyThresholdCountLoad Balancer 将使目标恢复服务。
设置 | 描述 |
---|---|
HealthCheckProtocol |
对目标执行运行状况检查时负载均衡器使用的协议。可能的协议有 HTTP、HTTPS 和 TCP。默认是 TCP。 |
HealthCheckPort |
对目标执行运行状况检查时网关Load Balancer 使用的端口。范围为 1 至 65535。默认值为 80。 |
HealthCheckPath |
[HTTP/HTTPS 运行状况检查] 进行运行状况检查的目标上的目的地的 ping 路径。默认值为 /。 |
HealthCheckTimeoutSeconds |
以秒为单位的时间长度,在此期间内,没有来自目标的响应意味着无法通过运行状况检查。范围为 2 至 120。默认 为 5。 |
HealthCheckIntervalSeconds |
各个目标的运行状况检查之间的大约时间量 (以秒为单位)。范围为 5 至 300。默认值为 10 秒。此值必须大于或等于HealthCheckTimeoutSeconds。 重要网关负载均衡器的运行Health 检查是分布式的,使用共识机制来确定目标运行状况。因此,您应该期望目标设备在配置的时间间隔内接受多项运行状况检查。 |
HealthyThresholdCount |
将不正常目标视为正常运行之前所需的连续运行状况检查成功次数。范围为 2 至 10。默认 为 5。 |
UnhealthyThresholdCount |
将目标视为不正常之前所需的连续运行状况检查失败次数。范围为 2 至 10。默认值为 2。 |
Matcher |
[HTTP/HTTPS 运行状况检查] 检查来自目标的成功响应时使用的 HTTP 代码。此值必须是 200-399。 |
目标运行状况
在网关Load Balancer 向目标发送运行状况检查请求之前,您必须将目标注册到目标组,在侦听器规则中指定其目标组,并确保已为网关Load Balancer 启用目标的可用区。
下表描述已注册目标的正常状态的可能值。
值 | 描述 |
---|---|
|
网关Load Balancer 正处于注册目标或对目标执行初始运行状况检查的过程中。 相关原因代码: |
|
目标正常。 相关原因代码:无 |
|
目标未响应运行状况检查或未通过运行状况检查。 相关原因代码: |
|
目标未注册到目标组,侦听器规则中未使用目标组,或者目标在没有启用的可用区中,或者目标处于停止或终止状态。 相关原因代码: |
|
目标正在取消注册,连接即将耗尽。 相关原因代码: |
|
目标运行状况不可用。 相关原因代码: |
运行状况检查原因代码
如果目标的状态是以外的任何值Healthy
,API 将返回问题的原因代码和描述,并且控制台将显示相同的描述。以开头的原因代码Elb
源自网关Load Balancer 端,以开头的原因代码Target
源自目标端。
原因代码 | 说明 |
---|---|
|
正在进行初始运行状况检查 |
|
由于内部错误,运行状况检查失败 |
|
目标注册正在进行中 |
|
目标取消注册正在进行中 |
|
运行状况检查失败 |
|
目标处于停止状态 目标处于终止状态 目标处于终止或停止状态 目标处于无效状态 |
|
该 IP 地址正被负载均衡器使用,因此无法用作目标 |
|
目标组没有被配置为接收来自网关Load Balancer 流量 目标处于没有为网关Load Balancer 启用的可用区 |
|
目标未注册到目标组 |
网关Load Balancer 目标故障场景
现有流量:无论目标的运行状况如何,除非流量超时或重置,否则现有流量始终流向同一个目标。这种方法有助于消耗连接,并适应第三方防火墙,这些防火墙有时会由于 CPU 使用率过高而无法响应运行状况检查。
新流量:新流量被发送到健康目标。为流量做出负载平衡决策后,即使该目标运行状况不佳或其他目标恢复正常,网关Load Balancer 也会将流量发送到同一个目标。
当所有目标都不健康时,Gateway Load Balancer 会随机选择一个目标,并在流的生命周期内向该目标转发流量,直到该目标重置或超时。由于流量被转发到不健康的目标,因此流量会被丢弃,直到该目标恢复正常为止。
TLS 1.3:如果目标组配置了 HTTPS 运行状况检查,则如果其注册目标仅支持 TLS 1.3,则无法通过运行状况检查。这些目标必须支持 TLS 的早期版本,例如 TLS 1.2。
跨区域负载均衡:默认情况下,禁用跨可用区域的负载均衡。如果启用了跨区域的负载均衡,则每个 Gateway Load Balancer 都能够查看所有可用区中的所有目标,并且无论其区域如何,它们都受到同等对待。
负载平衡和运行状况检查决策在区域之间始终是独立的。即使启用了跨区域的负载均衡,现有流量和新流的行为也与上述相同。有关更多信息,请参阅 Elastic Load Balancing 用户指南中的跨可用区负载均衡。
检查目标的运行状况
您可以检查已注册到目标组的目标的运行状况。
使用 Amazon CLI 检查目标的运行状况
使用 describe-target-health 命令。此命令的输出包含目标运行状况。如果状态是 Healthy
以外的任何值,则它包括原因代码。
接收有关运行状况不佳的目标的电子邮件通知
使用 CloudWatch 警报触发 Lambda 函数,以发送有关运行状况不佳的目标的详细信息。有关 step-by-step 说明,请参阅以下博客文章:识别负载均衡器的运行状况不佳的目标
修改运行状况检查设置
您可以修改目标组的部分运行状况检查设置。
使用 Amazon CLI 修改目标组的运行状况检查设置
使用 modify-target-group 命令。