AWS launched the AWS Load Balancer Controller, formerly named the ALB ingress controller, in late 2020 as an open-source project managed on GitHub to simplify operations and save costs on EKS clusters. The AWS Load Balancer Controller manages AWS Elastic Load Balancers for a Kubernetes cluster.
The controller provisions an AWS Application Load Balancer (ALB) when you create a Kubernetes Ingress or an AWS Network Load Balancer (NLB) when you create a Kubernetes Service of type LoadBalancer.
Additionally, the controller allows you to share ALBs with multiple Kubernetes ingress rules, and manage load balancers completely outside Kubernetes using TargetGroupBinding custom resources.
When to use AWS Application Load Balancer for Kubernetes
An ALB is recommended if you need flexible application management for HTTP-based services in Kubernetes.
Characteristics of ALBs include:
- Support for slow start, Outposts, and Local Zone
- Configurable idle and connection timeout
- User authentication
- Load Balance to multiple namespaces
Application Load Balancers are charged per hour or partial hour they are running, as well as for how many Load Balancer Capacity Units (LCU) they consume per hour.
LCUs measure the dimensions of the traffic processed by load balancers (averaged over an hour). Only the dimension with the highest usage for the hour is charged.
LCU Dimensions | LCU Value |
New connections per second | 25 new connections |
Active connections per minute | 3,000 active connections |
Processed bytes | 1 GB per hour for EC2 instances, containers, and IP addresses as targets, and 0.4 GB per hour for Lambda functions as targets. |
Rule evaluations per second | 1,000 rule evaluations |
When to use AWS Network Load Balancer for Kubernetes
NLBs provide high performance traffic serving that can scale to millions of requests per second.
They are ideal for non-HTTP based services inside Kubernetes such as:
- Game servers
- Services that use Static IPs
- Services that use UDP communication
- Services that use TCP communication
- Services that use TLS communication
Network Load Balancers are charged per hour or partial hour they are running, as well as for how many Network Load Balancer Capacity Units (NLCU) they consume per hour.
NLCUs measure the dimensions of traffic processed by load balancers (averaged over an hour). Only the dimension with the highest usage for the hour is charged.
NLCU Dimension | NLCU Value for UDP Traffic | NLCU Value for UDP Traffic | NLCU Value for TLS Traffic |
New connections or flows per second | 800 new TCP connections | 400 new UDP flows | 50 new TLS connections or flows |
Active connections or flows (sampled per minute) | 100,000 active TCP connections | 50,000 active UDP flows | 3,000 active TLS connections or flows |
Processed bytes | 1 GB per hour for EC2 instances, containers, IP addresses, and ALBs as targets. | 1 GB per hour for EC2 instances, containers, IP addresses, and ALBs as targets. | 1 GB per hour for EC2 instances, containers, IP addresses, and ALBs as targets. |
AWS Elastic Load Balancers for Kubernetes product details and pricing
Load Balancer | Application Load Balancer | Network Load Balancer |
Load Balancer Type | Layer 7 | Layer 4 |
Target Type | IP, Instance, Lambda | IP, Instance, Application Load Balancer |
Protocol Listeners | HTTP, HTTPS, gRPC | TCP, UDP, TLS |
IP Address – Static, Elastic | No | Yes |
User Authentication | Yes | No |
Direct-to-pod | Yes | Yes (Fargate pods) |
Load balancer to multiple namespaces | Yes | No |
Support for fully private EKS clusters | Yes | Yes |
Load balancer pricing | $0.0225 per Hour | $0.0225 per Hour |
Load Balancer Capacity Units (LCU) pricing | $0.008 per LCU-hour | $0.006 per NLCU-hour |
Start optimizing your cloud costs today!
Connect with one of our cloud cost management specialists to learn how Anodot can help your organization control costs, optimize resources and reduce cloud waste.