10
votes

I am trying to learn/use AWS ECS but keep getting

service has reached a steady state.

Followed by:

service (instance i-05873e2a55ecba2f6) (port 32768) is unhealthy in target-group due to (reason Request timed out)

I'm not really sure which info you need to help, but I was using this load balancer across EC2 instances before, but I am replacing those EC2 instances with ones launched through ECS and now I am running into this error.

My cluster is in my default VPC and I am including all 3 subnets (East zone). The security group is my load balancer security group which allows all traffic on ports 40 and 443. I have tried changing security group so that it allows anyone on any port but that doesn't work.

My host port in my task definition is 0 and my container port is 3000 which is what I exposed in Dockerfile.

The healthcheck is just on the target port at path "/"

2
what is instance security group? is the port 32768 open at instance level? - Sudharsan Sivasankaran
Yeah, I have tried that - connorvo
are you able to connect to app from the host container? curl <ip>:3000 - Sudharsan Sivasankaran
can you confirm if the healthcheck port is 32768 or the one on which the service is running ? - Varun Chandak
302 is for url redirecting, pls see my answer for fixing stackoverflow.com/questions/49389510/… - Sudharsan Sivasankaran

2 Answers

3
votes

This answer summarize a checklist of points to verify when debugging this kind of error:

  • be the case, there is no route Path /healthcheck in the backend service
  • The status code from /healthcheck is not 200
  • Might be the case that target port is invalid, configure it correctly, if an application running on port 8080 or 3000 it should be 3000 or 8080
  • The security group is not allowing traffic on the target group
  • Application is not running in the container
0
votes

My problem was the same. Check the inbound rule of the security group of the ALB, there should be something like this. All traffic / All / All / "sg-xxxxxxxxxxxx" –.

sg-xxxxxxxxxxxx this should be the security group of your application load balancer.