Amazon CloudFormation is a popular way to make interacting with AWS repeatable. It lets you create complex infrastructure with easy-to-understand JSON specifications. CloudFormation permits you to specify in JSON all of the AWS resources that make up your infrastructure and handles creating and connecting them automatically. It also makes scaling up a snap!
A CloudFormation stack can manage a variety of things: DynamoDB tables, Elastic IPs, EC2 instances, Virtual Private Cloud networks, security groups, Route53 zones and records, IAM users, CloudWatch logs and alarms, S3 buckets, and much more.
In this lab, you will use CloudFormation to launch an EC2 (Linux) instance with a full WordPress installation. The template formatting supports either JSON or YAML. For this lab, the CloudFormation template used will be in JSON format.
Upon completion of this lab, you will be able to:
Familiarity with the following will be beneficial but is not required:
The following content can be used to fulfill the prerequisites:
March 15th, 2023 - Updated screenshots to reflect the latest user interface
February 4th, 2022 - Updated validation check function
January 5th, 2022 - Updated screenshots and instructions to reflect the latest UI
July 16th, 2020 - Improved lab formatting for an improved learning experience. Updated content to reflect the latest AWS Console experience
May 14th, 2019 - Update code for installing PHP and Apache to satisfy new version constraints
January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab
Ryan and his faithful business partner Jade build tools for OpenStack and AWS to automate support of high-availability applications. Offline, he can be found buried in human factors books looking for ways to build more resilient systems.
Ryan loves working with large systems, the less predictable the better. Scaling, load balancing, and graceful failure handling are his favorite classes of problems.
His free time quickly fills with personal projects and self directed research on new tools or different areas of software development.