由于安全组不正确,AWS 应用程序负载均衡器运行状况检查对 ECS 实例失败

AWS application load balancer health check is failing with ECS instance due to incorrect Security Group

我正在 运行 将一个带有 ECS 服务的 ECS 集群连接到 运行 其中的一个容器。我还在使用指向此 ECS 实例的 AWS 应用程序负载均衡器。容器每次都因运行状况检查失败而停止,退出代码为 143。

Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:us-east-1:426955121075:targetgroup/cs1-TargetG-UG5G7MZZLBOA/246895af7886b697)

我调试了很多,发现应用程序负载均衡器 (ALB) 无法访问我的 ECS 实例,因为 ECS 实例附带的分配安全组规则存在问题。

在我的安全组中,我允许 HTTP 80、SSH 22 等。现在的问题是如果我将 ingress/inbound 规则更改为 'All Traffic',源为 'Anywhere'然后 ALB 通过健康检查并且容器进入健康状态,但是如果我使用 HTTP 或 HTTPS 或 SSH 保持它,那么健康检查再次失败并重新启动我的容器。

我可以知道在我的安全组中我应该允许 ALB 和 ECS 实例之间的哪种流量(所有流量除外)才能正常工作吗?

既然允许所有流量不是好的做法,从安全的角度来看也是如此。所以不是所有流量 reference security group.

first of all your load balancer should have a separate security group which allows traffic from anywhere.( inbound rule). Ecs security group should be separate from load balancer and inbound rule should allow traffic only from application load balancer security group. this is called as security group referencing.