Set Up Cross-Region Disaster Recovery for DynamoDB Using Global Tables (Step-by-Step Guide)

Search for a command to run...

No comments yet. Be the first to comment.
The Ops Fix Hub is a dynamic series designed to tackle real-world challenges in the DevOps and CloudOps domains. "Breaking Down Barriers, One Ops Fix at a Time."
In today's cloud-native world, ensuring high availability and resilience for streaming platforms like Apache Kafka is mission-critical. Amazon MSK (Managed Streaming for Apache Kafka) offers a powerful, fully managed Kafka service. However, it doesn'...
This migration was performed on a production workload where cost reduction was prioritized over zone-level high availability.

1. Overview What I Designed I designed a hybrid infrastructure architecture: Terraform → Foundation Layer Crossplane → Dynamic Lifecycle Layer ArgoCD → GitOps Enforcement This created a continuou

Cross-cloud VM migration is not a disk copy task. It is: An access model transformation A replication lifecycle management exercise A downtime control operation A cost boundary decision We execu

When AWS introduced AWS DevOps Agent, I was less interested in feature lists and more interested in one practical question. Can it actually reduce investigation time during real production-style failu

Migrating object storage across cloud providers is not a copy task.It is a cost, network, and security boundary problem. We migrated 10+ TB of object data from Google Cloud Storage to Amazon S3 under

In today’s cloud-native world, ensuring the continuous availability of data across regions is crucial. Amazon DynamoDB Global Tables offer a powerful, fully managed solution for building active-active cross-region architectures with built-in replication.
In this post, we’ll walk through how to set up a cross-region disaster recovery (DR) strategy for DynamoDB using Global Tables across us-east-1 and ap-south-1, covering setup, replication, and failover validation.
Architecture: Active-Active (bi-directional replication)
Primary Region: us-east-1 (US East - N. Virginia)
Disaster Recovery Region: ap-south-1 (Asia Pacific - Mumbai)
Objective: Set up Global Tables in DynamoDB to ensure DR-readiness with real-time replication.

Log in to the AWS Management Console.
Switch Region to US East (N. Virginia) – us-east-1.
Navigate to Services > DynamoDB.
Click on "Create Table".
Enter table details:
Table name: test-table
Partition key: user-id (String)
Leave defaults as-is (On-demand billing recommended).
Click "Create Table".
Wait until the table status is “Active”.
While still in us-east-1, open the test-table.
Go to the "Global Tables" tab.
Click "Add region".
Select Asia Pacific (Mumbai) – ap-south-1.
Click "Create Replica".
AWS will provision a replica in ap-south-1 with automatic schema synchronization.
Switch Region to ap-south-1.
Go to DynamoDB > Tables.
Confirm that test-table appears.
Open it and validate that the schema matches the original.
Switch back to us-east-1.
Open test-table > Explore table items > Create item.
Add:
{
"UserID": "U001",
"Name": "Alice"
}
Click "Create item".
Switch to ap-south-1.
Navigate to test-table > Explore table items.
Verify that Alice’s record is replicated.
In ap-south-1, add:
{
"UserID": "U002",
"Name": "Bob"
}
Switch to us-east-1 and verify Bob's entry is available there too.
To test failover without bringing down the actual AWS region:
Block the us-east-1 endpoint locally:
sudo nano /etc/hosts
Add the following line:
127.0.0.1 dynamodb.us-east-1.amazonaws.com
Now perform read/write operations only in ap-south-1.
Once done, remove or comment out the line from /etc/hosts.
With DynamoDB Global Tables, building a resilient, low-latency, and globally available application becomes straightforward. This architecture is ideal for mission-critical systems that demand real-time DR and global data access. By following this guide, you’ve successfully implemented an active-active cross-region DR strategy using only the AWS Console.
💬 Have you implemented cross-region DR for DynamoDB or other AWS services? Share your setup in the comments!