Skip to main content
emnode / learn
Site Reliability

Configure cross-region backup copy

Backups in the same region as the workload won't help when the region goes down. Add a cross-region copy rule before disaster forces the conversation.

15 min·10 sections·AWS

Last reviewed

Cross-region backup copy: the basics

What does it mean to copy a backup across regions?

AWS Backup organises protection around a Backup Plan: a set of rules that snapshot the resources you tag or assign, on a schedule, into a Backup Vault. By default, that vault lives in the same region as the workload — eu-west-2 backups land in an eu-west-2 vault, us-east-1 backups land in a us-east-1 vault. A region-local copy is fine for the usual disaster: accidental delete, bad deploy, ransomware, a single AZ failure. It is useless for the disaster that empties the entire region.

A cross-region Copy Action attaches to a plan rule and fires automatically once the primary backup completes. It pushes the recovery point to a vault in a second region you nominate — eu-west-1, us-west-2, ap-southeast-2, wherever. From that moment on you have an independent, restorable copy outside the failure domain of the source region. If eu-west-2 goes dark, you can restore the workload into eu-west-1 from the copied recovery point.

The continuity check BKP-004 ("Cross-Region Copy Not Configured") fires when AWS Backup hasn't observed any cross-region copy jobs in a region for the last 30 days. Severity is MEDIUM rather than HIGH because most teams survive a long time without exercising it — until they don't. It is the kind of finding that looks ignorable in a steady-state quarter and looks negligent in a post-mortem.

In this lesson you'll learn why single-region backup is a category-of-one risk most teams underestimate, how AWS Backup's Copy Action actually works under the hood, what it costs to add a destination region, and how to wire one into an existing Backup Plan without breaking anything. You'll also see why a cross-region copy you've never restored from is theatre, and how to schedule restore drills that prove the strategy.

Fun fact

us-east-1's habit of taking everything with it

us-east-1 is AWS's oldest, largest, and most-incident-prone region. The December 2021 outage took out a chunk of multi-AZ services for hours; the June 2023 Lambda event cascaded across multiple AZs simultaneously; the September 2015 DynamoDB event took down half the internet's east coast. "Multi-AZ" doesn't always mean "multi-failure-domain" inside one region — control planes are shared. If your only backup is in the same region as the workload, your RPO during a region event is whatever you can recover from S3 Glacier on a different continent, in days, not minutes.

Cross-region copy in action

Marco runs platform for a UK fintech. A continuity audit flags BKP-004 against their eu-west-2 production account: 12 backup plans, all snapshotting RDS, EBS, and DynamoDB on a nightly schedule, none of them copying anywhere outside London.

He pulls the last 30 days of copy jobs to confirm — and gets exactly what the check predicted: zero copies, anywhere. Every recovery point they have is sitting in the same region as the resources it was taken from.

He picks eu-west-1 (Ireland) as the destination — geographically near, GDPR-aligned, same data-residency story for customers — and starts the work to wire up a Copy Action on the highest-impact plan first.

First, confirm the blind spot — list any copy jobs from eu-west-2 in the last 30 days.

$ aws backup list-copy-jobs --region eu-west-2 --by-created-after $(date -u -d '30 days ago' +%FT%TZ) --query 'CopyJobs[*].{Resource:ResourceArn,Dest:DestinationBackupVaultArn,State:State}' --output table
-----------------------------------------
| ListCopyJobs |
+---------+---------+-----------+---------+
| Dest | Resource | State | |
+---------+---------+-----------+---------+
+---------+---------+-----------+---------+
# Empty response. Zero copy jobs in 30 days — every recovery point lives in eu-west-2 only.

No cross-region copy activity in the source region — exactly what BKP-004 detects.

Inspect the highest-impact backup plan to see what a Copy Action needs to slot into.

$ aws backup get-backup-plan --backup-plan-id 4f8c1d2b-7a3e-4f1c-9b5a-2d8e6f0a1c34 --query 'BackupPlan.Rules[0]'
{
"RuleName": "DailyRDS",
"TargetBackupVaultName": "prod-rds-vault",
"ScheduleExpression": "cron(0 2 * * ? *)",
"StartWindowMinutes": 60,
"CompletionWindowMinutes": 180,
"Lifecycle": { "DeleteAfterDays": 35 },
"CopyActions": []
}
# CopyActions is empty — recovery points never leave eu-west-2.

The plan rule that needs a CopyActions block pointing at an eu-west-1 vault.

How AWS Backup's Copy Action actually worksdeep dive

A Copy Action is not a separate workflow you trigger after the backup — it's a property of the plan rule itself. When the primary backup job for a rule reaches COMPLETED, AWS Backup synchronously kicks off a copy job for every entry in the rule's CopyActions array. Each entry names a DestinationBackupVaultArn (which encodes the destination region) and an independent Lifecycle for retention in the destination. The copy preserves the recovery-point metadata and tags, and the destination recovery point is restorable in its own right — you don't need the source region to be reachable.

Encryption is the part teams get wrong. The source vault and destination vault each use a KMS key in their own region; AWS KMS keys are region-scoped, and cross-region KMS keys don't exist. Backup re-encrypts the recovery point with the destination vault's KMS key as part of the copy, which means the destination key has to exist and have the right key policy before the first copy runs. If you reuse the same alias name in both regions ("alias/backup-key") your IaC stays clean and your operators don't get confused at 3am.

Cost-wise there are three line items: the copy operation itself (a per-GB charge), warm storage at the destination (priced like normal Backup storage), and — if you ever restore back to the source region — cross-region data transfer at standard EC2 inter-region rates. The rough planning number is 2x the source storage cost as a steady-state figure, plus a one-off transfer charge in a real DR event. That number isn't optional cost; it's what disaster-recovery costs to actually have.

# Inspect a copy job after it fires — see source/dest vault, state, and bytes copied.
aws backup describe-copy-job \
  --copy-job-id 8e3c5a7d-2f4b-4c8a-9d1e-6b3a7f9c2e51 \
  --region eu-west-2 \
  --query '{State:State,Source:SourceBackupVaultArn,Dest:DestinationBackupVaultArn,Bytes:BackupSizeInBytes}'

# Pre-create the destination KMS key in the destination region before any plan changes.
aws kms create-key \
  --region eu-west-1 \
  --description 'Backup vault encryption key' \
  --policy file://backup-key-policy.json

aws kms create-alias \
  --region eu-west-1 \
  --alias-name alias/backup-key \
  --target-key-id <key-id-from-previous-call>

What is the impact of single-region backups?

The headline impact is unrecoverable data loss in a region-wide event. AZ outages are common and survivable — multi-AZ RDS, EBS replication, and ASGs all handle them. Region-wide outages are rare but real, and they have happened in every major hyperscaler region at some point. If your only recovery points sit in the affected region, your RPO during such an event is whatever you have outside AWS (offline copies, customer-supplied data, manual re-entry) and your RTO is measured in days or weeks.

The second-order impact is contractual. SOC 2 CC7.5, ISO 27001 A.17, PCI DSS 12.10.1, and most enterprise MSAs include some form of geographic redundancy requirement. "Backups exist" doesn't satisfy those — the auditor will ask where the backups live and how the recovery would work if the primary region is gone. A nil cross-region copy posture is an audit finding waiting to land.

The third-order impact is operational confidence. Teams without cross-region copies tend to also not run restore drills, because there's nowhere meaningful to restore to. The result is a backup strategy nobody has ever tested end-to-end. Real DR events then become live experiments at the worst possible time — exactly when a confident, rehearsed playbook would be the difference between a four-hour recovery and a four-day one.

The financial impact is the bill for the copy itself — roughly 2x the storage cost of the source backups, plus the per-GB copy operation, plus data-transfer charges only if you actually restore back. For a 5TB monthly backup footprint that's a few hundred dollars a month, which is rounding error compared to the cost of a single hour of unplanned downtime for most production workloads.

How do you add cross-region copy safely?

Rolling out a cross-region copy is a four-step loop that mirrors any change to the backup posture: take stock, fix the plan, verify the copy lands and restores, and keep verifying on a cadence. Skipping the last step is the most common failure mode — copies that exist but have never been restored from are not a recovery strategy.

1. Inventory plans and pick the destination region

List every Backup Plan in the source region with aws backup list-backup-plans and rank them by the criticality of the resources they cover. Choose a destination region with deliberate care: the geographically-nearest AWS paired region keeps latency and data-sovereignty stories clean, but a different "fault domain" region (e.g. eu-west-2 → us-east-1) gives stronger isolation if you're worried about correlated continent-wide failures. Most teams pick the paired region for the first pass and only widen later.

2. Pre-create the destination vault and KMS key, then update the plan

Create the Backup Vault and KMS key in the destination region first — both with names and tags that match your IaC convention so the relationship is obvious from a console glance. Then call UpdateBackupPlan to add a CopyActions block to each rule, naming the destination vault ARN and the destination-side Lifecycle. Keep the source retention short (fast restore, low cost) and the destination retention longer (compliance and DR coverage).

3. Verify the first copy job lands, then restore from it

After the next scheduled run, use aws backup list-copy-jobs --region <source> to confirm the copy fired and reached COMPLETED. Then do the part most teams skip: actually restore the destination recovery point into the destination region (StartRestoreJob), point a test workload at it, prove it boots, and tear it back down. A copy you've never restored from is theatre, not DR.

4. Schedule quarterly restore drills and alert on copy failures

Add a CloudWatch alarm on the Backup copy-job FAILED metric so silent failures surface within an hour. Put a recurring 60-minute slot on the platform team's calendar every quarter to restore the most-recent destination recovery point of the highest-impact plan into the destination region, prove it works, and document the runbook. The drill is the whole point — everything before it is preparation.

# Add a CopyAction to an existing plan rule. Source retention 35 days, destination retention 365 days.
cat > plan.json <<'JSON'
{
  "BackupPlanName": "prod-daily",
  "Rules": [
    {
      "RuleName": "DailyRDS",
      "TargetBackupVaultName": "prod-rds-vault",
      "ScheduleExpression": "cron(0 2 * * ? *)",
      "StartWindowMinutes": 60,
      "CompletionWindowMinutes": 180,
      "Lifecycle": { "DeleteAfterDays": 35 },
      "CopyActions": [
        {
          "DestinationBackupVaultArn": "arn:aws:backup:eu-west-1:123456789012:backup-vault:prod-rds-vault-dr",
          "Lifecycle": { "DeleteAfterDays": 365 }
        }
      ]
    }
  ]
}
JSON

aws backup update-backup-plan \
  --backup-plan-id 4f8c1d2b-7a3e-4f1c-9b5a-2d8e6f0a1c34 \
  --backup-plan file://plan.json

# Confirm the next nightly run actually copied.
aws backup list-copy-jobs \
  --region eu-west-2 \
  --by-created-after $(date -u -d '24 hours ago' +%FT%TZ) \
  --query 'CopyJobs[*].{State:State,Bytes:BackupSizeInBytes,Dest:DestinationBackupVaultArn}'

Quick quiz

Question 1 of 5

You're about to add a cross-region Copy Action from eu-west-2 to eu-west-1 for an RDS backup plan. The source vault uses a customer-managed KMS key. What's the most important pre-requisite before pushing the plan change?

You've completed Configure cross-region backup copy. You now know why a single-region backup posture is a category-of-one risk, how AWS Backup's Copy Action wires into a plan rule, how the KMS and cost story actually works, and how to add a destination region without breaking anything. The four-step loop — inventory, configure, verify with a real restore, and drill on a cadence — is the difference between backups that exist and backups that recover.

Back to the library