Bird
Raised Fist0
AWScloud~30 mins

Network Load Balancer (NLB) in AWS - Mini Project: Build & Apply

Choose your learning style10 modes available
Create a Network Load Balancer (NLB) with AWS CDK
📖 Scenario: You are setting up a simple Network Load Balancer (NLB) in AWS to distribute incoming TCP traffic to backend servers. This is a common task when you want to improve availability and scalability of your application.
🎯 Goal: Build an AWS CDK stack that creates a Network Load Balancer with one listener on port 80 and a target group with two IP targets.
📋 What You'll Learn
Create a Network Load Balancer named myNLB in the default VPC
Add a listener on port 80 for TCP protocol
Create a target group named myTargetGroup with TCP protocol on port 80
Add two IP targets with IP addresses 10.0.0.10 and 10.0.0.11 to the target group
💡 Why This Matters
🌍 Real World
Network Load Balancers are used to distribute TCP traffic efficiently to backend servers, improving availability and scalability of applications.
💼 Career
Understanding how to configure NLBs with AWS CDK is important for cloud engineers and developers managing scalable network architectures.
Progress0 / 4 steps
1
Create the Network Load Balancer
Create a Network Load Balancer called myNLB in the default VPC using AWS CDK. Use the NetworkLoadBalancer construct from @aws-cdk/aws-elasticloadbalancingv2 and set internetFacing to true.
AWS
Hint

Use new elbv2.NetworkLoadBalancer(this, 'myNLB', { vpc, internetFacing: true }) to create the NLB.

2
Add a listener on port 80
Add a listener to the Network Load Balancer myNLB on port 80 using TCP protocol. Use the addListener method with port: 80 and protocol: elbv2.Protocol.TCP.
AWS
Hint

Use myNLB.addListener('Listener', { port: 80, protocol: elbv2.Protocol.TCP }) to add the listener.

3
Create a target group with TCP protocol
Create a target group called myTargetGroup with TCP protocol on port 80 in the default VPC. Use the NetworkTargetGroup construct from @aws-cdk/aws-elasticloadbalancingv2.
AWS
Hint

Use new elbv2.NetworkTargetGroup(this, 'myTargetGroup', { vpc, port: 80, protocol: elbv2.Protocol.TCP }) to create the target group.

4
Add IP targets to the target group and attach to listener
Add two IP targets with IP addresses 10.0.0.10 and 10.0.0.11 to the target group myTargetGroup. Then attach myTargetGroup to the listener listener using the addTargetGroups method.
AWS
Hint

Use myTargetGroup.addTarget(new elbv2.IpTarget('10.0.0.10', 80)) and similarly for the second IP. Then attach with listener.addTargetGroups('TargetGroupAttachment', { targetGroups: [myTargetGroup] }).

Practice

(1/5)
1. What is the primary purpose of an AWS Network Load Balancer (NLB)?
easy
A. To efficiently distribute TCP/UDP traffic at the connection level
B. To manage HTTP requests with advanced routing rules
C. To store and retrieve data in a scalable way
D. To provide a user interface for managing AWS resources

Solution

  1. Step 1: Understand NLB's traffic handling

    NLB works at the connection level and handles TCP/UDP traffic efficiently.
  2. 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.
  3. Final Answer:

    To efficiently distribute TCP/UDP traffic at the connection level -> Option A
  4. Quick Check:

    NLB purpose = TCP/UDP load balancing [OK]
Hint: NLB handles TCP/UDP, not HTTP features [OK]
Common Mistakes:
  • Confusing NLB with Application Load Balancer
  • Thinking NLB manages HTTP routing
  • Assuming NLB stores data
2. Which of the following is a valid characteristic of an AWS Network Load Balancer (NLB)?
easy
A. Only supports HTTP and HTTPS protocols
B. Requires manual scaling for high traffic
C. Automatically modifies HTTP headers
D. Supports static IP addresses for the load balancer

Solution

  1. Step 1: Identify NLB features

    NLB supports static IP addresses, which is useful for fixed IP requirements.
  2. Step 2: Eliminate incorrect options

    NLB does not only support HTTP/HTTPS (it supports TCP/UDP), does not modify HTTP headers, and scales automatically.
  3. Final Answer:

    Supports static IP addresses for the load balancer -> Option D
  4. Quick Check:

    Static IP support = true for NLB [OK]
Hint: NLB supports static IPs, unlike ALB [OK]
Common Mistakes:
  • Thinking NLB only supports HTTP/HTTPS
  • Assuming NLB modifies HTTP headers
  • Believing NLB requires manual scaling
3. Given an NLB configured to balance TCP traffic across three targets, what happens if one target becomes unhealthy?
medium
A. NLB stops sending traffic to the unhealthy target and continues with healthy ones
B. NLB sends traffic evenly to all targets regardless of health
C. NLB shuts down until the unhealthy target recovers
D. NLB redirects traffic to a backup Application Load Balancer

Solution

  1. Step 1: Understand NLB health checks

    NLB performs health checks and routes traffic only to healthy targets.
  2. Step 2: Analyze behavior on unhealthy target

    If a target is unhealthy, NLB excludes it from routing until it recovers.
  3. Final Answer:

    NLB stops sending traffic to the unhealthy target and continues with healthy ones -> Option A
  4. Quick Check:

    Health checks exclude unhealthy targets [OK]
Hint: NLB routes only to healthy targets [OK]
Common Mistakes:
  • Assuming NLB sends traffic to unhealthy targets
  • Thinking NLB stops completely on failure
  • Believing NLB redirects to ALB automatically
4. You configured an NLB but notice it is not distributing UDP traffic as expected. What is the most likely cause?
medium
A. Health checks are disabled for the target group
B. The target group is configured for TCP instead of UDP
C. NLB does not support UDP traffic
D. NLB requires HTTP listeners for UDP traffic

Solution

  1. Step 1: Check protocol configuration

    NLB supports UDP, but the target group must be set to UDP to handle UDP traffic.
  2. Step 2: Identify misconfiguration

    If the target group is set to TCP, UDP traffic won't be routed correctly.
  3. Final Answer:

    The target group is configured for TCP instead of UDP -> Option B
  4. Quick Check:

    Target group protocol must match traffic [OK]
Hint: Match target group protocol to traffic type [OK]
Common Mistakes:
  • Thinking NLB does not support UDP
  • Ignoring target group protocol settings
  • Assuming health checks cause traffic issues
5. You need to design a highly scalable system that requires static IP addresses and low latency for millions of TCP connections. Which AWS load balancer should you choose and why?
hard
A. Gateway Load Balancer, because it manages HTTP and TCP traffic with static IPs
B. Application Load Balancer, because it supports HTTP routing and static IPs
C. Network Load Balancer, because it supports static IPs and handles millions of TCP connections with low latency
D. Classic Load Balancer, because it is the newest and fastest option

Solution

  1. Step 1: Identify requirements

    The system needs static IPs, low latency, and support for millions of TCP connections.
  2. 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.
  3. 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.
  4. Final Answer:

    Network Load Balancer, because it supports static IPs and handles millions of TCP connections with low latency -> Option C
  5. Quick Check:

    Static IP + TCP + scalability = NLB [OK]
Hint: For static IP and TCP scale, choose NLB [OK]
Common Mistakes:
  • Choosing ALB for TCP static IP needs
  • Confusing Classic LB as newest
  • Assuming Gateway LB handles general TCP load balancing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard