hands-on lab

Hands-On CloudFormation for Deploy Scalability

Up to 2h
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.


AWS CloudFormation is an Infrastructure as Code tool from Amazon Web Services that enables automating the deployment of infrastructure and applications. Benefits of automating infrastructure deployments include:

  • Parity and consistency between development, test, and production environments
  • Rapid and repeatable deployments
  • Improved audibility

In this hands-on lab, you will translate business requirements into an AWS CloudFormation template and use it to deploy a fully-functional application with the following infrastructure components:

  • A VPC and public and private subnets
  • A NAT instance for access to the internet from a private subnet
  • Route tables and Network ACLs for the VPC
  • An Elastic Load Balancer (ELB) and Auto Scaling Group
  • Code deployment automation
  • Security Groups for the EC2 Instances and ELB
  • DynamoDB Table to persist data, and IAM Roles to allow EC2 Instance access

Learning Objectives

Upon completion of this intermediate-level lab, you will be able to:

  • Author an AWS CloudFormation template
  • Use your template to create an AWS CloudFormation stack
  • Understand how to deploy into multiple AWS Regions

Intended Audience

  • DevOps Engineers
  • Solution Architects
  • SysOps Administrators
  • Cloud Engineers


You will need a text editor available to author an AWS CloudFormation JSON template. Visual Studio Code is a free text editor you can use.

Knowledge and experience with the following will be beneficial but is not required:

  • JSON (JavaScript Object Notation)
  • AWS CloudFormation
  • Elastic Load Balancing and EC2 Auto Scaling
  • Using Subnets and Routes in Amazon Virtual Private Cloud

The following courses can be used to fulfill the requirements:


February 8th, 2022 - Modernised the template and addressed a minor discrepancy

February 12th, 2021 - Updated the lab to resolve a permission issue

October 22nd, 2020 - Updated all instructions and screenshots

May 29th, 2020 - Fixed an issue related to npm and dependencies

December 2nd, 2019 - Add availability zone constraint to avoid deploying in us-west-2d which fails because of an unsupported instance type is that zone

January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab

September 18th, 2018 - Fixed an issue related to node's package manager (npm) failing to install some dependencies and causing the load balancer's URL to not display the app.

About the author

Learning paths

Andrew is a Labs Developer with previous experience in the Internet Service Provider, Audio Streaming, and CryptoCurrency industries. He has also been a DevOps Engineer and enjoys working with CI/CD and Kubernetes.

He holds multiple AWS certifications including Solutions Architect Associate and Professional.

Covered topics

Lab steps

Logging In to the Amazon Web Services Console
Planning Your CloudFormation VPC
Authoring Networking Resource Automation In CloudFormation
Authoring Compute & Database Resource Automation
Authoring Access Resource Automation
Creating a CloudFormation Stack from your Template