Application Load Balancing with Azure Application Gateways

Lab Steps

Logging in to the Microsoft Azure Portal
Starting an Azure Cloud Shell
Understanding Azure Application Gateways and the Lab Scenario
Creating an Application Gateway to Load Balance VMSS Traffic
Using a VMSS Extension to Deploy a Web Application to the VMSS
Configuring the VMSS as the Application Gateway Backend Pool

Ready for the real environment experience?

Time Limit2h


Lab Overview

Azure Application Gateways are HTTP/HTTPS load balancing solutions. Compared to Azure Load Balancers which are TCP/UDP load balancing solutions. Similar to Azure Load Balancers, Application Gateways can be configured with internet-facing IP addresses or with internal load balancer endpoints making them inaccessible via the internet. Application Gateways are ideal when you require some of the following features:

  • Web-based traffic in any of HTTP, HTTPS, or WebSocket protocols
  • TLS/SSL offloading
  • Built-in web application firewall
  • Cookie affinity for sticky sessions

This Lab will take you through a scenario of deploying a web application in Azure, and creating and configuring an Application Gateway to load balance the web application's traffic. The Lab uses the Azure CLI to create and configure resources in the Lab environment.

Lab Objectives

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

  • Use an Application Gateway to load balance application traffic
  • Understand the use cases for an Application Gateway and when to use an Azure Load Balancer instead
  • Familiarize with the Azure CLI to inspect, create, and update resources in a resource group
  • Deploy applications to Virtual Machine Scale Sets (VMSS) using VMSS extensions

Lab Prerequisites

You should be familiar with:

  • Working at the command line in Linux
  • Basic Azure concepts including resource groups, virtual networks, VMs, and the Azure CLI


May 20th, 2020 - Reverted some lab steps to account for a closed issue with the Azure CLI

May 5th, 2020 - Added a validation check function to check the work done in the lab

March 16th, 2020: Refactored some lab steps to get around an open issue with the Azure CLI

Environment before
Environment after
About the Author
Learning paths30

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.