AWS - Elastic Load Balancer (ELB) Theory + Lab
Elastic Load Balancer
Elastic Load Balancing automatically distributes your incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones.
It monitors the health of its registered targets and routes traffic only to the healthy targets.
Classic Load Balancer Lab
1. Create 2 EC2 instances with User Data to install httpd.
userdata script
#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
2. Connect to first EC2 instance and run below commands
echo “<h1>Server 1 </h1>” >> /var/www/html/index.html
3. Connect to second Ec2 instance and run below command
echo “<h1>Server 2 </h1>” >> /var/www/html/index.html
4. Goto LoadBalancing and Select Load Balancers
5. Click on Create Load Balancer and Select Classic LoadBalancer and Click on Create button.
6. Define LoadBalancer Properties.
Load Balancer Name: CLB
The rest of the properties leave as it is, I am creating in the default VPC and Load Balancer Protocol is HTTP becuase in my EC2 instances the service is running on Port 80 with HTTP protocol.
Click on Next button
7. Select the security Group :- Webserver (Any SG which has port 80 opened) and click on Next
8. No Change on this page, you may see a warning that the application is using insecure protocol HTTP click Next button.
9. Configure Health Check for EC2 instances and Click on Next button
10. Add EC2 instances and Add both Ec2 instances and click on Next Button
11. Tags No Change and Review and Create .
12. Once CLB is created then it will have it defined properties, You can access the CLB using its DNS.
13 Use DNS Name on browser and check it will be connected to server1 and server2 frequently.
Application Load Balancer
Elastic Load Balancing automatically distributes your incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones. It monitors the health of its registered targets, and routes traffic only to the healthy targets. Elastic Load Balancing scales your load balancer as your incoming traffic changes over time. It can automatically scale to the vast majority of workloads.
1. Create 2 EC2 instances with User Data to install httpd.
userdata script
#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
2. Connect to first EC2 instance and run below commands
cd /var/www/html
mkdir orders
cd orders
echo “<h1> Orders App </h1> >> index.html
2. Connect to second EC2 instance and run below commands
cd /var/www/html
mkdir payments
cd payments
echo “<h1> Payments App </h1> >> index.html
3. Define the target groups which helps to route request to appropriate application.
Select Target Group from Load Balancer Menu and Define below properties
- Target Type : Instances
- Target Group Name: OrdersTG
- Protocol HTTP: 80
- VPC : default vpc
- Protocol Version: Http1
- Health check Path: /index.html
Click on Next button
- Register Targets
- Select first Ec2 instance
- Click on Include Pending Below
and Click on Create Target Group
Select Seond Target Group from Load Balancer Menu and Define below properties
- Target Type : Instances
- Target Group Name: PaymentsTG
- Protocol HTTP: 80
- VPC : default vpc
- Protocol Version: Http1
- Health check Path: /index.html
Click on Next button
- Register Targets
- Select sec Ec2 instance
- Click on Include Pending Below
and Click on Create Target Group
Step 4: Create Application Load Balancer
Click on Create Loadbalancer Button
- Select Application Load Balancer and Click on Create
- Load Balancer Name: ALB
- Mappings :- Select all the AZs
- VPC : default
- Security Group: WebserverSG
- Default Listner : Port: 80 Default action: OrdersTG
Click on Create Load Balancer Button
Step 5: Load Balancer should be created and it should have a DNS Name by which you are connecting to the applications. Copy the DNS name and put it in the browser, you should be able to see the default apache web page which is implemented in the First Ec2 instance.
Step 6: Select Listenter tab for ALB and click on view/edit rules link
Click on + symbol on this page and then Insert Rule link
Set below properties for the rule
Path : /orders*
Forward to : OrdersTG
and Click on Save
Click on + symbol on this page and then Insert Rule link
Set below properties for the rule
Path : /payments*
Forward to : PaymentsTG
and Click on Save
Step 7: Goto browser and put dnsname of ALB/ordres and /payments it should redirect to respective application