Home / AWS

AWSRunbookIntermediate

Restoring from AWS Backup: EC2, EBS, RDS and S3 runbook

Find the right recovery point, restore EC2, EBS, RDS or S3 data from the console or CLI, and handle the networking and naming issues afterwards.

Deepak Bhardwaj2 min read

Applies toAWS Backup, Amazon EC2, EBS, RDS/Aurora, S3

Find the recovery point

aws backup list-recovery-points-by-resource \
  --resource-arn arn:aws:ec2:ap-south-1:111122223333:instance/i-0abc123 \
  --query "RecoveryPoints[].{arn:RecoveryPointArn,created:CreationDate,status:Status,vault:BackupVaultName}" --output table

Check Status = COMPLETED. Partial or expired points can't be restored.

Get the restore metadata

Every restore needs resource-specific metadata. Start from what AWS Backup saved:

aws backup get-recovery-point-restore-metadata --backup-vault-name prod-vault \
  --recovery-point-arn <arn> --query RestoreMetadata > meta.json

Edit meta.json to change the subnet, security groups, instance type or DB identifier, so the restore doesn't clash with production.

Start and track the restore

aws backup start-restore-job --recovery-point-arn <arn> \
  --iam-role-arn arn:aws:iam::111122223333:role/service-role/AWSBackupDefaultServiceRole \
  --metadata file://meta.json --resource-type EC2
aws backup describe-restore-job --restore-job-id <job-id> --query "{status:Status,created:CreatedResourceArn,msg:StatusMessage}"

Resource notes

EC2

  • The restored instance gets a new instance ID and private IP. Update DNS, the load balancer target groups and any allow-lists.
  • Don't start it in the same subnet as a running original that has the same hostname or services; isolate it first.

EBS

  • Restores to a new volume in the AZ you choose. Attach it to an instance in the same AZ and mount it to copy data.

RDS / Aurora

  • Restores create a new DB instance or cluster with a new endpoint. Point the app at it, or rename: rename the old instance first, then rename the restored one to the original identifier.
  • Parameter and option groups, security groups and subnet groups must be specified in the metadata, or the defaults are used.

S3

  • Restore either the whole bucket or specific prefixes/objects, to the same or a different bucket. Restoring to a new bucket first is safer when you only need a few files.

Common failures

Error Fix
Access denied on the restore role The role needs the restore permissions for that service, and iam:PassRole for EC2 restores
KMS errors The backup vault and resource keys must allow the restore role to use them. Cross-account copies need key policy grants.
Subnet or SG not found The metadata references resources that were deleted. Edit meta.json.
Instance type unavailable in AZ Change the type or AZ in the metadata

Prevent surprises

  • Use AWS Backup restore testing to run scheduled, automatic restore validations.
  • Enable Vault Lock (compliance mode) on critical vaults for ransomware protection.
  • Copy critical backups to a second region and, ideally, a separate backup account.