AWS Classic Load Balancing vs Application Load Balancing vs. Network Load Balancing
Three types of load balancers can be supported by elastic load balancing:Classic Load Bouncer – CLB
Application Load Balancing – ALB
Network Load Balancing – NLB
Although there are some similarities in the features, AWS doesn’t maintain feature parity among the different types load balancers.
Use Patterns
The Classic Load Balancing provides basic load balancing across multiple EC2 instances. It operates at both the request and connection levels.
This is for applications that were developed within the EC2-Classic network.
This is ideal for load balancing traffic across multiple EC2 instances.
Application Load Balancing is ideal for microservices and container-based architectures that require traffic routing to multiple services or load balancing across multiple ports on the same EC2 instance.
Operates at the request level (layer 7) and routes traffic to targets – containers, IP addresses, EC2 instances, EC2 instances, EC2 instances, EC2 instances, EC2 addresses, and Lambda function based on the content.
It is ideal for advanced load-balancing of HTTP traffic and HTTPS traffic. Advanced request routing is available to deliver modern application architectures including microservices and container applications.
This simplifies and enhances security by ensuring that the most recent SSL/TLS protocols and ciphers are used at all time.
Network Load Balancing operates at the connection level (4th Layer), routing connections to targets EC2 instances, microservices and containers – within VPC that is based on IP protocol data.
Ideal for load balancing both TCP and UDP traffic
It can handle millions of requests per second and maintain ultra-low latency.
Optimized to handle volatile traffic patterns and sudden changes, using only one static IP address per AZ
It can be integrated with other popular AWS services like Auto Scaling, ECS and CloudFormation as well as AWS Certificate Manager (ACM).
AWS recommends that you use Application Load Balancing for Layer 7 and Network Load Balancing for Layer 4 when using VPC. Supported Protocols
Classic ELB works at layer 4 and supports HTTPS, HTTPS, TCP and SSL
ALB works at layer 7 and supports HTTPS, HTTPS, HTTP/2, WebSockets
NLB works at the connection level (Layer 4). Load Balancing to Multiple Ports in the Same Instance
Only ALB & NLB support Load Balancing to multiple ports at the same instanceHost based Routing & Pass-based Routing
Host-based routing uses host conditions to create rules that forward requests to different target group based on the hostname in a host header. This allows ALB to support multiple domains with a single loadbalancer.
Path-based routing uses path conditions to create rules that forward requests to different target group based on the request URL. Each path condition can only have one pattern. If the URL of a request matches exactly the listener rule’s path pattern, the request will be routed using that rule.
Only ALB supports Host and Path-based routing.
Slow Start
A target automatically starts to receive its full share of requests once it is registered with a target organization and passes an initial health screening.
Slow start mode allows targets to warm up before they are sent a full share by the load balancer.
Only ALB supports slow start modeStatic IP or Elastic IP Address
NLB automatically assigns a static IP per subnet (AZ) that can be used as the front-end IP by load balancer applications.
NLB also offers the option to assign an elastic IP per AZ (subnet), thereby providing your own fixed IP.
Classic ELB and ALB do not support static and elastic IP addressConnection Draining or Deregistration Delay
Connection draining allows the load balancers to fulfill in-flight requests to instances that have been de-registered or are otherwise unwell.
All Load Balancer types support connection draining/deregistration de

AWS Classic Load Balancing vs Application Load Balancing vs. Network Load Balancing