1 Answer
1

ELBs appear to work in a way that is somewhat counter-intuitive (at least at first glance), in order to maintain scalability and prevent a single point of failure.

I think that the first impression one gets of an ELB is that it is a single regular instance setup with some load balancing software that sits in front of your application instances and distributes the traffic - my recent reading suggests that this is quite far from reality.

It appears that each availability zone has one (or more) load balancers to serve your instances in that zone. You will have setup a CNAME to point to the ELB - a virtual entity - AWS' internal DNS will map this to one of the load balancers assigned to you. That load balancer will then determine where to send the client request - whether it is to an instance in the same availability zone or to another availability zone. Additionally, more load balancers will be added in order to scale your applications needs, and AWS does this in 'anticipation' of increased traffic.

Therefore, it is hypothetically possible to have 2 or more load balancers per availability zone despite only having launched a single ELB, if their is sufficient traffic going to your application.

If you glance at the ELB Developer Guide (around page 9) you will find a mention of the idea that a request can be passed from one load balancer to another. (In the particular example given, it refers to multiple X-Forwarded-For headers, including those of ELBs).

If you have back-end application instances in multiple Availability
Zones, the X-Forwarded-For request header can contain one or more load
balancer IP addresses. Because Elastic Load Balancing uses a different
load balancer for each Availability Zone, a client request can be
passed from one load balancer to another before reaching a back-end
application instance. For example, if you have back-end instances in
Availability Zones US-east-1a and US-east-1b, a client request might
be handled initially by the load balancer in US-east-1a. If Elastic
Load Balancing determines that this request should be routed to
US-east-1b, the load balancer in US-east-1a routes the request to the
load balancer in US-east-1b.

Hopefully that addresses how you have multiple load balancer addresses as well as how the same address may show up in different availability zones.