AWS provides 4 fully managed load balancer types, each optimized for specific use cases:
- Classic Load Balancer (CLB) – First generation (2009)
- Supports: HTTP, HTTPS, TCP, SSL (secure TCP)
- Basic routing and health checks, limited features compared to newer versions
- Generally used for legacy applications
- Application Load Balancer (ALB) – Second generation (2016)
- Supports: HTTP, HTTPS, WebSocket
- Operates at Layer 7 (Application layer)
- Advanced request routing (path-based, host-based, query string, HTTP headers)
- Native support for containerized workloads (ECS, EKS) via target groups
- Network Load Balancer (NLB) – Second generation (2017)
- Supports: TCP, TLS, UDP
- Operates at Layer 4 (Transport layer)
- Extremely low latency, capable of handling millions of requests per second
- Best suited for high-performance or real-time applications
- Gateway Load Balancer (GWLB) – (2020)
- Operates at Layer 3 (Network layer – IP Protocol)
- Routes traffic to third-party virtual appliances (firewalls, intrusion detection, packet inspection)
- Integrates with VPC endpoint services for service chaining
Additional notes:
- Newer generation LBs (ALB, NLB, GWLB) are recommended for most workloads due to richer features and better integration with modern AWS services.
- All load balancers can be deployed as internal (private) or internet-facing (public) endpoints.