适用于ECS服务的AWS Network Load Balancer运行状况检查失败

时间:2020-01-11 15:11:47

标签: amazon-web-services spring-boot amazon-ecs aws-load-balancer nlb

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

现在,当我检查该目标组的运行状况时,它将继续使用不同的IP地址进行注册和注销。我还检查了安全组,它已允许所有端口和IP。

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

请找到随附的ECS服务,运行状况检查状态和使用的安全组的屏幕截图。

ECS service

Screenshot of health status of NLB

Screenshot of security group used while creating container

Target group health check settings

Screenshot of target group attached to ECS

creation of task definition

screenshot once task definition created

ECS service logs

Cluster dashboard screenshot

Screenshot of linking target group while creating service

Task definition screenshot 1

1 个答案:

答案 0 :(得分:2)

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

  1. 您要将Spring Boot容器放在8080端口上,因此ECS任务定义Container Port应该为8080(而不是10001)。
  2. 无论Container Port还是Target Group,您的Host PortNLB Listener Port端口都应该同步。因此,请重新创建目标端口为8080的目标组,并重新创建附加到更新的目标组的ECS服务。
  3. 最后,看来您的流量更多是基于HTTP / HTTPS的,因此建议您使用ALB(Application Load Balancer)而不是NLB。 NLB适用于所有TCP端口,但是使用ALB进行基于HTTP / HTTPS的通信将获得更多优势。我不确定您的申请是否完整,因此仅是建议!