ECS 服务的 AWS 网络负载均衡器健康检查失败
AWS Network load balancer health check is failing for ECS service
我创建了一个 ECS 服务来部署 spring-boot 应用程序。我在 aws ecs 控制台中为此服务创建容器时通过指定负载均衡器名称将目标组添加到网络负载均衡器。
现在,当我检查该目标组的健康状况时,它不断地使用不同的 IP 地址进行注册和注销。我也检查了安全组,它允许所有端口和 IP。
任何人都可以在这里帮助什么可能是没有达到目标群体的"healthy"状态的问题。
ECS服务、健康检查状态、使用的安全组截图见附件。
正如评论中所讨论的,这是您的设置问题。
- 您将 spring 引导容器带到
8080
端口,因此 ECS 任务定义 Container Port
应该是 8080(不是 10001)。
- 无论
Host Port
还是 NLB Listener Port
,您的 Container Port
和 Target Group
端口都应该同步。因此,重新创建端口为 8080 的目标组,并重新创建附加到更新后的目标组的 ECS 服务。
- 最后,您的流量似乎更多地基于 HTTP/HTTPS,因此我可能建议您使用
ALB(Application Load Balancer)
而不是 NLB
。 NLB 适用于所有 TCP 端口,但将 ALB 用于基于 HTTP/HTTPS 的流量将获得更多优势。我不完全确定你的申请,所以这只是一个建议!!
我创建了一个 ECS 服务来部署 spring-boot 应用程序。我在 aws ecs 控制台中为此服务创建容器时通过指定负载均衡器名称将目标组添加到网络负载均衡器。
现在,当我检查该目标组的健康状况时,它不断地使用不同的 IP 地址进行注册和注销。我也检查了安全组,它允许所有端口和 IP。
任何人都可以在这里帮助什么可能是没有达到目标群体的"healthy"状态的问题。
ECS服务、健康检查状态、使用的安全组截图见附件。
正如评论中所讨论的,这是您的设置问题。
- 您将 spring 引导容器带到
8080
端口,因此 ECS 任务定义Container Port
应该是 8080(不是 10001)。 - 无论
Host Port
还是NLB Listener Port
,您的Container Port
和Target Group
端口都应该同步。因此,重新创建端口为 8080 的目标组,并重新创建附加到更新后的目标组的 ECS 服务。 - 最后,您的流量似乎更多地基于 HTTP/HTTPS,因此我可能建议您使用
ALB(Application Load Balancer)
而不是NLB
。 NLB 适用于所有 TCP 端口,但将 ALB 用于基于 HTTP/HTTPS 的流量将获得更多优势。我不完全确定你的申请,所以这只是一个建议!!