Deploy Wordpress using CloudFormation

Lab Steps

Logging in to the Amazon Web Services Console
Create a CloudFormation Stack
Check Stack Status
View Stack Resources
Delete the Stack

Ready for the real environment experience?

Time Limit1h


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 and 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.

Learning Objectives

Upon completion of this Lab you will be able to:

  • Deploy infrastructure using AWS Cloud Formation
  • Manage Cloud Formation stacks

Lab Prerequisites

You should be familiar with:

  • AWS networking basics


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

Environment before
Environment after
About the Author

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.