问题
I created a load balancer and assigned it one of the running EC2 instance. After creation, I navigated to Target Group section in the AWS Console under Load Balancing and when I selected the target group that was assigned to the load balancer, it shows registered instance status as "Unhealthy" and there was a message above registered instance pane that says "None of these Availability Zones contains a healthy target. Requests are being routed to all targets". While creating the load balancer, I selected all the subnets (availability zones). settings I used for health check are mentioned below,
- Protocol: HTTP
- Path: /healthcheck.html
- Port: traffic port
- Healthy threshold: 3
- Unhealthy threshold: 2
- Timeout: 5
- Interval: 10
- Success codes: 200
So why does my registered instance status as "Unhealthy" and how can I rectify/resolve that to change the status to "In-service"?
回答1:
Unhealthy indicates that the health check is failing for the instance.
Things to check:
- Check that the instance is running a web server
- Check that the web page at
healthcheck.html
responds with a valid 200 response - Check that instance has a security group that permits access on Port 80 (HTTP)
回答2:
If you are sharing the load balancer among several EC2 instances that run similar services, make sure each of your services run in a different port otherwise your service won't be reachable and therefore your health check won't pass
来源:https://stackoverflow.com/questions/47766584/ec2-instance-attached-to-a-load-balancer-is-showing-unhealthy-status