I found this in the official ELB documentation
By default, a load balancer routes each request independently to the application instance with the smallest load.
but an article on Newvem says that ELB supports only Round Robin algorithm
Algorithms supported by Amazon ELB - Currently Amazon ELB only supports Round Robin (RR) and Session Sticky Algorithms.
So which one is it?
[1] http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_StickySessions.html
It's request count based for HTTP(S), round robin for other.
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#request-routing
It depends on the type of ELB used. AWS has over the time introduced Application ELB and Network ELB along with the Classic ELB.
Application Load Balancers
applies listener rules and assigns the (HTTP/HTTPS) request to a target group. It selects a target from that target group using theround robin routing algorithm
Network Load Balancers
node that receives the connection, selects a target from its target group using aflow hash routing algorithm
Classic Load Balancers
usesround robin routing algorithm
for TCP listeners andleast outstanding requests routing algorithm
for HTTP and HTTPS listeners.
TLDR;
Source / Further Reading : https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#routing-algorithm