← All posts

Multi-Region Azure Web Apps with Front Door: A Practical DR Drill

Built a dual-region Flask deployment (Sweden + Korea) behind Azure Front Door, then ran three failover drills. Here's what RTO actually looked like.

I wanted to validate — not assume — what a real DR failover looks like on Azure Front Door Standard. So I built the smallest possible two-region setup on top of my portfolio site and stopped the primary on purpose. Three times.

The setup

  • Sweden Central — App Service Premium0V3 (primary).
  • Korea Central — App Service B1 (DR; idle 99% of the time, so cheap is fine).
  • Front Door Standard — origin group with priority 1 = Sweden, priority 2 = Korea, weights equal.
  • Health probeGET /api/health, HTTPS, every 100 s (Standard SKU floor).

The drills

  1. Manual — set Sweden weight to 0. New requests served from Korea within seconds.
  2. Autoaz webapp stop on Sweden. Front Door took 2-10 minutes to fully cut over. The reasons: 100 s probe × 3 consecutive failures = ~5 min detection floor, plus edge POP propagation, plus already-open keep-alive connections.
  3. Fail-back — restarted Sweden. Front Door restored P1 routing in 3-5 minutes.

The lesson

RTO is not zero on Front Door Standard. It has a probe-cadence floor of roughly 5 minutes. If you need sub-minute failover, you pay for Premium (30 s probes). Either choice is valid — just don't discover the floor during a real outage.

Diagram of the steady-state setup:

User → DNS (CNAME) → Front Door anycast → Origin group
                                                   → Sweden (P1)
                                                   → Korea  (P2)
Chat with my AI