hands-on lab

Amazon EKS - Using the AWS Load Balancer Controller to Expose Applications

Up to 2h 30m
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.


The AWS Load Balancer Controller is used to help manage and control the provisioning of ALBs (Ingress resources) and NLBs (Service resources - type LoadBalancer).

In this Lab scenario, you'll learn how to deploy the AWS Load Balancer Controller into the lab provided EKS cluster using Helm. You'll then perform the following deployments within the cluster:

  • Deploy a sample Web App and configure external public access to it via an Ingress cluster resource. The AWS Load Balancer Controller will provision an ALB for the Ingress resource, providing an entry point for external public HTTP  (layer-7) based traffic.
  • Deploy a sample TCP Echo App and configure external public access to it via a Service (type LoadBalancer) cluster resource. The AWS Load Balancer Controller will provision a NLB for the Service resource, providing an entry point for external public TCP (layer-4) based traffic.

Learning Objectives

Upon completion of this Lab, you will be able to:

  • Deploy and configure the AWS Load Balancer Controller into an EKS cluster
  • Deploy a sample web app and expose it publicly using an Ingress resource
  • Deploy a TCP Echo App and expose it publicly using a Service (type LoadBalancer) resource

Intended Audience

This lab is intended for:

  • Kubernetes practitioners
  • DevOps Engineers
  • SREs

Lab Prerequisites

You should be familiar with:

  • Basic Linux command line administration
  • Basic Kubernetes and Container-based concepts

Consider taking the following courseware in preparation for this lab:

Lab Environment

This Lab will start with the following AWS resources provisioned automatically for you:

  • 1 x EKS cluster - Cluster-1 - provides a fully functional Kubernetes cluster 
    • 1 x NodeGroup
      • 1 x EC2 Worker Node
  • 2 x EC2 instances
    • eks.launch.instance - used to launch the EKS cluster
    • cloudacademylabs - used to provide an SSH based terminal


December 5th, 2023 - Updated Kubernetes version

March 6th, 2023 - Updated to K8s 1.24


Environment before

Environment after

About the author

Jeremy Cook, opens in a new tab
Solutions Architect Director
Learning paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS), GitHub.

Covered topics

Lab steps

Logging In to the Amazon Web Services Console
Connecting to the Virtual Machine using EC2 Instance Connect
Reviewing Amazon EKS Resources Automatically Created
Installing Kubernetes Management Tools and Utilities
Review AWS Load Balancer Controller Config Prerequisites
Deploy AWS Load Balancer Controller
Review Web App Design
Deploy and Expose the Web App
Review TCP Echo App Design
Deploy and Expose the TCP Echo App
Connect to the TCP Echo App Externally