What is load balancer in AWS?

This recipe explains what is load balancer in AWS

What is load balancer

AWS load balancers accept incoming client application traffic and distribute it across multiple registered targets, such as EC2 instances in different availability zones. The AWS application load balancer feature enables developers to route and configure incoming traffic between end-users and applications in the AWS public cloud.

The AWS elastic load balancer, which serves as a single point of contact for clients, only routes to healthy instances and identifies unhealthy instances. When the target becomes operational, the AWS load balancer algorithm resumes traffic routing to it. In cloud environments with multiple web services, load balancing is critical.

AWS Elastic Load Balancing (ELB) automatically distributes incoming application traffic across multiple targets in one or more availability zones, such as containers, EC2 instances, and IP addresses. This improves the fault tolerance and availability of user applications by distributing and balancing how frontend traffic reaches backend servers. AWS load balancing also checks the health of registered targets and routes traffic accordingly.

AWS Load Balancer Types

There are four types of AWS load balancers supported:

 

  • AWS Classic Load Balancer
  • AWS Network Load Balancer (NLB)
  • AWS Application Load Balancer (ALB)
  • AWS Gateway Load Balancer (GLB)
    • A. Classic Load Balancer:

Initially, the traditional type of load balancer was used. It distributes traffic among instances and lacks the intelligence to support host-based or path-based routing. In some situations, it reduces efficiency and performance. It works at both the connection and request levels. The classic load balancer sits between the transport (TCP/SSL) and application layers (HTTP/HTTPS).

    • B. Application Load Balancer:

This type of Load Balancer is used when decisions about HTTP and HTTPS traffic routing must be made. It supports both path-based and host-based routing. This load balancer operates at the OSI Model's Application layer. Dynamic host port mapping is also supported by the load balancer.

    • C. Network Load Balancer:

This type of load balancer operates at the OSI model's transport layer (TCP/SSL). It can handle millions of requests per second. It is primarily used to balance TCP traffic.

    • D. Gateway Load Balancer:

: Gateway Load Balancers enable you to deploy, scale, and manage virtual appliances such as firewalls. Gateway Load Balancers combine a transparent network gateway with traffic distribution.

 

By acting as a single point of contact for clients, the AWS load balancer improves application availability. As needs change, users can seamlessly add and remove instances from the AWS load balancer without disrupting the overall request flow to the application. As a result, AWS elastic load balancing scales as application traffic fluctuates and can automatically scale to most workloads

Users configure the load balancer with one or more listeners. A listener checks the configured port and protocol for connection requests from clients and forwards them to registered instances using the configured port number and protocol. The AWS load balancer sends requests only to healthy instances thanks to health checks.

By default, the AWS load balancer distributes traffic evenly across enabled availability zones. Maintain instances in roughly equal numbers across availability zones to improve fault tolerance. Cross-zone load balancing is also an option. This kind of elastic load balancing ensures that traffic is distributed evenly across all registered instances

When an availability zone is enabled, a load balancer node is created within the availability zone. Targets do not receive traffic if the availability zone is not enabled, even if they are registered.

Furthermore, the classic AWS load balancer algorithm performs best with at least one registered target in each enabled availability zone, but enabling multiple availability zones for all load balancers is recommended. To ensure continuous traffic routing, AWS application load balancers require the activation of at least two availability zones.

Limitations of AWS Load Balancer

Although AWS load balancers perform well in basic functions, they face a few significant challenges.

AWS Load Balancer Latency

AWS load balancer latency is among the system’s most notable limitations. With a classic load balancer several things can cause high latency, starting with faulty configuration. Beyond that, the high latency trouble spots are basically the same for the AWS application load balancer, especially relating to backend instances:

  • Incorrect configuration
  • Issues with network connectivity
  • And as to backend instances
  • Excessive CPU utilization
  • High memory (RAM) utilization
  • Incorrect web server configuration Problems caused by web application dependencies such as Amazon S3 buckets or external databases running on backend instances

What Users are saying..

profile image

Ameeruddin Mohammed

ETL (Abintio) developer at IBM
linkedin profile url

I come from a background in Marketing and Analytics and when I developed an interest in Machine Learning algorithms, I did multiple in-class courses from reputed institutions though I got good... Read More

Relevant Projects

Streaming Data Pipeline using Spark, HBase and Phoenix
Build a Real-Time Streaming Data Pipeline for an application that monitors oil wells using Apache Spark, HBase and Apache Phoenix .

Orchestrate Redshift ETL using AWS Glue and Step Functions
ETL Orchestration on AWS - Use AWS Glue and Step Functions to fetch source data and glean faster analytical insights on Amazon Redshift Cluster

Build a Real-Time Dashboard with Spark, Grafana, and InfluxDB
Use Spark , Grafana, and InfluxDB to build a real-time e-commerce users analytics dashboard by consuming different events such as user clicks, orders, demographics

How to deal with slowly changing dimensions using snowflake?
Implement Slowly Changing Dimensions using Snowflake Method - Build Type 1 and Type 2 SCD in Snowflake using the Stream and Task Functionalities

Building Real-Time AWS Log Analytics Solution
In this AWS Project, you will build an end-to-end log analytics solution to collect, ingest and process data. The processed data can be analysed to monitor the health of production systems on AWS.

Hive Mini Project to Build a Data Warehouse for e-Commerce
In this hive project, you will design a data warehouse for e-commerce application to perform Hive analytics on Sales and Customer Demographics data using big data tools such as Sqoop, Spark, and HDFS.

Spark Project-Analysis and Visualization on Yelp Dataset
The goal of this Spark project is to analyze business reviews from Yelp dataset and ingest the final output of data processing in Elastic Search.Also, use the visualisation tool in the ELK stack to visualize various kinds of ad-hoc reports from the data.

Build an ETL Pipeline with DBT, Snowflake and Airflow
Data Engineering Project to Build an ETL pipeline using technologies like dbt, Snowflake, and Airflow, ensuring seamless data extraction, transformation, and loading, with efficient monitoring through Slack and email notifications via SNS

SQL Project for Data Analysis using Oracle Database-Part 4
In this SQL Project for Data Analysis, you will learn to efficiently write queries using WITH clause and analyse data using SQL Aggregate Functions and various other operators like EXISTS, HAVING.

A Hands-On Approach to Learn Apache Spark using Scala
Get Started with Apache Spark using Scala for Big Data Analysis