Application Load Balancing with Azure Application Gateways

Lab Steps

Logging into 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

The hands-on lab is part of this learning path

Ready for the real environment experience?

Time Limit1h 30m
star star star star star-half


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


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 paths12

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 Administrator (CKA), Certified Kubernetes Application Developer (CKAD), Linux Foundation Certified System Administrator (LFCS), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.