Home / AWS

AWSRunbookAdvanced

Aurora Global Database: cross-region DR with switchover and failover

Add a secondary region to an Aurora cluster, monitor replication lag, run a planned switchover with no data loss and an unplanned failover with minimal loss, and reconnect applications.

Deepak Bhardwaj2 min read

Applies toAmazon Aurora MySQL and PostgreSQL Global Database

How it works

  • A primary cluster (read/write) in one region and up to 10 secondary clusters (read-only) in other regions.
  • Storage-level replication, typically under 1 second of lag.
  • Secondary clusters can serve local reads; write forwarding (where supported) lets apps send writes from the secondary region to the primary.

1. Create

aws rds create-global-cluster --global-cluster-identifier crm-global \
  --source-db-cluster-identifier arn:aws:rds:ap-south-1:111122223333:cluster:crm-aurora

aws rds create-db-cluster --region ap-south-2 --db-cluster-identifier crm-aurora-dr \
  --global-cluster-identifier crm-global --engine aurora-postgresql --engine-version 16.4 \
  --db-subnet-group-name db-private --vpc-security-group-ids sg-db-dr --kms-key-id <dr-region-key>

aws rds create-db-instance --region ap-south-2 --db-instance-identifier crm-aurora-dr-1 \
  --db-cluster-identifier crm-aurora-dr --engine aurora-postgresql --db-instance-class db.r7g.large

Size the secondary's instances so they can carry production writes after failover.

2. Monitor lag

CloudWatch metric AuroraGlobalDBReplicationLag (milliseconds) on the secondary; alarm if it exceeds your RPO target. For Aurora PostgreSQL, the rds.global_db_rpo parameter can enforce a maximum RPO by pausing commits if the secondary falls behind.

3. Planned switchover (no data loss)

For drills and region moves; the primary and secondary swap roles while staying in sync:

aws rds switchover-global-cluster --global-cluster-identifier crm-global \
  --target-db-cluster-identifier arn:aws:rds:ap-south-2:111122223333:cluster:crm-aurora-dr

4. Unplanned failover (region outage)

aws rds failover-global-cluster --region ap-south-2 --global-cluster-identifier crm-global \
  --target-db-cluster-identifier arn:aws:rds:ap-south-2:111122223333:cluster:crm-aurora-dr \
  --allow-data-loss

The secondary becomes the new primary; recent transactions not yet replicated may be lost (typically under a second). When the old region recovers, Aurora can rebuild the old primary as a secondary.

5. Application connectivity

  • The global writer endpoint (where available) follows the primary across regions, so applications don't need a new connection string after switchover/failover.
  • Otherwise, use a Route 53 CNAME you update, or service discovery.
  • Application tier in the DR region must be running (warm standby) or deployable quickly.

6. Drill checklist

  • Switchover in a maintenance window, measure write downtime
  • Apps reconnect without config changes
  • Secrets/IAM auth work in the DR region
  • Switch back, verify replication healthy

Note

Global Database protects against a regional outage, not against bad writes. A dropped table replicates in under a second. Keep backtrack (Aurora MySQL), PITR and snapshots.