A single Azure region, however many availability zones you spread across, still fails as a unit in the rare regional event. Multi-region failover is the answer, but "go multi-region" hides a set of decisions that determine both your recovery time and your cloud bill. This guide walks the real choices: the topology, the data model, the routing, and the rehearsal.
Pick the second region before the topology
The first decision is geographic, not architectural. Choose a second region in the same geography so data residency and cross-region replication line up, and prefer a paired region unless your workload runs in one of the newer standalone availability-zone regions. See region pairs and availability zones explained for when the pair is chosen for you and when you have to choose it yourself. Then do the unglamorous check: confirm every service the workload touches is actually available in the second region. A missing service in the secondary is the classic reason a "multi-region" design quietly only works one way.
Active-passive vs active-active
There are two topologies, and the right one is set per tier by the RTO and RPO from your business impact analysis.
- Active-passive. The primary serves all traffic; the secondary is a warm (running, scaled down) or cold (deployed on demand) standby that takes over on failover. Cheaper, simpler, but the recovery is measured in minutes to tens of minutes and depends on how warm the standby is.
- Active-active. Both regions serve live traffic behind a global router. Near-zero RTO, read scale, and no idle standby, but you pay roughly double the footprint and inherit the hard problem of keeping two live regions consistent.
Do not gold-plate. Active-active belongs on the mission-critical tier; a reporting workload that can absorb an hour of downtime should run active-passive with a cold standby.
Data replication decides your RPO
Compute failover is the easy half. The data layer is what sets your data-loss window:
| Data service | Cross-region option | RPO characteristic |
|---|---|---|
| Storage account | GRS / GZRS | Async; seconds to minutes of possible loss |
| Azure SQL | Failover groups / active geo-replication | Async by default; low but non-zero RPO |
| Cosmos DB | Multi-region writes | Tunable; near-zero with multi-write |
| Managed disks | ASR replication | Async; crash-consistent recovery points |
Synchronous replication gives you near-zero RPO but has a distance and latency limit that usually rules it out across regions. Asynchronous is the normal cross-region choice, so an unplanned failover can lose the last few seconds of writes. Be explicit about which model each data store uses, because that number is your RPO, not an aspiration.
Health probes and routing
Front the regions with a global entry point. Azure Front Door and Traffic Manager
handle the routing: priority-based for active-passive, weighted or latency-based for active-active.
The part teams get wrong is the health probe. A probe that hits a static /health page will keep
sending traffic to a region whose database has failed, because the page still returns 200. Probe a
path that exercises a real dependency, so an unhealthy region is actually marked unhealthy.
Rehearse both directions
A failover you have never executed is a hypothesis. Run a real regional failover quarterly, measure the achieved RTO and RPO against target, and verify the failback works too. Teams that only practice failing over discover, mid-incident, that returning to the primary corrupts data or requires a re-sync nobody scripted. The July 2024 Central US outage is the case study for why this matters: workloads without a rehearsed cross-region path waited on Microsoft's recovery instead of steering around it.
Where this fits
Multi-region failover is the top rung of the resilience ladder, above zones and single-region high availability. Pair it with automatic detection so the human half is not the bottleneck: use outage alerts for early warning and track the broader picture on clouddowntime.com/data. If a Microsoft regional outage did breach its SLA while you were failing over, cloudslacredit.com covers recovering the service credit you are owed, and nextsignal.io watches your cloud spend for both outage credits and silent billing drift.