Trying to load balance my app with the use of an AWS Elastic Load Balancer. The app is a custom TCP-based sender/receiver.
In any case, ELB seems to send 100% of the traffic to one machine, neglecting the other healthy attached instance.
I see no options in changing the round/robin behavior...
Suggestions? Thanks!
If the only traffic is from your testing, you possibly might always hit the same server, even if server stickiness/affinity is disabled.
If the servers are in different availability zones, there are multiple ELBs setup (one in each AZ) and they're all returned in the DNS request for the ELB. The OS is going to chose one of these and probably always use the same one.
Try from a different geographical region or put both in the same AZ and see if you get the same results. If that works, you're probably ok with the way you had it setup, as real-world traffic will get distributed to both Availability Zones.
With AWS ELB the load balancing is not round-robin, What we have found out is that normally traffic from a single IP will always reach the same server. So our approach to testing proper load balancer is to use distributed JMeter setup on multiple EC2 instances to simulate load from different IPs.