0x55aa
Back to Blog

🌍 Multi-Region: When You Actually Need It (And When You're Just Burning Money)

|
5 min read

There's a rite of passage in every growing engineering org. Someone in a planning meeting says "what if us-east-1 goes down?" and within a quarter you've got a second region, cross-region replication, a runbook nobody's tested, and a cloud bill that makes finance schedule a "quick sync." Multi-region is the architectural equivalent of buying a generator for a house that's never lost power — sometimes genuinely necessary, often just expensive anxiety management.

Let's talk about how to tell the difference.

The Seductive Lie of "Just In Case"

Multi-region sounds like pure upside on a slide deck: survive a regional outage, serve users closer to home, sleep better at night. What the slide deck doesn't show is the tax you pay on every single day you're not having an outage:

  • Cross-region data replication costs and lag
  • Doubled (or worse) infrastructure spend
  • A distributed systems problem — data consistency across regions — that most teams have never actually solved
  • Deployment pipelines that now need to coordinate two (or more) targets
  • An incident response surface that just doubled in complexity

AWS alone has had single-digit hours of regional-level unavailability across an entire region maybe once every couple of years, and most of those were partial, not total. If your last outage was actually caused by a bad deploy, a misconfigured autoscaling group, or a database running out of connections — none of which multi-region fixes — you didn't need a second region. You needed better deploy gates and connection pooling.

The Real Questions to Ask First

Before you touch Route 53 latency routing, answer these honestly:

  1. What's your actual RTO/RPO, in a number, signed off by someone who owns the P&L? "As fast as possible" isn't a requirement, it's a feeling. If leadership can't tell you "we can tolerate 4 hours of downtime and lose 15 minutes of data," you don't have a target to design against.
  2. Have you exhausted single-region resilience first? Multi-AZ databases, health-checked autoscaling, circuit breakers, graceful degradation, chaos-tested failover within a region — most orgs haven't actually finished this list before jumping to multi-region.
  3. Is the failure mode you're protecting against actually regional? A bad database migration doesn't care how many regions you have. It'll happily replicate itself to both.
  4. Do you have the on-call maturity to run it? Multi-region doubles your operational surface area. If your team is still learning to read a single region's dashboards during an incident, a second region doesn't add safety — it adds a second place to get confused in at 3am.

When It's Actually Worth It

Multi-region earns its cost in a narrow set of real scenarios:

  • Regulatory data residency — EU user data literally cannot leave the EU, full stop, no architecture debate needed.
  • Latency-sensitive global user bases — if you have real, paying users in Sydney and Frankfurt and Virginia, and every 200ms matters (trading platforms, real-time gaming, ad bidding), regional presence isn't resilience, it's the product.
  • Contractual uptime commitments that specifically require it — some enterprise SLAs name regional failover explicitly.
  • You've already maxed out single-region reliability and outages are still costing you more than the multi-region tax would.

If none of those apply, you're probably solving next year's problem with this year's budget and this year's operational maturity — a bad trade in both directions.

A Cheaper Middle Ground: Active-Passive, Not Active-Active

If you do have a real case, you don't have to start with full active-active replication across every service. A pilot-light or warm-standby approach gets you most of the resilience for a fraction of the complexity:

# Terraform: minimal warm-standby in a second region
# Primary handles all traffic; secondary is scaled to near-zero
# until a failover event promotes it.

resource "aws_db_instance" "primary" {
  identifier     = "orders-db-primary"
  region         = "us-east-1"
  instance_class = "db.r6g.xlarge"
  multi_az       = true
}

resource "aws_db_instance" "standby" {
  provider               = aws.us-west-2
  identifier              = "orders-db-standby"
  replicate_source_db     = aws_db_instance.primary.arn
  instance_class          = "db.t4g.medium" # scaled down until needed
}

The compute layer stays similarly lean — an ASG with a desired capacity of 0-1 in the standby region, promoted via a documented (and tested) runbook rather than kept running hot 24/7. You get the failover capability without paying full active-active tax on infrastructure you use zero percent of the time.

# The failover step that actually matters: promote the read replica
aws rds promote-read-replica \
  --db-instance-identifier orders-db-standby \
  --region us-west-2

That command is worthless, though, if nobody's run it in a drill. The single biggest predictor of whether multi-region saves you or just costs you is whether you've actually practiced the failover — game-day it quarterly, or it's theater.

The Actual Takeaway

Multi-region isn't a maturity badge, it's a specific answer to a specific, quantified risk. At Cubet, the projects that genuinely needed it were the ones with a compliance requirement or a global, latency-sensitive user base written into the contract — not the ones where someone got spooked by a status page. Before you double your infra bill, make sure you've actually named the failure you're buying insurance against, and that it's a regional failure, not an "everything else" failure wearing a regional costume.

Go check whether your last three incidents were actually regional. I'd bet good money they weren't.

Share:LinkedInXHacker News

Related reading

Thanks for reading!

Back to all posts