Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News AWS Adds Scale-Friendly Network Load Balancer to its Arsenal

AWS Adds Scale-Friendly Network Load Balancer to its Arsenal

AWS expanded the Elastic Load Balancer (ELB) service with a new product catered to high-performing applications. The Network Load Balancer is a Layer 4 TCP component designed to handle bursts of traffic and millions of requests per second.

ELB has been around since 2009 to load balance EC2 virtual machines. The original load balancer offers HTTP/S and TCP routing, SSL offloading, support for Virtual Private Cloud (VPC), and integration with EC2 Security Groups. Last year, Amazon added the Application Load Balancer to the ELB family. This is a Layer 7 load balancer that does path and host-based HTTP routing, supports WebSockets, and is container friendly. While the classic ELB and Application Load Balancer transparently scale to meet demand, it's well-known that there's a warm-up delay. Also, neither product offer static IP addresses. These two things get addressed by the new Network Load Balancer.

The Network Load Balancer is designed for "extreme performance" and architected for "sudden volatile traffic patterns and ... extremely low latencies." It offers static IP addresses which can be "hard-coded into DNS records, customer firewall rules, and so forth." The users of Network Load Balancer also get API-compatibility with the Application Load Balancer, source IP address preservation, long-running connections, health checks, and logging. Because it's a Layer 4 load balancer, it does not offer HTTP-aware capabilities like path or host-based routing, SSL offloading, or sticky sessions. While the spectators at Hacker News received the news positively, there was angst about missing Security Groups integration and the lack of TLS termination.

AWS attempted to clarify when to use each one of these load balancer products, and is clearly positioning the "classic" ELB product as a secondary option.

Network Load Balancer (NLB) – Ideal for load balancing of TCP traffic, NLB is capable of handling millions of requests per second while maintaining ultra-low latencies. NLB is optimized to handle sudden and volatile traffic patterns while using a single static IP address per Availability Zone.

Application Load Balancer (ALB) – Ideal for advanced load balancing of HTTP and HTTPS traffic, ALB provides advanced request routing that supports modern application architectures, including microservices and container-based applications.

Classic Load Balancer (CLB) – Ideal for applications that were built within the EC2-Classic network.

Load balancing is table stakes for public cloud providers. Google Cloud offers public or internal load balancing for their customers. They claim that no "warm up" is needed to handle bursts, and Google delivers static IPs, HTTP/S or TCP routing, SSL offloading, user affinity, and routing across multiple regions. Microsoft also offers a comprehensive load balancing story in the Azure cloud. They offer the Azure Load Balancer for Layer 4 routing across application instances in the same Azure data center. The Application Gateway is a Layer 7 router that acts as a reverse proxy. And the Traffic Manager that does DNS-driven routing to global endpoints.

Like the Application Load Balancer, the Network Load Balancer is priced based on "Load Balancer Capacity Units (LCU)." Each LCU costs $0.006 per hour, and customers pay based on the most heavily used dimension: new connections, active connections, bandwidth. The Network Load Balancer is available in all commercial AWS regions (minus China) and is already integrated with AWS Cloud Formation, Amazon Elastic Container Service, and EC2 Auto Scaling.

Rate this Article