目标组的运行状况检查 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

目标组的运行状况检查

您可以将目标注册到一个或多个目标组中。注册过程完成后,网关负载均衡器会立即开始将请求路由到新注册的目标。完成注册过程和开始运行状况检查可能需要几分钟时间。

网关负载均衡器会定期向每个已注册的目标发送请求以检查其状态。在完成每次运行状况检查后,网关负载均衡器将关闭为运行状况检查而建立的连接。

运行状况检查设置

您可以使用以下设置为目标组中的目标配置主动运行状况检查。如果运行状况检查超过指定的UnhealthyThresholdCount连续失败次数,则 Gateway Load Balancer 会使目标停止服务。当运行状况检查超过指定的HealthyThresholdCount连续成功次数时,Gateway Load Balancer 会将目标重新投入使用。

设置 描述

HealthCheckProtocol

对目标执行运行状况检查时负载均衡器使用的协议。可能的协议有 HTTP、HTTPS 和 TCP。默认值为 TCP。

HealthCheckPort

对目标执行运行状况检查时网关负载均衡器使用的端口。范围为 1 至 65535。默认值为 80。

HealthCheckPath

[HTTP/HTTPS 运行状况检查] 运行状况检查路径,它是运行状况检查目标上的目的地。默认值为 /。

HealthCheckTimeoutSeconds

以秒为单位的时间长度,在此期间内,没有来自目标的响应意味着无法通过运行状况检查。范围为 2 至 120。默认值为 5。

HealthCheckIntervalSeconds

各个目标的运行状况检查之间的大约时间量 (以秒为单位)。范围为 5 至 300。默认值为 10 秒。此值必须大于或等于HealthCheckTimeoutSeconds

重要

网关负载均衡器的运行状况检查是分布式的,使用共识机制来确定目标运行状况。因此,预计目标设备将在配置的时间间隔内收到几次运行状况检查。

HealthyThresholdCount

将不正常目标视为正常运行之前所需的连续运行状况检查成功次数。范围为 2 至 10。默认值为 5。

UnhealthyThresholdCount

将目标视为不正常之前所需的连续运行状况检查失败次数。范围为 2 至 10。默认值为 2。

Matcher

[HTTP/HTTPS 运行状况检查] 检查来自目标的成功响应时使用的 HTTP 代码。该值必须为 200-399。

目标运行状况

您必须首先将目标注册到目标组,在侦听器规则中指定其目标组,并确保已为网关负载均衡器启用目标所在的可用区,然后网关负载均衡器才会向目标发送运行状况检查请求。

下表描述已注册目标的正常状态的可能值。

描述

initial

网关负载均衡器正在注册目标或正在对目标执行初始运行状况检查。

相关原因代码:Elb.RegistrationInProgress | Elb.InitialHealthChecking

healthy

目标正常。

相关原因代码:无

unhealthy

目标未响应运行状况检查或未通过运行状况检查。

相关原因代码:Target.FailedHealthChecks

unused

目标未注册到目标组,侦听器规则中未使用目标组,或者目标在没有启用的可用区中,或者目标处于停止或终止状态。

相关原因代码:Target.NotRegistered |Target.NotInUse |Target.InvalidState |Target.IpUnusable

draining

目标正在取消注册,连接即将耗尽。

相关原因代码:Target.DeregistrationInProgress

unavailable

目标运行状况不可用。

相关原因代码:Elb.InternalError

运行状况检查原因代码

如果目标的状态是 Healthy 以外的任何值,则 API 将返回问题的原因代码和描述,并且控制台将显示相同的描述。以 Elb 开头的原因代码源自网关负载均衡器端,以 Target 开头的原因代码源自目标端。

原因代码 说明

Elb.InitialHealthChecking

正在进行初始运行状况检查

Elb.InternalError

由于内部错误,运行状况检查失败

Elb.RegistrationInProgress

目标注册正在进行中

Target.DeregistrationInProgress

目标取消注册正在进行中

Target.FailedHealthChecks

运行状况检查失败

Target.InvalidState

目标处于停止状态

目标处于终止状态

目标处于终止或停止状态

目标处于无效状态

Target.IpUnusable

该 IP 地址正被负载均衡器使用,因此无法用作目标

Target.NotInUse

没有将目标组配置为接收来自网关负载均衡器的流量

目标位于尚未为网关负载均衡器启用的可用区

Target.NotRegistered

目标未注册到目标组

网关负载均衡器目标故障场景

现有流:默认情况下,除非流量超时或重置,否则无论目标的运行状况和注册状态如何,现有流量都会转到同一个目标。这种方法有助于连接耗尽,并且可以容纳有时由于 CPU 使用率过高而无法响应运行状况检查的第三方防火墙。有关更多信息,请参阅目标故障转移

新流量:新流量将发送到运行正常的目标。在对流量做出负载均衡决策后,即使该目标运行不正常或其他目标变为运行正常,网关负载均衡器也会将流量发送到同一个目标。

当所有目标都运行不正常时,网关负载均衡器会随机选择一个目标,并在流量生命周期内将流量转发给该目标,直到该目标被重置或超时为止。由于流量被转发到运行不正常的目标,因此流量会被丢弃,直到该目标恢复正常为止。

TLS 1.3:如果目标组配置了 HTTPS 运行状况检查,则如果其注册目标仅支持 TLS 1.3,则无法通过运行状况检查。这些目标必须支持 TLS 的早期版本,例如 TLS 1.2。

跨可用区负载均衡:默认情况下,跨可用区负载均衡处于禁用状态。如果启用跨可用区负载均衡,则每个网关负载均衡器都能看到所有可用区中的所有目标,并且无论位于哪个可用区,这些目标都将受到同等对待。

可用区之间的负载均衡和运行状况检查决策始终是独立的。即使启用了跨可用区负载均衡,现有流量和新流量的行为也与上述相同。有关更多信息,请参阅 Elastic Load Balancing 用户指南中的跨可用区负载均衡

检查目标的运行状况

您可以检查已注册到目标组的目标的运行状况。

New EC2 experience
使用新版 EC2 体验检查目标运行状况
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的 Load Balancing (负载均衡) 下,选择 Target Groups (目标组)。

  3. 选择目标组的名称以打开其详细信息页面。

  4. Targets (目标) 选项卡上,Status (状态) 列指示每个目标的状态。

  5. 如果目标状态是 Healthy 以外的任何值,则 Status details (状态详细信息) 列将包含更多信息。

Old EC2 experience
使用旧版 EC2 体验检查目标运行状况
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Target Groups

  3. 选择目标组。

  4. 选择 Targets (目标),并查看 Status (状态) 列中的每个目标的状态。如果状态是除 Healthy 以外的任何值,则控制台会显示更多信息。

使用 Amazon CLI 检查目标的运行状况

使用 describe-target-health 命令。此命令的输出包含目标运行状况。如果状态是 Healthy 以外的任何值,则它包括原因代码。

接收有关运行状况不佳的目标的电子邮件通知

使用 CloudWatch 警报触发 Lambda 函数以发送有关不健康目标的详细信息。有关 step-by-step 说明,请参阅以下博客文章:识别负载均衡器的运行状况不佳的目标

修改运行状况检查设置

您可以修改目标组的部分运行状况检查设置。

New EC2 experience
使用新版 EC2 体验修改目标组的运行状况检查设置
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的 Load Balancing (负载均衡) 下,选择 Target Groups (目标组)。

  3. 选择目标组的名称以打开其详细信息页面。

  4. 组详细信息选项卡的运行状况检查设置部分中,选择编辑

  5. Edit health check settings (编辑运行状况检查设置) 页面上,根据需要修改设置,然后选择 Save changes (保存更改)

Old EC2 experience
使用旧版 EC2 体验修改目标组的运行状况检查设置
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Target Groups

  3. 选择目标组。

  4. 选择 Health checks (运行状况检查)Edit (编辑)

  5. Edit target group (编辑目标组) 页面上,根据需要修改设置,然后选择 Save (保存)

使用 Amazon CLI 修改目标组的运行状况检查设置

使用 modify-target-group 命令。