A Pragmatic Multi-Region Strategy for Small Teams
How a small team moved from single-region risk to a simple active/passive multi-region setup without doubling complexity.
Key takeaways
How a small team moved from single-region risk to a simple active/passive multi-region setup without doubling complexity.
On this page
A Pragmatic Multi-Region Strategy for Small Teams#
Multi-region can easily become a science project. This is what worked for a five-person platform team supporting a SaaS product.
Starting Point: Single Region, Shared VPC#
We began with everything in one AWS region: RDS, EKS, S3, and a shared VPC.
- RTO/RPO were theoretical.
- Failover docs existed, but no one had run them end-to-end.
Step 1: Read Replicas and S3 Replication#
- Added a read replica of RDS in a second region.
- Enabled S3 cross-region replication for critical buckets.
- Agreed on an RPO of 15 minutes.
Step 2: Terraform Modules for Two Regions#
Instead of cloning the entire stack, we:
- Created a region-aware module for shared resources.
- Used workspaces to differentiate primary vs secondary.
```hcl module "vpc" { source = "./modules/vpc" region = var.region primary = var.is_primary } ```
Step 3: DNS and Runbooks#
- Used Route53 failover records with health checks on a lightweight
/healthzendpoint. - Wrote an explicit runbook:
- who can declare a disaster,
- which Terraform workspaces to apply,
- how to flip DNS and confirm.
We didn’t solve every theoretical edge case, but we can now lose a region and recover in under an hour with a plan the team has actually rehearsed.
Get the DevOps Troubleshooting Cheat Sheet
Subscribe and get our free one-page reference for the errors that eat an afternoon — CrashLoopBackOff, OOMKilled, Terraform state locks, and more — plus new guides as we publish them.
What We Learned Running Weekly Game Days on Our CI/CD Pipeline
Practical game day scenarios for CI/CD: broken rollbacks, permission issues, and slow feedback loops—and how we fixed them.
Systemd Tricks We Use to Keep Services Boring
Concrete systemd unit patterns that reduced flakiness: restart policies, resource limits, and structured logs.
More from Cloud
Explore more articles in this category
Best Serverless Databases in 2026 (Compared)
A practitioner comparison of the leading serverless databases by use case, cold-start behavior, branching, pricing model, and lock-in.
Cloudflare D1: The Edge SQLite Database Guide (2026)
A practitioner's look at Cloudflare D1, the serverless SQLite database built for Workers, covering setup, read replication, limits, and fit.
Neon vs PlanetScale: Serverless SQL Compared (2026)
A practitioner comparison of Neon's serverless Postgres against PlanetScale's Vitess-backed MySQL to help you pick the right database.
You might have missed
Evergreen posts worth revisiting.