When You have an application that is serving Huge Customer Base, so will be your Traffic. Sometimes The Application stops responding. We can use Load Balancer in cases like this which distributes the Traffic it recieves between the multiple VPS running the same application.
Deploying and Configuring EC2-Instances:
Load Balancers are region specific, so you have to deploy all the applications in same region. When running a Load Balancer configuration you set Load balancer for instances and not their IP Addresses, So you dont need to assign them with Elastic IPS and you can stop add and remove instances anytime from Load Balancers. So Deploy Instances accordingly and Configure your application.
To Demonstrate Load Balancing i will create 3 VPS setup and install nginx using
apt-get install nginx
now VPS port 80 will display nginx welcome page.
Configuring Load Balancer:
In EC2 Services sidebar, Click Load Balancing –> Load Balancer. Then click on the Create Load Balancer.
Select a Name, the port to be exposed(80/443) and the Port the incoming traffic is to be redirected. Then Select Instances which host the same application and tag them if needed.
Create a Load Balancer with the above bare configuration and custmize as per your requirements, wait for health to turn Green. You can find Load Balancer URL in Load balancer Properties.
Opening Load Balancer URL in browser will display nginx welcome page. (served by 1 of 3 vps endpoints).
Testing the Setup:
To test the setup install apache-utils which also has Apache Benchmark package that we will se for Load Testing
sudo apt-get install apache-utils ab -n < number-of requests> http(s)://<loadbalancer-url>/
Now you can ssh into indiviual instances and check the nginx log count.
wc - l /var/log/nginx/access.log
All three servers will have entries suggesting Load Balancer setup is successful.