ELB - Elastic Load Balancing

ELB is a managed load balancing service that can distribute application and network traffic between a wide variety of resources in a VPC.

  • Uses HTTP, HTTPS, TCP, and SSL protocols

  • Can face externally or internally

  • Provides each deployed load balancer with a DNS name

  • Recognizes unhealthy instances and can be configured to respond

There are three types of load balancers on Amazon ELB:

Application Load Balancers

  • Support traffic from the application layer (Layer 7) of the OSI model

  • Support content-based routing and applications that run in containers

  • Support native Web Sockets over HTTP or HTTPs as well as HTTP/2 with HTTPS listeners

  • Check the health of their targets (instances or containers)

  • Best used with websites and mobile apps

Network Load Balancers

  • Support traffic from the connection layer (Layer 4) of the OSI model, routing traffic to Amazon EC2 instances, containers, or IP addresses based on IP protocol data

  • Are designed to handle tens of millions of requests per second while maintaining high throughput at ultra-low latency, with no effort on your part

  • Are optimized to handle sudden and volatile traffic patterns while using a single static IP address per Availability Zone

  • Accept incoming traffic from clients and distribute this traffic across targets within the same Availability Zone

  • API-compatible with Application Load Balancers, including full programmatic control of target groups and targets

  • Ideal for balancing TCP traffic

Classic Load Balancers

  • Provide basic load balancing across Amazon EC2 instances

  • Support load balancing across multiple Availability Zones

  • Operate at both the application layer and the connection layer of the OSI

Advantages of Amazon ELB

  • High Availability: ELB automatically distributes traffic across multiple targets—Amazon EC2 instances, containers and IP addresses—in a single Availability Zone or multiple Availability Zones.

  • Health checks - To discover the availability of your Amazon EC2 instances, the load balancer periodically sends pings, attempts connections, or sends requests to test the Amazon EC2 instances. These tests are called health checks. Each registered Amazon EC2 instance must respond to the target of the health check with an HTTP status code 200 to be considered healthy by your load balancer.

  • Security features - ELB load balancers provisioned within an Amazon VPC can leverage its network security features, such as security groups.

  • Transport layer security termination - ELB provides integrated certificate management and SSL decryption, allowing you the flexibility to centrally manage the SSL settings of the load balancer and offload CPU-intensive work from your application.

  • Layer 4 or Layer 7 load balacing - You can balance HTTP/HTTPS applications for Layer 7-specific features, or use strict Layer 4 load balancing for applications that rely purely on the TCP protocol.

  • Connection draining - When you enable connection draining on a load balancer, any backend instances that you deregister will complete requests that are in progress before deregistration. Likewise, if a backend instance fails health checks, the load balancer will not send any new requests to the unhealthy instance. It will allow existing requests to be completed, while ensuring that in-flight requests continue to be served. That means you can perform maintenance like deploying software upgrades or replacing back-end instances without affecting your customers’ experience.