What is the MOST likely reason that the traffic is not being balanced between both servers?
The faulty server is returning HTTP 200 codes and has been removed.
Sticky sessions have been disabled in the ALB for the working server.
The ALB is using a custom ping path that is not found on the faulty server.
The web clients are using HTTP/2, which is terminated at the ALB.
Explanations:
If the faulty server was removed from the target group, the ALB would route traffic to the remaining healthy server. However, if the server still exists and returns HTTP 200 codes, it should still be part of the load balancing.
Sticky sessions (session affinity) relate to keeping a client’s requests directed to the same server. If sticky sessions were disabled for one server, it would not prevent the load balancer from distributing traffic equally between the servers.
If the ALB is configured with a custom health check ping path that is not available or incorrectly configured on one of the web servers, the ALB will mark that server as unhealthy and stop routing traffic to it.
HTTP/2 termination at the ALB would not impact the distribution of traffic across the web servers. ALB handles HTTP/2 and routes traffic properly without affecting server balancing.