Profile Applicability:

  • Level 2

Description:

A recovery drill is the execution of a controlled disaster recovery scenario to verify the effectiveness of the recovery plan, infrastructure, and configurations without impacting production workloads. AWS Elastic Disaster Recovery (EDR) allows you to launch test recovery instances in an isolated environment to simulate a failover and validate readiness.

Rationale:

Executing recovery drills ensures:

  • Your disaster recovery strategy works in practice, not just in theory

  • Infrastructure, IAM roles, networking, and data replication are correctly configured

  • Staff are familiar with failover and recovery processes

  • Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO) are achievable

Default Value:

Recovery drills are not automatically executed. They must be manually triggered by an administrator as needed.

Impact:

Pros:
 • Confirms operational readiness of DR plan
• Identifies misconfigurations or gaps in recovery setup
 • Allows testing without impacting production environments

Cons:
 • Consumes temporary resources, leading to potential costs
• Requires careful isolation to avoid conflict with live systems
 • Needs periodic scheduling and documentation

Pre-requisites:

IAM Permissions Required:
 
drs:StartRecovery
 drs:DescribeJobs
 drs:DescribeRecoveryInstances
 ec2:Describe*, ec2:RunInstances
 sns:Publish
 (for notifications, if used)

Remediation:

Test Plan:

Using AWS Console:

  1. Log in to the AWS Management Console
  2. Navigate to Elastic Disaster Recovery (EDR)
  3. Select a source server and initiate a Recovery drill (test mode)
  4. Ensure the recovery instance is launched into a test subnet or VPC
  5. Check the job status under the Jobs section
  6. Confirm the recovery instance is launched, accessible, and functioning as expected

Using AWS CLI:

aws drs describe-source-servers
aws drs describe-recovery-instances
aws drs describe-jobs

Implementation Plan:

Using AWS Console:

  1. Navigate to Elastic Disaster Recovery Console
  2. Select a source server and click on Initiate Recovery Job
  3. Choose Test recovery mode
  4. Configure the launch settings (e.g., instance type, test VPC/subnet, tags)
  5. Launch the test instance and verify its availability
  6. Perform basic functionality tests on the recovery instance
  7.  After validation, terminate the test recovery instance

Using AWS CLI:

aws drs start-recovery \
  --source-server-ids s-xxxxxxxxxxxxxxxxx \
  --recovery-snapshot-id snap-xxxxxxxxxxxxxxx \
  --is-drill
aws drs describe-jobs
aws drs describe-recovery-instances
aws drs terminate-recovery-instances \
  --recovery-instance-ids ri-xxxxxxxxxxxxxxxxx

Backout Plan

Using AWS Console:

  1. Terminate the recovery drill instance via the Recovery Instances tab
  2. Verify that no residual resources (EBS volumes, ENIs) remain
  3. Reset any temporary configuration changes made for the test

Using AWS CLI:

aws drs terminate-recovery-instances \
  --recovery-instance-ids ri-xxxxxxxxxxxxxxxxx
aws ec2 delete-tags \
  --resources i-xxxxxxxxxxxxxxxxx \
  --tags Key=Environment,Value=Test

References: