We currently have one web server and one DB server to serve our websites. Things have been fine but slowly getting worse as the sites consume more and more CPU on the web server. We've reached the point where we need to upgrade the web server or put things behind a load balancer.
I called our provider and they only have one CPU more powerful than what we already have and the cost can't be justified with the meager performance boost. So it's looking like we need to go the load balancer route.
My question is...How do we set this up and what kind of hardware do we need to push out avg 150Mbps, peak of 300Mbps?
We currently have one web server and one DB server. I'm guessing we need to add another web server and a load balance server to bring us to a total of 4 machines.
LB1-->Web1 | Web2-->DB1
Is this the correct setup for a relatively simple infrastructure? Would we be better off putting HAProxy on Web1 and putting HAProxy on Web2 and using each web server to load balance each other, thereby eliminating a machine?
And lastly, how do we share the web roots between the web servers? Will an NFS mount on a shared NFS server suffice or do we need to do some sort of automatic synchronization between the machines?
To summarize:
What type of hardware should we be looking at for the load balancer, assuming a constant load of 150Mbps and a peak of 300Mbps? Assuming HAProxy
How should the machines be organized? Do we need a dedicated box for load balancing or should we set up HAProxy on each web server, then set up DNS records pointing to both HAProxy servers?
Is an NFS share sufficient for setting up the document roots or do we need to duplicate the data between the nodes via rsync or some other method?