Not sure whether AWS Elastic Load Balancers is a good investment? This AWS guide will share deep insights into the service that will make your decision easier.
Suppose you manage a blog that runs on one t2.micro EC2 instance. A post you publish on Bitcoin quickly goes viral and your website receives a significant number of likes, shares, feedback, and requests.
But a complete reliance on one t2.micro instance means that your website may crash upon receiving high network traffic.
How do you avoid this? AWS load balancers are an ideal solution. It leverages various smaller instances such as t2.micros and distributes web traffic equally among them.
In this AWS load balancer tutorial, we will find out:
- What is an AWS load balancer?
- Types of AWS Load Balancers Application?
- Benefits of AWS load balancers?
- How to create an AWS load balancer?
- 1 What Is an AWS Elastic Load Balancer?
- 2 Different AWS Load Balancer types
- 3 Benefits of AWS Elastic Load Balancers
- 4 How to Create an AWS Load Balancer
- 5 AWS load balancer pricing
- 6 AWS elastic load balancing tools
- 7 FAQS: AWS Elastic Load Balancer
- 8 Conclusion
What Is an AWS Elastic Load Balancer?
AWS Elastic Load Balancing (ELB) is an AWS service that automatically directs the incoming application or website traffic across different targets, including IP addresses, EC2 instances, containers, and Availability Zones, with the goal of increasing fault tolerance and availability of your applications.
If you put it another way, AWS load balancers (click here to prepare for AWS load balancers interview questions) distribute frontend traffic to backend servers in a balanced way.
They monitor the health of their registered targets and direct the traffic to healthy targets only.
what is the purpose of the AWS elastic load balancer
For instance, when a system relies on a single web server, no or lengthy response times are a common issue with system applications receiving high traffic.
When you find yourself in such a situation, you’ll want to increase either the number of web servers or the specifications of the existing web server.
With two or more servers, the question arises “to which server will the incoming traffic go?” There has to be a single point of interaction that receives and distributes traffic, a role played by AWS load balancers.
Now that you’ve gained some basic understanding of what AWS load balancers are, let’s study the various types of AWS load balancers.
Different AWS Load Balancer types
There exist four varying types of AWS load balancers. They include:
1. Gateway Load Balancer
This type of load balancer is designed to deploy, scale, and manage firewalls, IPS, IDS, and other virtual appliances. As the latest load balancer type, gateway load balancer functions at the open system interconnection (OSI) layer model’s third layer.
Listening for every IP packet on each port of the load balancer, it distributes the traffic to a particular targeted group that’s programmed in the listener rule.
With the help of the endpoints of this load balancer, traffic can be securely exchanged across VPCs. The endpoint of the gateway load balancer serves as a VPC endpoint that helps ensure private connectivity between the application server and virtual server in various VPCs.
The traffic going in and out of a gateway load balancer is configured using a routing table. The network traffic originating in application servers in a VPC moves to the endpoint of the gateway load balancer in another VPC before returning to the previous VPC.
The application servers and the endpoint of a gateway load balancer ought to be developed in various subsets of the VPC.
2. AWS Classic Load Balancer
Originally used for Classic EC2 instances, this simple load balancer works both at the request level and the connection level.
Routing decisions are made by the classic load balancer at either the application layer or the transport layer. Currently, these load balancers demand a fixed relationship between the container instance port and the load balancer port.
For instance, the load balancer port 4040 can be mapped with the container instance port 4040, and the load balancer port 80 can be mapped with the container instance port 3030.
But it’s not possible that the load balancer port 80 is mapped to port 3030 on one container instance and port 4040 mapped to another container instance.
As a requirement of this static mapping, your cluster should have a number of container instances that are at least equal to the desired number of a single service that relies on a classic load balancer.
The main drawback of this load balancer type is that it doesn’t support route-based routing, host-based routing, and other features.
Upon being configured, the classic load balancer will distribute the load among the servers, no matter what’s there on the server. In some cases, this can adversely affect performance and efficiency.
3. Application Load Balancer
Application Load Balancer type runs on application layer 7 of the open system interconnection layer model and will only receive HTTPS and HTTP connection requests.
Serving as a single entry point for requests that are coming in, the application load balancer distributes the traffic across targets in a target group.
The major function of this load balancer is not just to balance the load among different targets but also to route the traffic based on some listener rules, which makes the load balancer smart and intelligent.
The following parameters can be used to add listener rules to the listener of the load balancer:
- Source IP: By checking the source IP, requests from varying geographical regions can be sent to various target groups.
- Host Header: Traffic can be directed to varying target groups in accordance with the host header.
- Query String: The application load balancer’s requests can be sent to various target groups using the query string.
- Path: By adding a listener rule, requests with varying request paths can also be directed to various target groups.
- HTTP Request Method: HTTP request methods, such as POST, DELETE, UPDATE, and GET can be used to route the incoming HTTP requests to varying target groups.
- HTTP Header: By checking the HTTP request header, you can program the application load balancer to route traffic to various target groups.
4. Network Load Balancer
This load balancer type represents the load balancer of the existing generation.
Operating at the 4th layer of the open system interconnection (OSI) layer model, the network load balancer is capable of responding to millions of requests in a second.
Upon receiving requests from an end-user, it routes them to specific targets in the target group. It launches a TCP connection for the chosen target on the specified port in the configuration of the target group.
Requests using the network load balancer can be sent to more than one target in varying availability zones. When you create this load balancer, you’ll be required to specify the availability zones in which you wish to deploy it.
Once you’ve selected your availability zones, the load balancer will create nodes in them but will distribute traffic only to its own availability zone.
If you want it to spread the load across varying availability zones, you’ll need to enable the cross zone load balancing feature.
Benefits of AWS Elastic Load Balancers
Some of the advantages of AWS load balancers include:
- Elastic and high availability of your resources.
- Readily available
- Capable of distributing web traffic to multiple targets
- Makes your applications highly visible through continuous auditing and monitoring
- Offers high security via TLS/SSL decryption features and user authentication
- Capable of handling sharp changes in web traffic without requiring human intervention
- Is supported for hybrid load balancing that is incredibly valuable when migrating resources to the cloud
- Four types of forwarding rules can be assigned to an AWS load balancer, namely UDP, HTTP, TCP, and HTTPS.
Let’s now move on to how to create an AWS Elastic Load Balancer:
How to Create an AWS Load Balancer
Follow these steps to create an AWS load balancer:
Step 1: Sign in to Your AWS Account.
Step 2: Specify the region in which the infrastructure needs to be created. At the top right corner, you’ll see the button with the city name. Click on it and select the region.
Step 3: Choose an EC2 service.
Step 4: On the left hand-side menu, click on “load balancer”.
Step 5: Click the “Create load balancer” button.
Step 6: Choose “Classic Load Balancer” and press “continue.”
Step 7: Assign the created load balancer a name, a listener, and a VPC. Traffic will be accepted at these two ports and be redirected to them.
Step 8: Set up the subnet. Be sure to choose one subnet only since all instances will be in it and no internet access is available to the private subnet.
Step 9: Establish a Security Group specifically for the load balancer, opening only ports 443 and 80.
Step 10: Upload/Assign SSL Certificate.
Step 11: Choose the previously created instance. Other instances where the traffic will be directed will be added when creating the auto scaling group.
Step 12: Assign the load balancer a label.
Step 13: Analyze the settings and create.
Step 14: Check whether the load balancer has been properly created.
AWS load balancer pricing
AWS elastic load balancing tools
FAQS: AWS Elastic Load Balancer
Q: which process is an example of elastic load balancing?
When there is a spike in users for applications, then the application automatically distributes the load across multiple servers in the backend.
By now, you should have developed an in-depth understanding of what is an AWS Elastic Load Balancer, the different types of AWS load balancers, the benefits of AWS load balancers, and how to create an AWS load balancer.
We truly hope that this guide helps you decide whether elastic load balancers are the right solution for you and which load balancer type you should choose.
I am an Amazon Web Services Professional, having more than 11 years of experience in AWS and other technologies. Extensively working in various AWS tools like S3, Lambda, API, Kinesis, Load Balancers, EKS, ECS and many more. Working as a Solution Architect and Technology Lead for Architecting and Implementing the same for different clients.