1

I have several application loadbalancers in AWS and came across this "feature":

"If there is at least one healthy target in a target group, the load balancer routes requests only to the healthy targets. If a target group contains only unhealthy targets, the load balancer routes requests to the unhealthy targets."

This is contrary to other AWS ELB documentation stating that unhealthy targets get removed from the traffic pool, and is contrary to my understanding of loadbalancer functionality, so my question is what could the possible rationale for this be? Why would it be to my benefit of any loadbalancer routing traffic to an unhealthy target under any circumstance.

1

As the documentation says, this only happens if all targets are unhealthy. In this case it's much more likely that your targets are up but your health check is broken, and routing to "unhealthy" targets means your site doesn't experience needless downtime.

  • Thanks! I can actually follow that logic and in my case my targets are indeed falsely reporting their health, but, I can see situations where there's an issue deeper than the targets themselves (the database is unavailable) that would have them (the targets) reporting unhealthy, which in that case, the stack is effectively down. I would think that the loadbalancer should then report that in "I cannot accept traffic." – Joe Jul 28 '20 at 22:01
  • In that case, it certainly will, but after at least making an attempt at your backends! – Michael Hampton Jul 28 '20 at 22:07
  • ALB chooses to not return something itself, but forward to a backend. The response may contain useful error messages, or a successful response if it actually is healthy. Simple, if unintuitive. – John Mahowald Jul 29 '20 at 3:41
  • Fair enough. In my current scheme the unhealthy targets are sending an error message with a 500 HTTP status on the status endpoint. Upstream monitors detect that the application (that is, the loadbalancer responding) is reporting 500 and alerts accordingly. What's problematic for me is that the loadbalancer isn't stopping user traffic, but I think I can work around this through manual intervention. – Joe Jul 29 '20 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.