我正在AWS自动量表组中运行服务器。正在运行的服务器位于负载均衡器之后。我正在使用ELB来管理自动缩放组健康检查。当服务器启动并加入自动缩放组时,它们当前会立即加入负载均衡器。
我需要等多长时间(即健康检查宽限期)才能让他们加入负载均衡器?
是否只有在服务器处于运行状态之后?
是否只有在服务器通过系统并且实例状态检查后?
答案 0 :(得分:18)
Auto Scaling组有两种类型的运行状况检查:
鉴于您的系统正在使用ELB运行状况检查,Auto Scaling将在确定每个EC2实例的运行状况时信任ELB运行状况检查的结果。这可能有点危险,因为如果实例需要一段时间才能启动,则运行状况检查可能会错误地将实例标记为“运行状况不佳”。反过来,这将导致Auto Scaling终止实例并启动替换。
为避免出现这种情况,Auto Scaling组配置中存在运行状况检查宽限期设置(以秒为单位)。这表示Auto Scaling应该等待多长时间,直到它开始使用ELB运行状况检查(反过来,它具有检查频率的设置以及将实例标记为健康/不健康所需的检查次数。)
因此,如果您的应用程序需要3分钟才能启动,请将运行状况检查宽限期设置为最少180秒(3分钟)。文档没有说明时间是从实例标记为“正在运行”的时刻开始,还是从状态检查完成时开始,因此执行一些时序测试以避免任何“反弹”情况
事实上,我建议将健康检查宽限期设置为显着更高的值(例如,所需时间的两倍)。这不会影响系统的运行,因为健康实例将在满足ELB运行状况检查后立即开始提供流量,这比Auto Scaling宽限期更快。最糟糕的情况是,真正不健康的实例将在几分钟后终止,但这应该是罕见的。
答案 1 :(得分:2)
答案 2 :(得分:0)