What is AWS Elastic Load Balancing (ELB)?
AWS Elastic Load Balancing (ELB) is a service provided by Amazon Web Services (AWS) that distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, and IP addresses, within one or more Availability Zones. ELB helps ensure that no single component becomes a bottleneck, thus improving the availability and fault tolerance of your applications.
Here is a technical breakdown of AWS Elastic Load Balancing:
- Load Balancer Types:
- Application Load Balancer (ALB): Operates at the application layer (Layer 7) of the OSI model. It supports routing decisions based on content, making it suitable for applications with multiple services or microservices.
- Network Load Balancer (NLB): Operates at the transport layer (Layer 4) and is designed to handle TCP, UDP, and TLS traffic. It is ideal for applications that require high-performance, low-latency, and static IP addresses.
- Gateway Load Balancer (GLB): A fully-managed network gateway that allows you to deploy, scale, and manage third-party virtual appliances.
- Distribution of Incoming Traffic:
- ELB distributes incoming traffic across multiple targets to ensure even utilization and prevent any single component from being overwhelmed.
- Traffic can be distributed across multiple Availability Zones, ensuring high availability and fault tolerance.
- Health Checks:
- ELB regularly performs health checks on the registered targets to determine their availability.
- Unhealthy targets are automatically removed from the load balancer's rotation, and traffic is redirected to healthy targets.
- Listener and Rule Configuration:
- A listener is a process that checks for connection requests. ELB supports various protocols such as HTTP, HTTPS, TCP, and UDP.
- Rules are defined to route traffic based on content, path patterns, hostnames, or other factors, especially in the case of Application Load Balancers.
- Auto Scaling Integration:
- ELB can be seamlessly integrated with Auto Scaling groups, allowing for automatic scaling of the number of instances based on demand.
- Security Features:
- Supports SSL/TLS termination to offload the SSL/TLS decryption process.
- Works in conjunction with AWS Identity and Access Management (IAM) for access control and security.
- Logging and Monitoring:
- Provides access logs that capture detailed information about requests sent to the load balancer.
- Integrates with AWS CloudWatch for monitoring and logging, allowing you to set alarms based on various metrics.
- Cross-Zone Load Balancing:
- Distributes traffic evenly across instances in all enabled Availability Zones.
- Helps optimize the utilization of resources and improves fault tolerance.
- Advanced Features:
- Supports WebSocket, HTTP/2, and other modern protocols.
- Integration with AWS WAF (Web Application Firewall) for added security against common web exploits.
AWS Elastic Load Balancing is a fully managed service that plays a crucial role in enhancing the scalability, availability, and fault tolerance of applications deployed on AWS by efficiently distributing incoming traffic across multiple targets. The choice of load balancer type depends on the specific requirements of your application.