Elastic Load Balancing
Classic Load Balancer
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为您的传统负载均衡器配置运行状况检查

为了查明 EC2 实例的可用性,负载均衡器会定期发送 ping、尝试进行连接或者发送请求来测试 EC2 实例。这些测试称为运行状况检查。在执行运行状况检查时,运行状况良好的实例的状态为 InService。在执行运行状况检查时,运行状况不佳的任何实例的状态为 OutOfService。负载均衡器会对所有已注册实例执行运行状况检查,无论实例处于运行状况良好状态还是不佳状态。

负载均衡器仅将请求路由到正常的实例。当负载均衡器确定某个实例不正常时,会停止将请求路由到该实例。当实例恢复正常状态时,负载均衡器将恢复向该实例路由请求。

负载均衡器使用 Elastic Load Balancing 提供的默认运行状况检查配置或您配置的运行状况检查配置来检查已注册实例的运行状况。

如果您已将 Auto Scaling 组与 Classic load balancer 关联,则可以使用负载均衡器运行状况检查确定 Auto Scaling 组中实例的运行状况。默认情况下,Auto Scaling 组会定期确定每个实例的运行状况。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的 向 Auto Scaling 组添加 Elastic Load Balancing 运行状况检查

运行状况检查配置

运行状况配置包含负载均衡器用于确定已注册实例的运行状况的信息。下表介绍了运行状况检查配置字段。

字段 说明

Ping 协议

连接到实例所使用的协议。

有效值:TCPHTTPHTTPSSSL

控制台默认值:HTTP

CLI/API 默认值:TCP

Ping 端口

用于以 protocol:port 对的形式连接实例的端口。如果负载均衡器在配置的响应超时期内未能在指定端口上与实例连接,则将实例视为运行状况不佳。

Ping 协议:TCPHTTPHTTPSSSL

Ping 端口范围:1 至 65535

控制台默认值:HTTP:80

CLI/API 默认值:TCP:80

Ping 路径

HTTP 或 HTTPS 请求的目标。

在 Ping 端口和 Ping 路径上向实例发出 HTTP 或 HTTPS GET 请求。如果负载均衡器在响应超时期内收到“200 OK”之外的任何响应,则会将实例视为运行状况不佳。如果响应包括正文,则应用程序必须将 Content-Length 标头设置为大于等于零的值,或者指定其值设置为“chunked”的 Transfer-Encoding。

默认值:/index.html

响应超时

接收来自运行状况检查的响应时要等待的时间 (秒)。

有效值:2 至 60

默认值:5

运行状况检查间隔

单个实例的运行状况检查之间的时间量 (秒)。

有效值:5 至 300

默认值:30

不正常阈值

在声明 EC2 实例运行状况不佳前必须出现的连续失败的运行状况检查次数。

有效值:2 至 10

默认值:2

正常阈值

在声明 EC2 实例运行状况良好之前必须出现的连续成功的运行状况检查次数。

有效值:2 至 10

默认值:10

负载均衡器使用指定的端口、协议和 ping 路径,每 Interval 秒向每个已注册的实例发送一次运行状况检查请求。每个运行状况检查请求都是独立的,并且在整个时间间隔内持续。等待实例响应所花费的时间不会影响下次运行状况检查的时间间隔。如果运行状况检查超出了 UnhealthyThresholdCount 连续失败次数,负载均衡器会让该实例中断服务。如果运行状况检查超出了 HealthyThresholdCount 连续成功次数,负载均衡器会让该实例恢复服务。

如果实例在运行状况检查的时间间隔内返回 200 响应代码,则 HTTP/HTTPS 运行状况检查成功。如果 TCP 连接成功,则 TCP 运行状况检查成功。如果 SSL 握手成功,则 SSL 运行状况检查成功。

更新运行状况检查配置

您可随时更新负载均衡器的运行状况检查配置。

使用控制台更新负载均衡器的运行状况检查配置

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择您的负载均衡器。

  4. Health Check 选项卡上,选择 Edit Health Check

  5. Configure Health Check 页面上,根据需要更新配置。

  6. 选择 Save

使用 AWS CLI 更新负载均衡器的运行状况检查配置

使用以下 configure-health-check 命令:

aws elb configure-health-check --load-balancer-name my-load-balancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3

检查实例的运行状况

您可检查已注册实例的运行状况。

使用控制台检查实例的运行状况

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择您的负载均衡器。

  4. Description 选项卡上,Status 指示有多少实例处于可用状态。

  5. Instances 选项卡上,Status 列指示每个实例的状态。

使用 AWS CLI 检查实例的运行状况

使用以下 describe-instance-health 命令:

aws elb describe-instance-health --load-balancer-name my-load-balancer

根据运行状况检查进行故障排除

已注册的实例可能因多种原因无法通过负载均衡器运行状况检查。无法进行运行状况检查的最常见原因是 EC2 实例关闭了与该负载均衡器的连接,或者来自 EC2 实例的响应超时。有关失败的运行状况检查问题的可能原因以及您可以采取的解决问题的措施的信息,请参阅 对传统负载均衡器进行故障排除:运行状况检查