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:
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
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
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
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.