AWS Load Balancing Service Architecture
AWS Elastic Load Balancing (ELB) is a fully managed load balancing service provided by Amazon Web Services (AWS). It helps distribute incoming traffic across multiple targets, such as Amazon EC2 instances, containers, IP addresses, or Lambda functions, to ensure high availability, fault tolerance, and scalability for your applications. AWS Elastic Load Balancing consists of three main types of load balancers:
Application Load Balancer (ALB): ALB operates at the application layer (Layer 7) of the OSI model and is best suited for HTTP and HTTPS traffic. It supports advanced routing and content-based routing, allowing you to route requests based on URL path, host headers, or query strings. ALB also provides support for features like path-based routing, host-based routing, SSL termination, and WebSocket protocol.
Network Load Balancer (NLB): NLB operates at the transport layer (Layer 4) of the OSI model and is designed to handle high volumes of traffic with ultra-low latency. It is suitable for TCP, UDP, and TLS traffic and is often used for protocols that require extreme performance, such as gaming, IoT, and streaming applications. NLB provides support for static IP addresses, long-lived connections, and can handle millions of requests per second.
Classic Load Balancer (CLB): CLB is the legacy load balancer that works at both the application layer (Layer 7) and transport layer (Layer 4). It provides basic load balancing capabilities and is suitable for applications that require simple load balancing without the advanced features of ALB or the extreme performance of NLB. It supports HTTP, HTTPS, TCP, and SSL traffic.
Key features and benefits of AWS Elastic Load Balancing include:
High Availability: ELB automatically distributes incoming traffic across healthy targets, ensuring that your application remains available even if individual targets or availability zones experience failures.
Scalability: ELB scales automatically based on traffic patterns. It can handle sudden increases in traffic by distributing the load across multiple targets, allowing your application to scale seamlessly.
Health Checks: ELB regularly performs health checks on the registered targets to ensure they are available and capable of handling traffic. Unhealthy targets are automatically removed from the load balancer's rotation.
SSL/TLS Termination: ELB supports SSL/TLS termination, offloading the SSL/TLS decryption and encryption process from your application servers. This helps improve performance and simplifies the management of SSL/TLS certificates.
Session Stickiness: ELB provides session stickiness (also known as session affinity or session persistence), which ensures that requests from a particular client are consistently routed to the same target during a session.
Integration with AWS Services: ELB seamlessly integrates with other AWS services such as Auto Scaling, AWS Certificate Manager, AWS CloudFormation, and AWS Identity and Access Management (IAM), enabling you to build highly automated and scalable architectures.
Logging and Monitoring: ELB generates access logs that capture detailed information about requests and responses, providing valuable insights into your application's traffic patterns. It also integrates with AWS CloudWatch to monitor key performance metrics and set up alarms for proactive monitoring.
AWS Elastic Load Balancing simplifies the management of traffic distribution and improves the availability, scalability, and performance of your applications. By leveraging ELB, you can ensure that your applications can handle varying levels of traffic and provide a reliable experience to your users.