Active-Passive & Warm Standby Across Regions
One serving, one ready — and rehearsed
The disciplined cross-region DR model: one region serves (active), the other stands ready (passive — warm or pilot). A lean always-on skeleton, replication live, promote + cutover rehearsed. The pragmatic RTO sweet-spot between backup-only and active-active.
What you will learn
- Design the standby skeleton (compute + data endpoints)
- Manage the promote/cutover sequence with gates
- Size the standby to be credible (patched, warm)
Active region serves traffic; passive region holds a minimal-but-real stack: DB replica (live), compute image-ready, DNS/ALB pre-staged. On DR: promote DB replica, scale compute, flip DNS — measured RTO 10-30m with rehearsal. Cheaper than active-active; stronger than backup-restore.
What is this?
Skeleton: VPC/subnets/security groups provisioned (IaC), Route53 records + certs + global LB staged, DB read replica (cross-region) live + promote path, ASG/MIG with golden images warm-but-zero instances, queues replicated (or replay strategy), object storage via CRR. Promote mechanics: DB promote (RDS read replica → write; Aurora secondary cluster → primary; Azure SQL failover group; GCP Cloud SQL promo), LB/dns cutover (ALB in B + DNS flip via failover record or global LB backend drain), compute scale-up (IaC apply + ASG adjust). RTO math: promote (~2-5m) + scale-up (~5m) + DNS/traffic flip (~2m) + smoke (~2m) — target 15-30m. Warm maintenance: standby must be patched + current — nightly builds of the region-B stack, drill quarterly, drift detection. Failure modes: standby available-but-stale (manifests), promote script rotted, cert mismatch.
Why do you need it?
- Active-passive buys region-level DR at a small fraction of active-active's consistency+ops tax.
- A rehearsed promote path turns 'region died' into an executed drill (RTO 10-30m).
- The standby stack doubles as a staging ground — it's not pure waste.
- It's the honest middle: backup-restore is too slow for many apps, active-active too complex for most.
Mental model
A paramedic team ready at the gate vs. a fire department already stationed in each street
Warm standby vs active-active
Warm standby = paramedic: fast, capable, cheaper — arrives trained and equipped, but wasn't serving all day. Active-active = two full stations: always on, but you fund staff everywhere.
How it works
- IaC defines the standby skeleton; CI applies + validates it nightly (drift + freshness).
- Live cross-region DB replica streams data into region-B.
- Drill sequence rehearsed: promote replica, scale compute, flip traffic, smoke.
- Monitoring watches standby health (replication lag, image currency, cert expiry).
- On DR: execute the playbook with the human approve-gate → measured RTO.
Active-passive standby.
Examples
Warm-standby cutover checklist live
# On declare-DR (approved):# 1. DB promote rds promote-read-replica arn:dr-standby (~2m)# 2. Scale app asg update-min/max region-B + IaC reg for BW (~4m)# 3. Traffic flip global-lb backend drain A; DNS failover record (~2m)# 4. Smoke curl /healthz, write+read probe (~2m)# Total ≈ 10m — under RTO 20m.Short, gated, measured — the standby earns its RTO through this exact rehearsed motion.
In production
- RDS cross-region replica + nightly region-B image builds.
- Global LB (GA/Front Door) with backend drain for a clean traffic flip.
- Drill the cutover quarterly with the real playbook; keep a war-room checklist.
Best practices
- Standby must be patched & current: build it every release (CI), don't 'restore for DR'.
- Pre-create DNS, certs, LB in B — the flip should be plumbing, not solving.
- Keep replication lag visible; it's your standby's RPO reading.
- Rehearse with the actual playbook (approve + execute) on schedule.
- Document the declare-DR signal + approve-gates; humans decide, playbook executes.
Common mistakes
- Standby asset-by-asset drift: old images, certs expiring, SG rules changed.
- Promote script that wasn't tested since last infra refactor.
- Cutover flips DNS but app connects to old region DB endpoint (config pinning).
- Assuming standby compute 'scales for free' — capacity in B must be planned (quotas/limits).
Debugging tips
- Drill times slip → break the playbook into measured steps; hunt the slow one (usually scale-up or a manual approval).
- Replica lag creeping before the drill → cross-region bandwidth or WAL retention; tune replication channel.
- Flip fails because cert for B expired → add cert-expiry to the standby health dashboard.
- Smoke passes in drill but real failover 500s → the health probe path differs; smoke the same URL you monitor.
Interview checkpoint
Hands-on lab
- Rehearse the promote + flip + smoke sequence
- Measure cutover time against an RTO
- Catch drift on a 'stale standby'
Stand Up and Cut Over a Warm Standby
40 min · intermediate
Quick quiz
The standby computing essential for warm standby is:
How a warm standby keeps its RTO promise: