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 distribute the Traffic it receives 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 the same region. When running a Load Balancer configuration you set Load balancer for instances and not their IP Addresses, So you don't 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 customize 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 the 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 use for Load Testing

sudo apt-get install apache-utils
ab -n < number-of requests> http(s)://<loadbalancer-url>/

Now you can ssh into individual 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.

Subscribe To our news letter

Subscribe to our news letter to receive latest blog posts into your inbox. Please fill your email address in the below form.
*We don't provide your email contact details to any third parties
Latest Comments
Related Articles
how to setup custom domain for amazon cloudfront Ashwin Kumar

We all want our own domain name to be setup for cloud front instead of amazon default cloud front domain name. We need two things ...

Continue Reading...
Deploy Django using CloudFormation Template Dinesh Deshmukh

CloudFormation helps in Using JSON templates to describe the resources needed from aws. With this approach, we don't have to repeat the same manual configuration ...

Continue Reading...
Easy and Fast way to implement AWS Lambda service Dinesh Deshmukh

We are going to use a simple application called Gordan to prevent creating a lambda function and triggering actions which involves time taking and repetitive ...

Continue Reading...