AWS › Elastic Load Balancing (ALB, NLB & CLB)

What is the difference between an Application Load Balancer, a Network Load Balancer, and a Classic Load Balancer?

Beginner

Answer

An Application Load Balancer operates at the application layer and supports advanced routing based on URL paths or hostnames, making it ideal for modern web applications and microservices, a Network Load Balancer operates at the transport layer and is designed for extremely high performance and low latency scenarios needing to handle millions of requests per second while preserving the client's original IP address, and a Classic Load Balancer is an older generation load balancer that has largely been replaced by the more feature rich Application and Network Load Balancer options for new deployments.
aws elbv2 create-load-balancer --name my-alb --type application --subnets subnet-12345 subnet-67890
Real-world example A company running a modern microservices architecture chooses an Application Load Balancer to route traffic to different services based on URL path, while a separate team running an extremely high throughput gaming backend chooses a Network Load Balancer for its ultra low latency performance characteristics.

Common follow-ups: When should a new application still consider using a Classic Load Balancer?;What specific features does an Application Load Balancer support that a Network Load Balancer does not?