Friday, March 24, 2023

Amazon Web Services (AWS) Elastic Load Balancer (ELB) is a service that automatically distributes incoming application traffic across multiple targets, such as EC2 instances or containers, within a single or multiple Availability Zones.

The ELB works by receiving incoming traffic and distributing it to registered targets based on configured routing rules, such as round-robin or least connections.

This helps to improve the availability and fault tolerance of your application by spreading the traffic evenly across multiple resources, and automatically routing traffic away from any failed resources.

The ELB offers three different types of load balancers to cater to different types of traffic and use cases:

1.Application Load Balancer (ALB): Designed to route traffic to microservices and container-based applications.

Example

AWS Application Load Balancer (ALB) is a type of Elastic Load Balancer (ELB) that is designed to route traffic to microservices and container-based applications. ALB works at the application layer (Layer 7) of the OSI model, which allows it to inspect incoming traffic and route it based on specific application-level criteria.

For example, let's say you have a web application that consists of multiple microservices running on different Amazon Elastic Compute Cloud (EC2) instances.

Each microservice handles a specific function, such as user authentication, product catalog, or shopping cart.

The ALB can be configured to route incoming HTTP/HTTPS requests to the appropriate microservice based on the path, host, query string, or headers of the request.

To illustrate this further, let's consider a simple e-commerce web application that consists of three microservices:

  1. A user authentication service that handles user login and registration
  2. A product catalog service that handles product listing and details
  3. A shopping cart service that handles adding and removing items from the cart

Assuming that each microservice is running on a different EC2 instance, you can register these instances with the ALB and configure routing rules based on the path of the incoming requests. For example:

The ALB can also handle other advanced features such as SSL/TLS termination, path-based routing, content-based routing, and sticky sessions.

Overall, AWS Application Load Balancer helps to simplify the management and scalability of microservices-based applications by providing a flexible and scalable routing mechanism that can be easily integrated with other AWS services.

2.Network Load Balancer (NLB): Designed to handle TCP, UDP, and TLS traffic, and ideal for applications that require extreme performance and static IP addresses.

Example

AWS Network Load Balancer (NLB) is a type of Elastic Load Balancer (ELB) that is designed to handle TCP, UDP, and TLS traffic, and is ideal for applications that require extreme performance and static IP addresses. NLB works at the transport layer (Layer 4) of the OSI model, which means it can route traffic based on IP protocol data, source IP address, and source port.

To understand how NLB works, let's consider an example of a web application that consists of multiple web servers running on different Amazon Elastic Compute Cloud (EC2) instances.

Each web server handles incoming HTTP requests from clients and generates a response. The NLB can be configured to distribute incoming traffic across these web servers based on the configured routing rules.

Assuming that each web server is running on a different EC2 instance, you can register these instances with the NLB and configure routing rules based on the IP protocol data and source IP address of the incoming requests.

For example:

  • All incoming HTTP requests that originate from a specific IP address range can be routed to a specific web server that is optimized to handle these requests.
  • All incoming HTTPS requests that originate from a specific IP address range can be routed to a specific web server that is optimized to handle SSL/TLS termination.

NLB also provides several advanced features like cross-zone load balancing, connection draining, and static IP addresses that help to improve the availability and scalability of your applications.

Overall, AWS Network Load Balancer helps to simplify the management and scalability of high-performance applications that require low-latency and high-throughput networking.

3.Classic Load Balancer (CLB): The original load balancer that can handle HTTP/HTTPS traffic and is suited for applications that have been around for some time and require a basic level of load balancing.

Example

AWS Classic Load Balancer (CLB) is the original Elastic Load Balancer (ELB) service that is designed to handle HTTP/HTTPS traffic and is suited for applications that have been around for some time and require a basic level of load balancing. CLB works at the transport layer (Layer 4) of the OSI model and can distribute traffic evenly across registered EC2 instances.

To understand how CLB works, let's consider an example of a web application that consists of multiple web servers running on different Amazon Elastic Compute Cloud (EC2) instances.

Each web server handles incoming HTTP requests from clients and generates a response. The CLB can be configured to distribute incoming traffic across these web servers based on the configured routing rules.

Assuming that each web server is running on a different EC2 instance, you can register these instances with the CLB and configure routing rules based on the incoming traffic's source and destination IP addresses and ports. For example:

  • All incoming HTTP requests can be distributed across all registered web servers using a round-robin algorithm.
  • All incoming HTTPS requests can be distributed across all registered web servers using a least-connections algorithm.

CLB also provides several additional features like SSL/TLS termination, sticky sessions, and health checks that help to improve the availability and scalability of your applications.

Overall, AWS Classic Load Balancer helps to simplify the management and scalability of traditional web applications by providing a basic level of load balancing that is easy to configure and manage.

However, it is important to note that AWS recommends using either Application Load Balancer (ALB) or Network Load Balancer (NLB) for new applications, as they provide more advanced features and better performance.

ELB also provides several additional features like health checks, SSL/TLS termination, sticky sessions, and access logs.

Overall, ELB helps to improve the performance, availability, and scalability of your applications by automatically distributing incoming traffic across multiple resources, and allowing you to easily manage and monitor your resources. 

No comments: