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
Prerequisites
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:
- Serializing and Transmitting Data in Javascript Object Notation
- AWS CloudFormation: Introduction to Infrastructure as Code
- Using Elastic Load Balancing & EC2 Auto Scaling to Support AWS Workloads
- AWS Virtual Private Cloud: Subnets and Routing
Updates
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.
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.