Skip to content

Blog

Five-Nines Uptime Architecture: What Single-Region, Multi-Region, and Multi-Cloud Designs Can Deliver

By Hakan Karaduman14 min read
5 Nine Uptime Architecture

99.999% availability allows about 5 minutes 15 seconds of downtime per year, or about 26 seconds per month. That budget includes every failed deploy, certificate expiry, DNS misconfiguration, and provider incident in the request path. One regional outage lasting an hour consumes more than 11 years of five-nines budget.

This guide explains which architecture tiers can reach that number, which cannot, and why. It covers the published SLAs behind each tier, the difference between an SLA and the availability your users measure, and the October 20, 2025 AWS us-east-1 outage as a worked example. If you run in a single region on a single cloud today, it also helps you decide whether you need to go further.

Downtime budgets by availability target

Each additional nine cuts the allowable downtime by a factor of ten. The math uses a 365-day year and an average 30.4-day month.

AvailabilityNinesDowntime per yearDowntime per month
99.9%Three8 hours 45 minutes 36 secondsAbout 43 minutes 50 seconds
99.95%Three and a half4 hours 22 minutes 48 secondsAbout 21 minutes 55 seconds
99.99%Four52 minutes 34 secondsAbout 4 minutes 23 seconds
99.999%Five5 minutes 15 secondsAbout 26 seconds

The practical consequence: at five nines, you cannot afford a recovery process. A failover that takes five minutes to detect, decide, and execute spends the entire year’s budget in one event. Five-nines systems have to keep serving while a failed location is removed from traffic.

Serial dependencies compound the problem. If a request depends on two services with 99.99% availability each, the combined ceiling is about 99.98%. Add a 99.9% storage dependency and the ceiling drops to about 99.88%. Redundancy only raises the ceiling when the redundant paths fail independently.

Three-tier architecture comparison

Multi-AZ single-region designs reach three to four nines, same-provider multi-region designs reach four nines, and cross-provider multi-region designs are the tier that can reach five nines. The table below follows the structure of the AWS Disaster Recovery of Workloads on AWS whitepaper, which organizes DR options by recovery time, recovery point, and replication approach. RTO and RPO ranges extend the tiers from Cloud Disaster Recovery: RTO/RPO Targets and Best Practices.

Architecture tierAchievable uptime rangeTypical RTOTypical RPOData replication latencyShared dependencies remainingWhat breaks at each tier
(a) Multi-AZ, single region, single cloud99.9% to 99.99% (three to four nines). Component SLAs: EC2 region-level 99.99%, S3 Standard 99.9%, GCP Compute Engine multi-zone 99.99%AZ loss: seconds to minutes through load balancer health checks. Region loss: hours, bounded by restoring from cross-region backups (batch-tier range of 2 to 4 hours if a pilot light exists)AZ loss: near zero within the region. Region loss: time since the last cross-region backup, up to 24 hours for batch-tier dataIntra-region: much less than 100 milliseconds (Amazon Aurora, per the AWS DR whitepaper)Regional DNS endpoints, the provider’s IAM/STS control plane, the region’s DynamoDB-backed control-plane services, regional load balancer and Auto Scaling control planesAny region-wide service failure takes down every AZ at once. A single regional incident longer than 52 minutes breaks even the four-nines annual budget
(b) Same-provider multi-region99.99% (four nines). DynamoDB Global Tables publishes a conditional 99.999% SLA, but only for that database serviceWarm standby: minutes. Aurora Global Database promotion: under one minute. Active-active stateless tiers: seconds to minutes. Standard-tier targets: 15 to 60 minutesCross-region async replication: near zero for active-active. Standard-tier targets: 5 to 15 minutes. Critical-tier targets: under 30 secondsCross-region: typically under one second (Aurora Global Database only). DynamoDB Global Tables replication lag is not quantified in the AWS DR whitepaperA single provider’s IAM/STS control plane, a single provider’s DynamoDB-backed control plane in its anchor region, the provider’s DNS control plane (for example Route 53 record changes), account and billing systems, shared software releases across regionsFailover automation that calls control-plane APIs (Auto Scaling, weighted DNS changes, credential issuance) can stall during a provider-level incident. A defect shipped to all regions fails them together
(c) Cross-provider multi-region99.999% (five nines) as an architectural outcome, backed by independent failure domainsStateless tiers: traffic shifts on health failure, near zero in active-active, critical-tier target under 5 minutes. Stateful tiers: set by database promotion logicCritical-tier target: under 30 seconds. Actual RPO depends on the cross-cloud replication layer and consistency modeNo single published figure. Set by the replication layer you choose (CockroachDB, CDC pipelines, or application-level replication) across provider networks. Measure it in your environmentExternal DNS provider or registrar, CDN, identity federation (external IdP), internet transit, shared SaaS platforms, software supply-chain componentsCross-cloud stateful consistency, data egress cost, and any external dependency that both providers share. Provider-specific outages no longer take down the whole service

Tier (a): Multi-AZ, single region, single cloud

This tier handles hardware and data center failures well and cannot absorb a regional service failure. AWS’s EC2 region-level SLA of 99.99% requires instances running across at least two AZs, and GCP’s multi-zone Compute Engine SLA is also 99.99%. Those are four-nines commitments at best. Once you add S3 Standard at 99.9% or other regional dependencies in series, the realistic ceiling sits between three and four nines.

The AWS DR whitepaper states that for workloads where disaster means losing one physical data center, backup and restore may be enough. If your definition of disaster includes losing a region, the whitepaper points you toward pilot light, warm standby, or multi-site active/active in another region.

Tier (b): Same-provider multi-region

Adding a second region from the same provider protects against regional infrastructure loss but keeps the provider’s global services as a shared point of failure. The AWS DR whitepaper itself warns that control planes “typically have higher availability design goals” than data planes only in reverse: data planes are more available, so failover should use only data plane operations. Auto Scaling, weighted routing changes, and Global Accelerator traffic dial adjustments are all control plane operations, per the whitepaper.

Aurora Global Database shows what this tier does well: cross-region replication with typical latency under one second, replication to up to five secondary regions, and promotion to read/write in under one minute during a full regional outage. Those numbers are Aurora-specific and do not transfer to other engines.

Tier (c): Cross-provider multi-region

Running workloads on two or more independent providers removes the provider’s identity, DNS, and control-plane services from the list of shared dependencies. This is the only tier where no single provider incident can exhaust the five-nines budget on its own. The remaining shared dependencies are external: DNS registrars, CDNs, identity federation, internet transit, SaaS platforms, and the software supply chain. Each needs its own resilience design.

The cost is stateful complexity. AWS Aurora and Azure SQL do not replicate natively across providers. Cross-cloud databases need an explicit replication layer, and its lag, consistency model, and promotion logic determine your real RPO.

SLA vs. measured availability

An SLA defines when a provider owes you service credits. Measured availability is the share of time your users could complete requests. The two diverge because SLAs cover one service at a time with conditions attached, while users experience every dependency in the request path combined.

Published per-service SLAs

ServiceConfigurationPublished SLASource
Amazon DynamoDBStandard (single-region tables)99.99% monthly uptimeAWS DynamoDB SLA, updated May 14, 2025
Amazon DynamoDBGlobal Tables99.999% monthly uptime, conditionalAWS DynamoDB SLA
Amazon EC2Region-level (2 or more AZs)99.99%AWS Compute SLA, updated May 25, 2022
Amazon EC2Single instance99.5%AWS Compute SLA
Amazon S3S3 Standard and listed classes99.9% monthly uptimeAWS S3 SLA, updated November 28, 2023
Google Compute EngineMulti-zone instances99.99%Google Cloud Compute Engine SLA
Google Compute EngineSingle instance, Memory Optimized99.95%Google Cloud Compute Engine SLA
Google Compute EngineSingle instance, other families99.9%Google Cloud Compute Engine SLA
Google Cloud Load BalancingStandard99.99%Google Cloud Compute Engine SLA

Azure SLA figures for virtual machines, Cosmos DB, and Blob Storage were not confirmed in our research for this post. Check Microsoft’s published SLA pages directly before comparing Azure services against the figures above. We also could not confirm a GCP database SLA at the five-nines tier.

Two patterns stand out. First, none of the core compute or storage primitives (EC2, S3, Compute Engine) publish a five-nines commitment. Second, the one five-nines SLA in the table, DynamoDB Global Tables, applies only when every table in the region is part of Global Tables for the full billing cycle and the customer makes reasonable attempts to fail over during a single-region issue. It covers that database, not your application.

SLA credits do not cover the outage

SLA credits reimburse a percentage of the monthly charge for the affected service. They do not compensate for lost revenue, SLA penalties you owe your own customers, engineering hours, or reputational damage. A service that costs a few thousand dollars a month can sit in the path of revenue many orders of magnitude larger.

The gap is growing. Oxford Economics and Splunk’s The Hidden Costs of Downtime research put the annual cost of downtime for Global 2000 companies at $400 billion in 2024, equal to 9% of profits. The 2026 edition raised that figure to $600 billion, a 50% increase in two years. Both editions surveyed 2,000 Global 2000 executives.

If your availability target exceeds what your providers contractually commit to, the difference is risk you carry.

Extending the RTO/RPO tiers to availability targets

The cloud disaster recovery guide defines three workload tiers by RTO and RPO. Mapping those targets against downtime budgets shows which architecture each tier requires.

DR workload tierTarget RTOTarget RPOAvailability target it supportsArchitecture tier required
Critical (payments, auth, customer APIs)Under 5 minutesUnder 30 seconds99.999%, if the RTO applies to routing around a failure with no user-visible outage(c) Cross-provider multi-region, active-active
Standard (internal tools, reporting, non-transactional APIs)15 to 60 minutes5 to 15 minutes99.99% with at most one incident per year at the low end of the RTO range(b) Same-provider multi-region, warm standby
Batch (data processing, background jobs)2 to 4 hoursUp to 24 hours99.9% or lower(a) Multi-AZ single region with cross-region backups or pilot light

One detail matters here. A 5-minute RTO is compatible with five nines only when failover is a traffic-routing event that users do not see. If every regional failure causes 5 minutes of visible downtime, a single incident per year breaches five nines.

Control Plane’s five-nines SLA

Control Plane offers a 99.999% SLA, backed by a minimum of two replicas in two locations. Those locations can sit on different cloud providers, which places the replicas in separate provider failure domains. The SLA reflects the architecture-level outcome in tier (c) instead of a single-service commitment inherited from one provider.

The October 20, 2025 AWS us-east-1 outage

The October 20, 2025 us-east-1 incident showed how a failure inside one provider’s internal dependency can cascade across many services in a region, which is why single-provider architectures cap out below five nines.

According to AWS’s public post-event summary, a latent defect in DynamoDB’s automated DNS management system left the regional DynamoDB endpoint in us-east-1 with an empty DNS record. Clients, including other AWS services, could not resolve the endpoint. Services that depend on DynamoDB internally failed in turn. EC2 instance launches, Lambda, and other services were impaired, and some impairments persisted after DynamoDB’s DNS record was restored. The disruption lasted multiple hours.

What the incident means for each architecture tier:

  • Tier (a): Multi-AZ deployment did not help. The failure was regional, so every AZ in us-east-1 lost the same dependency at the same time.
  • Tier (b): Workloads in other AWS regions were insulated from the regional DynamoDB failure only if nothing in their request path or failover automation depended on us-east-1 endpoints or on control-plane actions that were impaired. Any recovery step that needed to launch EC2 capacity in the affected region would have stalled.
  • Tier (c): Workloads with healthy replicas on another provider could route traffic away from the affected locations. The AWS incident removed capacity from the pool without removing the service.

The math makes the point. At multiple hours, the incident represented decades of five-nines budget for any workload that depended entirely on us-east-1. This follows an earlier pattern: in December 2021, a us-east-1 degradation impaired STS and control-plane APIs that recovery automation relied on, as covered in the cloud disaster recovery guide.

Do you need to go multi-cloud?

Most workloads do not need five nines, and multi-cloud is headroom you add when a workload’s cost of downtime justifies it. Start by tiering your workloads, then match each tier to the cheapest architecture that meets its target.

A single region on a single cloud is a reasonable choice when:

  • The workload is batch or internal, with RTO measured in hours.
  • Your users can tolerate roughly 8 to 52 minutes of downtime per year.
  • Regulatory or data-residency rules keep data in one region, and you accept the regional risk.

Consider adding a second region or a second provider when:

  • A single hour of downtime costs more than a year of running redundant capacity.
  • Your contractual SLAs to customers exceed your providers’ SLAs to you.
  • Your failover runbook depends on the same provider’s identity, DNS, or control-plane APIs as your primary environment.

The useful property of a platform like Control Plane is that the decision is reversible. You can run in one location today and add a location on another provider later without rearchitecting your workloads.

How Control Plane supports five-nines architectures

Control Plane is a cloud virtualization platform that runs workloads across AWS, GCP, Azure, Oracle, and private infrastructure through one API.

The capabilities that matter for tier (c):

  • Global Virtual Clouds (GVCs): A GVC groups locations across providers into one deployment scope. Add a location on a second provider and workloads deploy there automatically.
  • Health-aware geo-routing: Readiness probes remove unhealthy replicas from the routing pool. Location-level health checks shift traffic to the next-nearest healthy location. The routingTier setting configures active-active or primary/failover topologies.
  • Universal Cloud Identity: Workloads assume native identities on AWS, GCP, and Azure at runtime to reach services such as S3, RDS, BigQuery, and Cosmos DB, with no long-lived credentials stored in images or configuration.
  • Workload types: Control Plane runs serverless, standard, stateful, cron, and VM workloads, all as containers. It also offers managed Kubernetes and bring-your-own-Kubernetes (BYOK).
  • Isolation: Each workload runs with Kata Containers on per-workload Firecracker microVMs.
  • Cost: Dynamic scaling, scale-to-zero, and Capacity AI resource packing deliver 30-50% cost savings, which offsets part of the cost of running redundant capacity across providers.
  • Compliance: Control Plane holds PCI DSS Level 1 and SOC 2 Type II, and supports HIPAA and GDPR requirements.

Control Plane complements Terraform and Pulumi. Dedicated providers exist for both, so teams can declare GVCs, workloads, and routing in the same pipelines they already use. Explore the product overview or watch the product demos to see cross-provider failover in practice.

Frequently asked questions

What does five-nines uptime mean in practice?

Five-nines uptime means a service is available 99.999% of the time. That allows about 5 minutes 15 seconds of downtime per year, or about 26 seconds per month. A single incident that takes five minutes to detect and fail over consumes almost the entire annual budget, so five-nines systems need enough redundancy to keep serving while a failed location is removed from traffic.

Can a single cloud deliver five-nines?

A single cloud rarely delivers five nines for a full application. Core primitive SLAs top out below that level: Amazon EC2 region-level is 99.99%, Amazon S3 Standard is 99.9%, and Google Compute Engine multi-zone instances are 99.99%. DynamoDB Global Tables publishes a conditional 99.999% SLA, but it covers only that database service. Same-provider multi-region designs still share the provider’s identity, DNS, and control-plane services, which is why they typically cap at four nines. Reaching five nines usually requires replicas running on at least two independent providers.

What is the difference between SLA and measured availability?

An SLA is a contractual commitment that defines when a provider owes service credits. Measured availability is the percentage of time your users could successfully use your application, observed from your own monitoring. SLAs cover individual services with conditions attached, while measured availability reflects every dependency in the request path combined. SLA credits reimburse a fraction of the monthly bill for the affected service and do not compensate for lost revenue or recovery costs.