关于AWS弹性缩放和应用程序负载均衡器之间的健康检查延迟的疑问

0

【以下的问题经过翻译处理】 背景

你好。我花费了2天的时间阅读了AWS文档和不同网站上的文章,尝试解决我的问题,但没有运气失败了。 我有一个EC2实例,它与应用程序负载均衡器(ALB)连接,ALB配置的是HTTP监听器,并为它使用了Autoscaling Group(ASG)。我正试图尽可能地低的设置Target Group(TG)健康检查的“不健康”状态和ASG准备新实例之间的延迟。实例从“黄金镜像” AMI启动,需要60秒钟才能准备就绪。我的TG设置如下:

Health Check Interval Seconds: 10
Health Check Timeout Seconds: 6
Healthy Threshold Count: 3
Unhealthy Threshold Count: 3
Deregistration Delay: 0

我使用ssh连接到实例,在Web服务器配置中进行了一些更改,强制反馈404状态以测试健康检查。 TG上的健康状态应该会在大约15-20秒钟内更改为“不健康”。

问题

问题在于,在实例管理页面上看到,需要80-90秒才能在ASG看到健康状态变为“不健康”。 ASG在80-90秒内才能触发实例替换,这太耗时了。

问题

如何减少TG健康状态和ASG健康状态之间的延迟?

1 回答
0

【以下的回答经过翻译处理】 每个服务都有不同的机制,彼此异步,它们运行工作是不同的。

ALB

  • 您可以设置间隔和连续不健康值。这些值一起确定了一个实例在ALB上显示不健康所需的时间。一旦在这里标记为不健康,ALB将停止向实例发送新请求(除非该目标组中的所有目标都不健康,然后它将故障开放)

ASG

  • 自动缩放具有独立的内部间隔,该间隔通过查看EC2中实例的以及在任何负载平衡器上(如果ASG启用了ELB healthchecks)的状态来检查实例是否不健康。
  • 在您的ALB标记实例不健康之后,ASG健康检查下次发生时,它将标记为不健康。ASG的健康检查间隔不可配置
  • 接下来的ASG启动/终止周期将导致实例被替换

Amazon EC2自动缩放通过定期检查实例的健康状态来检查Auto Scaling组中的所有实例是否正在运行且工作正常。 (1)

(1)https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#determine-instance-health


我已联系我们的内部文档团队,要求在ELB部分(上述线条的正下方)更加明确这两个异步计时器。如果您认为该主题周围的其他文档/部分应该改进,您可以在此处发表评论,我会将其传递给文档团队;或者单击给定文档的“反馈”按钮,该按钮将直接将您的反馈发送给负责该服务的团队

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则