为什么我看到ELB健康检查加倍?

时间:2015-07-01 09:15:45

标签: amazon-web-services amazon-elb

我有一个具有以下配置的ELB:

  • 可用区域:ap-southeast-1a和ap-southeast-1b
  • 跨区域负载平衡:已启用
  • 连接设置:空闲超时:300秒

健康检查详情:

  • Ping Target HTTPS:443 / login
  • 超时15秒
  • 间隔20秒
  • 不健康门槛5
  • 健康阈值3

听众详细信息:

端口443上的TCP,转发到实例端口443,nginx正在侦听并执行ssl终止。

我不断在nginx日志中看到双重运行状况检查。在同一时刻到来,至少相同的第二个。

为什么?

1 个答案:

答案 0 :(得分:5)

在具有大量流量的多个可用区域中启动的ELB实际上总是至少有一个ELB节点对于配置ELB的每个可用区域都是活动的,无论是否有任何该可用区中的实例存在或健康。

如果检查传入健康检查请求的源IP地址,您应该看到它们不同。特别是在启用跨区域负载平衡的情况下,您应该看到每个每个 ELB节点的一个运行状况检查,因为每个ELB节点都会向每个实例发送运行状况检查。

刚刚从我的日志中获取的示例:

Jul  1 19:22:25 localhost 172.17.0.251:4076 ELB-HealthChecker/1.0 "GET / HTTP/1.1" 
Jul  1 19:22:25 localhost 172.17.10.98:42667 ELB-HealthChecker/1.0 "GET / HTTP/1.1" 

请注意172.17.*.*在我的VPC中,这两个IP地址在我的两个“公共”子网中是范围内的......但它们是什么?这些是ELB节点的内部私有IP地址。

请注意,ELB“节点”是我刚才可能或可能不会编写的术语,但它描述了EC2已无形配置的虚拟机,可用作弹性负载均衡器。 (ELB显然部署在由ELB基础架构控制的EC2实例上,这些实际上在您的AWS控制台中是不可见的。)

您不需要单独为这些机器付费,因此您通常不需要关心有多少机器。它们随着流量负载自动扩展和缩小 - 轶事观察表明节点的实例类可能是动态的,节点的数量也是如此。每个节点可以支持到后端服务器的理论最大64K连接,但是在达到这样的数字之前,其他容量限制可能会开始。

您可以使用dig实用程序针对ELB主机名,在任何给定时间了解ELB群集中有多少节点,如控制台中所示。

$ dig xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com

; <<>> DiG 9.8.1-P1 <<>> xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38905
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 13, ADDITIONAL: 9

;; QUESTION SECTION:
;xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. IN A

;; ANSWER SECTION:
xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. 59 IN A 54.149.x.x
xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. 59 IN A 54.201.x.x

两个A - 记录答案可能意味着两个节点。虽然AWS可以使用地址转换和其他网络hackery伪装单个地址后面的多台计算机,或者多个地址后面的一台计算机,但观察结果表明,您收到的响应DNS查询的答案数量可以为您提供当前节点数为你的ELB部署。