Deploy Hybrid-Cloud Azure Solutions using ARM Templates

This IT Pro Challenge hands-on lab helps learners understand how to use the Azure Resource Manager (ARM) templates to deploy a multi-tier (front-end, application, and database server) web application. As part of the process, learners will create multiple virtual machines and virtual networks, enable virtual network peering, and configure SQL Server...

1 hour 15 minutes
Join over 3 million cybersecurity professionals advancing their career
Sign up with
Required fields are marked with an *

Already have an account? Sign In »


In this IT Pro Challenge, learners will understand how to create and deploy multiple virtual machines using Azure Resource Manager (ARM) templates, create and configure scale set instances and autoscaling rules, create multiple virtual networks and use virtual network peering to create secure bi-directional communication, enable SQL Authentication, and create an inbound security rule to allow a virtual machine to communicate with SQL Server. The skills learned in this lab are important for roles as a network or system administrator.


The scenario for this virtual lab is that you are a system administrator, and your company is migrating its primary web apps and databases from an on-premise datacenter to Azure. Your job is to use Azure Resource Manager (ARM) templates to create and deploy multiple cloud resources in a multi-tier architecture. You will need to create both virtual machines (VMs) and virtual networks (vnets). As proof of concept, you will test the configuration.

ARM is a management service that allows you to manage Azure resources. One of the things that ARM allows you to do is use templates rather than scripts to manage resources and infrastructure. An ARM template is a JavaScript Object Notation (JSON) file that contains the resources that you want to deploy to Azure.

Deploy ARM VMs as front-end servers

To begin, you will launch Azure Portal. You will then access a sample template on Github and deploy that template to Azure so that you can use it to deploy two ARM virtual machines to the same virtual network (vnetweb).

Deploy ARM VMs as application servers

Now you need to access a different sample template on Github (Deployment of a VM Scale Set of Linux VMs behind a load balancer with NAT rules) and deploy that template to Azure. You then need to create a virtual machine scale set with two instances, configure those instances to enable autoscaling and define a scaling rule, and change the virtual network name from vnetweb to vnetapp. Autoscaling is based on the premise of load balancing by providing a means of scaling up/down the computing resources for an application based on need.

You then need to deploy the 201-existing-vnet-to-vnet-peering sample template to Azure and edit the template to create a virtual network peering between vnetweb and vnetapp (the two virtual networks that you created earlier in the lab). You will then create bi-directional communication by creating a second virtual network peering between vnetapp and vnetweb. In both virtual network peerings, you need to enable virtual network access and allow forwarded traffic.

Deploy an ARM VM as a database server

For the final step, you need to create an ARM virtual machine and configure it to use Windows Server 2016 with Microsoft SQL Server 2017 Developer included. You will then need to create a new virtual network (vnetdb) for the virtual machine you just created. For SQL Server, you need to enable SQL Authentication. Then you will use Remote Desktop Protocol (RDP) to connect to the virtual machine and use SQL Server Management Studio (SSMS) to verify that SQL Server is running.

Next, you need to add a data disk to the virtual machine for the SQL Server transaction logs. Once again, you will use RDP to connect to the virtual machine and format the disk you just created and create a database rule that uses the new disk. In the Network Security Group (NSG) for the virtual machine, you will create an inbound security rule to allow connectivity with SQL Server.

Challenge validation

This section of the lab allows you to validate the work you have done so far to ensure that you followed the steps correctly.

Summary Conclusion

By taking this virtual lab, you will learn how to use ARM templates to deploy virtual machines as a front-end server, an application server, and a database server. You will learn how to enable and configure autoscaling and autoscaling rules and create secure bi-directional communication by using virtual network peering.


Connect the pieces

Completing a Learn On Demand Pro Series is one thing, mastering the skill is another.

Master the skill and take this learn on demand pro series in an expertly designed Course.

Learning Partner
Comprehensive Learning

See the full benefits of our immersive learning experience with interactive courses and guided career paths.