Network Load Balancer (NLB) in AWS - Time & Space Complexity
We want to understand how the work done by a Network Load Balancer grows as more requests come in.
Specifically, how does the number of operations change when the number of incoming connections increases?
Analyze the time complexity of handling incoming connections with a Network Load Balancer.
// Create a Network Load Balancer
aws elbv2 create-load-balancer --name my-nlb --type network --subnets subnet-123 subnet-456
// Create a target group
aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-789
// Register targets
aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:... --targets Id=i-123 Id=i-456
// Create a listener
aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:... --protocol TCP --port 80 --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:...
// Incoming connections are routed to targets by the NLB
This sequence sets up an NLB that forwards TCP connections to registered targets.
Look at what happens repeatedly as traffic flows through the NLB.
- Primary operation: Routing each incoming TCP connection to a target instance.
- How many times: Once per incoming connection.
Each new connection causes the NLB to perform routing work.
| Input Size (n) | Approx. Api Calls/Operations |
|---|---|
| 10 | 10 routing operations |
| 100 | 100 routing operations |
| 1000 | 1000 routing operations |
Pattern observation: The number of routing operations grows directly with the number of connections.
Time Complexity: O(n)
This means the work the NLB does grows in a straight line as more connections come in.
[X] Wrong: "The NLB handles all connections instantly without extra work as connections increase."
[OK] Correct: Each connection requires routing and resource use, so more connections mean more work.
Understanding how load balancers scale with traffic helps you design systems that stay reliable as they grow.
"What if the NLB had to perform health checks on each target for every connection? How would the time complexity change?"
Practice
Solution
Step 1: Understand NLB's traffic handling
NLB works at the connection level and handles TCP/UDP traffic efficiently.Step 2: Compare with other AWS services
Unlike Application Load Balancer, NLB does not manage HTTP features but focuses on low latency and high throughput for TCP/UDP.Final Answer:
To efficiently distribute TCP/UDP traffic at the connection level -> Option AQuick Check:
NLB purpose = TCP/UDP load balancing [OK]
- Confusing NLB with Application Load Balancer
- Thinking NLB manages HTTP routing
- Assuming NLB stores data
Solution
Step 1: Identify NLB features
NLB supports static IP addresses, which is useful for fixed IP requirements.Step 2: Eliminate incorrect options
NLB does not only support HTTP/HTTPS (it supports TCP/UDP), does not modify HTTP headers, and scales automatically.Final Answer:
Supports static IP addresses for the load balancer -> Option DQuick Check:
Static IP support = true for NLB [OK]
- Thinking NLB only supports HTTP/HTTPS
- Assuming NLB modifies HTTP headers
- Believing NLB requires manual scaling
Solution
Step 1: Understand NLB health checks
NLB performs health checks and routes traffic only to healthy targets.Step 2: Analyze behavior on unhealthy target
If a target is unhealthy, NLB excludes it from routing until it recovers.Final Answer:
NLB stops sending traffic to the unhealthy target and continues with healthy ones -> Option AQuick Check:
Health checks exclude unhealthy targets [OK]
- Assuming NLB sends traffic to unhealthy targets
- Thinking NLB stops completely on failure
- Believing NLB redirects to ALB automatically
Solution
Step 1: Check protocol configuration
NLB supports UDP, but the target group must be set to UDP to handle UDP traffic.Step 2: Identify misconfiguration
If the target group is set to TCP, UDP traffic won't be routed correctly.Final Answer:
The target group is configured for TCP instead of UDP -> Option BQuick Check:
Target group protocol must match traffic [OK]
- Thinking NLB does not support UDP
- Ignoring target group protocol settings
- Assuming health checks cause traffic issues
Solution
Step 1: Identify requirements
The system needs static IPs, low latency, and support for millions of TCP connections.Step 2: Match requirements to load balancer features
NLB supports static IPs, is designed for extreme scalability, and handles TCP traffic efficiently with low latency.Step 3: Eliminate incorrect options
ALB focuses on HTTP, Classic LB is older and less scalable, Gateway LB is for network appliances, not general TCP load balancing.Final Answer:
Network Load Balancer, because it supports static IPs and handles millions of TCP connections with low latency -> Option CQuick Check:
Static IP + TCP + scalability = NLB [OK]
- Choosing ALB for TCP static IP needs
- Confusing Classic LB as newest
- Assuming Gateway LB handles general TCP load balancing
Ready to prove it?
Pass the test and this pattern moves unknown
