ECS 服务的 AWS 网络负载均衡器运行状况检查失败

pri*_*a19 4 nlb amazon-web-services amazon-ecs amazon-elb spring-boot

我创建了一个 ECS 服务来部署 spring-boot 应用程序。我已在 aws ecs 控制台中为此服务创建容器时通过指定负载均衡器名称将目标组添加到网络负载均衡器。

现在,当我检查该目标组的健康状态时,它会不断使用不同的 IP 地址进行注册和注销。我也检查了安全组,它允许所有端口和IP。

任何人都可以在这里提供帮助,这可能是目标群体未达到“健康”状态的问题。

请查看随附的 ECS 服务、健康检查状态和使用的安全组的屏幕截图。

弹性云服务器服务

NLB健康状况截图

创建容器时使用的安全组的屏幕截图

目标群体健康检查设置

附加到 ECS 的目标组的屏幕截图

创建任务定义

创建任务定义后的屏幕截图

ECS服务日志

集群仪表板截图

创建服务时链接目标组的屏幕截图

任务定义截图1

Imr*_*ran 6

正如评论中所讨论的,这是您的设置问题。

  1. 您将 spring boot 容器引入8080端口,因此 ECS 任务定义Container Port应为 8080(而不是 10001)。
  2. 无论或 ,您的Container Port&Target Group端口都应该同步。因此,重新创建端口为 8080 的目标组,并重新创建附加到更新的目标组的 ECS 服务。Host PortNLB Listener Port
  3. 最后,看起来您的流量更多是基于 HTTP/HTTPS,所以我可能建议使用ALB(Application Load Balancer)而不是NLB. NLB 适用于所有 TCP 端口,但将 ALB 用于基于 HTTP/HTTPS 的流量将获得更多优势。我不确定你的申请是否完全,所以这只是一个建议!

  • @priyadhingra19 哦!!。如果您想集成 API Gateway,那么只使用 NLB 就可以了。我认为您将直接向消费​​者公开 NLB,因此我建议使用 ALB。 (3认同)