我有一个 AWS Elastic beanstalk 环境,它可以从 2 到 3 个配置有应用程序负载均衡器的实例进行扩展。负载均衡器配置了 HTTP 运行状况检查以寻找 200 响应。
当环境自动扩展到 3 个实例时,新实例在准备好之前就开始接收流量。如果我手动检查运行状况检查 URL,我可以看到 3 次中有 1 次返回 404,因为新实例尚未准备好。应用程序的其他 URL 也出错,3 次中有 1 次是因为它们不存在。
据我了解,健康检查 URL 的全部意义在于处理这个问题。那么,请问是什么原因造成的?
一些可能相关的信息:
- 该实例需要很长时间才能准备就绪,因为它是一个需要安装 ARR 的 ASP.Net 应用程序。
- 在增强的运行状况检查概述中,两个工作实例被列为“严重”,即使它们工作正常。他们列出了几个 5xx 错误,我不知道为什么,因为发送给他们的流量很少,它占流量的很大比例。奇怪的是,未准备好的新实例被标记为“Ok”。我不认为增强的健康检查决定负载均衡器何时认为实例健康,但也许我不正确?
- 当我尝试联系 AWS 支持时,代理向我发送了大量有关不可变环境更新和滚动更新的信息。据我了解,这与在进行配置更改或新部署时如何使新实例联机有关,这与负载平衡健康检查和自动缩放不同,因此不相关。但是,也许我误解了,代理没有设法说明为什么这与这种情况有关。