I'm about to convert a single-server single-database web application into a physically distributed high-available configuration with servers on two physical locations (for now). Now, obviously, I need a load balancer (more like a reverse proxy in this case, but I'll call it "load balancer" for simplicity), which would route requests for mywebsite
to either node1.mywebsite
or node2.mywebsite
. However, I assume that high-available servers are no use if my load balancer goes down. Therefore, so my train of thought, I'd actually need two load balancers, one on each location. However, I'd still want a single external point of access, therefore I'd need a load balancer for the load balancers, which in turn would need to be balanced across locations... this goes on and on.
So what's wrong with my reasoning? How would I ensure high availability of my load balancers in practice, assuming each of the physical locations could be disconnected from power for a long period of time?
PS: I'm aware of the fact that my understanding of the distinction between HA and load-balancing is mediocre at best. What I want is an available server even when the power on one location goes down. Thank you for your understanding.
You can't, which is why load-balancing has nothing to do with availability.
Two load balancers should be enough. You will be using only one load balancer at a time. The name mywebsite should resolve to the VIP assigned to one of the load balancers.
You can do coarse HA and balancing with round robin dns by sticking it in front of your load balancers.