Simple Disaster Recovery with CloudFormation and Lambda

1.5 hours
  • 3 Learning Objectives

About this Hands-on Lab

Recovering AWS workloads after a disaster is a crucial skill for organizations using the AWS cloud. This requires creating strategies and testing **Disaster Recovery (DR)** plans and techniques.

**CloudFormation** offers a simple solution that can help with DR over the long term and while working toward implementing more advanced strategies.

One problem, however, is that **AMI ID numbers** can change over time, and vary from region to region. Adding a simple **Lambda function** to the strategy can automate and fix the issue.

#### In this lab you will:

*Click [here]( to download lab files*

1. Explore **disaster recovery strategies** including:
– Backup & Restore
– Pilot Light
– Warm Standby
– Multi-site
2. Use a CloudFormation template to **restore a production AWS environment**
3. Examine a **Lambda function** and a **CloudFormation Cross Stack Reference** that can **automate** looking up current AMI ID numbers for launching resources in the correct VPC.
4. Use a modified **CloudFormation template** with **Lambda** to launch an additional EC2 instance.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Review the Disaster Recovery Plan
  1. Review the basics of Disaster Recovery in AWS including:
    • Disaster recovery strategies
    • Recovery time objective (RTO) and recovery point objective (RPO)
  2. Examine a demo cross-region DR Plan using Backup and Restore with CloudFormation.
Implement and Test the Disaster Recovery Plan
  1. Verify the CF_WordPress_Blog CloudFormation template is in your S3 bucket.
  2. Launch the template in the Production region (us-east-1).
  3. Review the new stack and the resources created.
  4. Review the Outputs tab of the CloudFormation stack.
Add and Test the Lambda AMI Lookup Function
  1. Copy the code for the Lamdba AMI Lookup function ( to an S3 bucket.
  2. Copy the 1-CF_WordPress_Blog_with_Lookup CloudFormation template to an S3 bucket.
  3. Copy the 2-Add_Single_Instance CloudFormation template to an S3 bucket.
  4. Examine both CloudFormation templates:
    • Note the Cross Stack Reference
  5. Launch the 1-CF_WordPressBlog_with_Lookup template in the Disaster Recovery region:
    • For this lab, also use us-east-1 for DR.
    • Examine the Outputs tab of the new stack.
  6. Launch the 2-Add_Single_Instance template:
    • Use the same region as in the previous step.
  7. Examine the newly created EC2 instance:
    • Note which VPC is in use.

Additional Resources

You’ve just taken over responsibility for an AWS workload consisting of an application (WordPress) running on EC2. There is currently no Disaster Recovery plan for this environment. In this lab, you will evaluate and test the use of a CloudFormation template to recreate the needed infrastructure in the event of a disaster. You will also further automate the process by adding a Lambda function that will look up current AMI ID numbers and provide them to the CloudFormation template.

Click here to download lab files. (These files are stored in a GitHub repository; clicking on the Download button will allow you to download a ZIP file containing the necessary lab files. You'll need to open the ZIP file to extract the individual files before uploading them to S3.)

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?