ELB 总是将实例报告为 inservice

Posted

技术标签:

【中文标题】ELB 总是将实例报告为 inservice【英文标题】:ELB always reports instances as inservice 【发布时间】:2016-08-05 16:25:21 【问题描述】:

我正在使用 aws ELB 将我的实例的状态报告给一个自动缩放组,这样一个非功能性实例将被终止并由一个新实例替换。 ELB 配置为每 60 秒 ping TCP:3000 并等待 10 秒的超时以认为它是健康检查失败。不健康阈值是 5 次连续检查。 然而,即使我定期手动遇到一个超时的实例并且我必须手动终止它并启动一个新实例,尽管 ELB 一直将其报告为处于服务状态,但 ELB 始终将我的实例报告为健康且处于服务状态

为什么会这样?

【问题讨论】:

将不健康阈值降低到 2 并重试 我同意,降低门槛。还可以尝试使用其他一些监控,例如每十秒循环轮询一次的简单 curl 命令,以查看中断事件是什么样的。了解问题的“形状” 【参考方案1】:

经过一番调查,我发现 我正在尝试通过对实例上运行的 Web 应用程序的 api 调用来评估应用程序的运行状况,并等待对超时的响应以声明实例故障。我需要使用 http 作为协议来通过负载均衡器而不是 tcp 使用自定义路径调用端口 3000。

注意:api需要返回200的状态码,负载均衡器才会认为它是健康的。现在完美运行

【讨论】:

以上是关于ELB 总是将实例报告为 inservice的主要内容,如果未能解决你的问题,请参考以下文章

如何将 AWS ELB 连接到运行 MS SQL 的 RDS?

在某些情况下,AWS ELB 不会将请求分发到 Auto Scaling 组 EC2 实例

将 ELB 实例附加到“应用程序负载均衡器”

使用AWS ELB将域名添加到ECS应用程序

VPC 中私有子网中 EC2 实例的 Amazon ELB

https SSL AWS ELB 单实例