Concepts

Load balancing is the process of distributing incoming network traffic across multiple servers or computing resources. This distribution helps ensure no single server bears too much demand. By spreading the load, load balancing improves responsiveness and increases the availability of applications.

Types of Load Balancers in AWS

AWS provides three types of load balancers:

  • Classic Load Balancer (CLB): Offers basic load balancing across multiple EC2 instances and operates at both the request level and connection level.
  • Application Load Balancer (ALB): Operates at the request level, routing traffic to targets within Amazon Virtual Private Cloud (Amazon VPC) based on the content of the application request.
  • Network Load Balancer (NLB): Operates at the connection level, capable of handling millions of requests per second, and is suited for TCP traffic where extreme performance is required.
Feature Classic Load Balancer Application Load Balancer Network Load Balancer
Protocols HTTP, HTTPS, TCP, SSL HTTP, HTTPS TCP, TLS, UDP
Performance Low to moderate High Very high
Latency Moderate Low Ultra low
Path-based Routing No Yes No
Host-based Routing No Yes No
Container-Based Applications No Yes No
HTTP/2 and WebSocket Support No Yes No

Application Load Balancer (ALB)

ALB is best suited for load balancing of HTTP and HTTPS traffic. ALB offers advanced routing features, which makes it highly efficient for web applications with complex routing needs.

Key Features of ALB

  • Content-Based Routing: ALB allows you to route traffic based on the content of the request. This includes the URL path, hostname, HTTP headers, HTTP method, query parameters, and source IP addresses.
  • Host-Based Routing: You can route traffic to different backend services based on the host field in the HTTP header. This enables running multiple domains from the same load balancer.
  • Path-Based Routing: Route requests to different services based on the request path. It’s useful for microservices architecture where each service is responsible for a specific path.
  • HTTPS & HTTP/2 Support: ALB provides security by offering HTTPS termination and supports the latest protocol HTTP/2 for improved performance.
  • WebSocket Support: It maintains a persistent connection between the client and the server, providing full-duplex communication channels over a single TCP connection.
  • Health Checks: ALB periodically checks the health of resources behind it to ensure traffic is sent to healthy instances.

Configuring an ALB

To create an ALB in AWS, you’ll go through the process of defining your load balancer, configuring listener settings, setting up target groups, registering targets, and finally, monitoring your load-balanced services.

Here’s a simplified example of how you might set up an ALB using the AWS Management Console:

  1. Create Load Balancer: Select the ‘Application Load Balancer’ option and configure the basic settings like name, scheme (internet-facing or internal), and the VPC.
  2. Configure Listeners and Routing: Set up listener rules to define how the ALB routes requests. A common configuration is listening on port 80 and 443 for HTTP and HTTPS traffic, respectively.
  3. Target Groups: Create target groups, which are sets of registered targets (like EC2 instances) that ALB will forward requests to. You set criteria on the target group for health checks.
  4. Register Targets: Add EC2 instances to the target groups. ALB routes the incoming traffic to these registered targets based on the rules you configured.
  5. Adjust Scaling and Security: Set up Auto Scaling for your EC2 instances to handle the load effectively and ensure that necessary security features like AWS WAF or Shield are in place for protection against web exploits.
  6. Monitoring: Once the ALB is in place, use Amazon CloudWatch to monitor the load balancer’s performance. You can set up alerts for high latency, unhealthy targets, or any other metric that would indicate an issue with your application’s performance.

Example CloudWatch Alarm for Unhealthy Hosts:

{
“AlarmName”: “Unhealthy Hosts”,
“MetricName”: “UnHealthyHostCount”,
“Namespace”: “AWS/ApplicationELB”,
“Statistic”: “Average”,
“Period”: 300,
“EvaluationPeriods”: 1,
“Threshold”: 1,
“ComparisonOperator”: “GreaterThanOrEqualToThreshold”,
“AlarmActions”: [“arn:aws:sns:us-west-2:111122223333:my-sns-topic”],
“AlarmDescription”: “Alarm when the number of Unhealthy hosts exceeds 1”
}

When preparing for the AWS Certified Solutions Architect – Associate exam, understanding how to implement and configure load balancing using an ALB in AWS is vital. You should grasp the different types of load balancers available, the specific features and use cases of ALBs, and how to monitor and scale your application effectively with load balancing.

Answer the Questions in Comment Section

1) True or False: Load balancers distribute incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, and IP addresses.

  • True

Explanation: Load balancers help to increase the availability and fault tolerance by distributing traffic across multiple server resources.

2) What is the primary purpose of an Application Load Balancer (ALB)?

  • a) Route traffic based on the content of the request.
  • b) Distribute traffic equally to all Amazon EC2 instances.
  • c) Act as a firewall to protect against DDoS attacks.
  • d) Enhance the speed of database queries.

Answer: a) Route traffic based on the content of the request.

Explanation: Application Load Balancers are designed to make routing decisions based on content, such as URL path or hostname, which enables more advanced load balancing.

3) True or False: Application Load Balancers can only route HTTP and HTTPS traffic.

  • True

Explanation: Application Load Balancers are designed specifically for HTTP and HTTPS traffic, providing advanced routing features that operate at the application layer (Layer 7).

4) Which AWS service is a globally distributed DNS service that routes user traffic to endpoints such as Application Load Balancers?

  • a) Amazon Route 53
  • b) AWS Direct Connect
  • c) Amazon VPC
  • d) AWS Transit Gateway

Answer: a) Amazon Route 53

Explanation: Amazon Route 53 is a scalable DNS web service designed to route users’ requests to infrastructure running in AWS, such as Application Load Balancers.

5) True or False: An Application Load Balancer can perform health checks on individual instances before routing traffic to them.

  • True

Explanation: Application Load Balancers check the health of the instances before routing traffic to ensure it is only sent to healthy instances.

6) True or False: Sticky sessions are not supported by Application Load Balancers.

  • False

Explanation: Application Load Balancers support sticky sessions, which bind a user’s session to a specific target, allowing the user to consistently connect to the same instance.

7) Which feature of Application Load Balancers allows for the distribution of traffic based on the geographic location of the requester?

  • a) Cross-Zone Load Balancing
  • b) Path-based Routing
  • c) Host-based Routing
  • d) Geo-targeting

Answer: d) Geo-targeting

Explanation: Geo-targeting allows for distribution of traffic based on the geographic location of the requester for more localized content delivery.

8) True or False: Network Load Balancers (NLBs) operate at the transport layer and are best suited for load balancing TCP traffic where extreme performance is required.

  • True

Explanation: Network Load Balancers are designed for performance and operate at the transport layer (Layer 4), handling millions of requests per second while maintaining ultra-low latencies.

9) What is the term for the feature in Application Load Balancer that allows you to direct a user to the same target group after the initial request?

  • a) Sticky Sessions
  • b) SSL Termination
  • c) Path-based Routing
  • d) Target Group Binding

Answer: a) Sticky Sessions

Explanation: Sticky Sessions functionality enables the load balancer to bind a user’s session to a specific target, ensuring subsequent requests from the user during the session are sent to the same target.

10) True or False: Application Load Balancers are only able to route traffic to targets within the same Availability Zone.

  • False

Explanation: Application Load Balancers can route traffic to targets in multiple Availability Zones, thereby increasing the fault tolerance and availability of applications.

11) Which of the following is NOT a feature of an Application Load Balancer?

  • a) SSL Offloading
  • b) Cross-Zone Load Balancing
  • c) Static IP support for each load balancer
  • d) Host-based Routing

Answer: c) Static IP support for each load balancer

Explanation: Application Load Balancers do not support static IP addresses for individual load balancers; they are inherently zone-agnostic and provide a DNS name instead.

12) True or False: You can configure the load balancer to automatically scale its request handling capacity in response to incoming application traffic.

  • True

Explanation: Load balancers in AWS automatically scale to handle different levels of request traffic, providing flexibility and reliability for applications.

0 0 votes
Article Rating
Subscribe
Notify of
guest
23 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Rosl Kümmel
8 months ago

Great post! This really helped me understand Application Load Balancers better.

Emily Andersen
6 months ago

I think Application Load Balancer is a game-changer for handling traffic efficiently.

Amalia Salgado
7 months ago

Can someone explain how sticky sessions work with ALB?

مهراد کریمی

This article was a bit too simplistic. More advanced examples would have been helpful.

Anton Kalas
7 months ago

Great insights! Can anyone explain the difference between ALB and ELB in simple terms?

Tilmann Schönberg
8 months ago

Thanks for the info!

Sophia Frazier
8 months ago

How does the ALB deal with sudden spikes in traffic?

Gloria Fields
7 months ago

Is there any way to secure the communication between the client and the ALB?

23
0
Would love your thoughts, please comment.x
()
x