How to Setup AWS Application Load Balancer

2/4/2020·3 min read

This blog will show how to create an AWS application load balancer with custom VPC's EC2 instances.

Setup Custom VPC

Create VPC

Go to VPC and click create VPC, enter the VPC field as below example.

  • Name tag: enter your VPC name
  • IPv4 CIDR block: enter your CIDR block IP range
  • IPv6 CIDR block: choose IPv6
  • Network Border Group
  • Tenancy: Default (you can choose if you want to single-tenant, dedicated hardware or not)

Create Subnet

We'll need 2 subnets to create the Application Load Balancer.

  • Name tag: enter any name
  • VPC: choose the VPC just created
  • Availability Zone: choose the availability zone
  • IPv4 CIDR block: 172.0.1.0/24
  • IPv6 CIDR block: don't assign IPv6 (don't need IPv6 for this blog)

Create the second subnet, for creating Application Load balancer, you'll need at least 2 subnets.

set auto-assign IP, so EC2 instance will get the public IP address.

Create Internet Gateway

Create an internet gateway and attach the custom VPC.

Setup Route Table

Create a route table for the subnet

associate subnet to the route table

set route table to use the internet gateway for internet, enter the routes as following

Destination: 0.0.0.0/0 (for IPv4 Access)

Target: choose the Internet gateway

Now, VPC setup is done, we can use this custom VPC to create your own EC2.

Setup EC2

We'll set up EC2 with simple Php code, let's leave everything as a default setting and create 2 EC2 Instance.

  • Choose AMI (For example, choose Amazon AMI)
  • Choose General Purpose: t2.micro
  • Configure Instance Details
    • Network: choose the VPC just created
    • Subnet: choose the subnet just created
    • Leave everything as default
    • Put following to User Data field, this will start PHP simple site.
    • #!/bin/bash
      yum update -y
      yum install httpd -y
      chkconfig httpd on
      service httpd start
      cd /var/www/html
      echo "hi, server-01" > index.html
      
  • Configure Security Group
    • add port 80 so it will be accessible from the browser.

Now, let's create another EC2 instance. Setup everything as the first one, except the User data, change to server-02 as following

#!/bin/bash
yum update -y
yum install httpd -y
chkconfig httpd on
service httpd start
cd /var/www/html
echo "hi, server-02" > index.html

Create Target Groups

Let's create a target group for Application Load Balancer, this blog only trying to set up HTTP only.

  • Target type choose Instances
  • Enter any name for the target group name
  • Protocol - Http - 80
  • Choose the VPC
  • Health checks
    • Enter the path
  • Choose available instances
  • Click Create Target Group
  • Creating a target is done and associated with a list of instances.

Create Registered targets

Click registered targets and add EC2 instance by choose 2 EC2 instance and click include as pending 

  

Create Application Load Balancer

 

  • Click Create Load Balancer
  • Choose Application Load Balancer
  • Enter Name
  • Use default Http - 80
  • Choose VPC
  • Choose subnet (here you'll need at least 2 subnet)
  • Choose Security Groups
  • Configure Routing (here, select the target group created earlier)
  • Now, Load Balancer is creating
  • Should be able to see application load between 2 instances

After Application Load Balancer become active, copy the dns name to the browser you should see the site will change between the two server.Now, this is how you can simple provision application load balancer with AWS.