Skip to content
iD
InfoDive Labs
Back to blog
CloudDisaster RecoveryHigh Availability

Disaster Recovery in the Cloud: Building Resilient Infrastructure

Design cloud disaster recovery strategies across the four DR tiers - backup-restore, pilot light, warm standby, and multi-site active - with RTO and RPO guidance.

March 29, 20248 min read

Disaster Recovery in the Cloud: Building Resilient Infrastructure

Disaster recovery is the architectural insurance policy that organizations hope they never need to use. When they do need it, the gap between a well-tested DR strategy and an untested one is the difference between a brief disruption and a business-ending outage. The cloud makes sophisticated DR strategies accessible to organizations of every size, but only if you design and test them deliberately.

This guide covers the four tiers of cloud disaster recovery, how to choose the right tier for each workload, and the operational practices that make DR strategies actually work when disaster strikes.

Understanding RTO and RPO

Two metrics drive every disaster recovery decision:

Recovery Time Objective (RTO) is the maximum acceptable time between a disaster and full service restoration. An RTO of 4 hours means your business can tolerate being offline for up to 4 hours. An RTO of 15 minutes means you need near-instant failover.

Recovery Point Objective (RPO) is the maximum acceptable amount of data loss measured in time. An RPO of 1 hour means you can afford to lose up to 1 hour of data. An RPO of zero means no data loss is acceptable, requiring synchronous replication.

These metrics are business decisions, not technical ones. The CFO, product leadership, and engineering must align on acceptable RTO and RPO for each workload because tighter objectives cost exponentially more. A system with 4-hour RTO and 24-hour RPO costs a fraction of a system with 15-minute RTO and zero RPO.

Mapping workloads to tiers:

Workload TypeTypical RTOTypical RPODR Tier
Static marketing site24 hours24 hoursBackup and Restore
Internal tools4-8 hours1-4 hoursPilot Light
E-commerce platform1-2 hours15 minutesWarm Standby
Payment processing< 15 minutesNear-zeroMulti-Site Active
Real-time trading< 1 minuteZeroMulti-Site Active

Tier 1: Backup and Restore

The simplest and cheapest DR strategy. You maintain regular backups of your data and infrastructure configuration. In a disaster, you provision new infrastructure and restore from backups.

Implementation:

  • Automated daily backups of databases (RDS snapshots, DynamoDB backups) to a secondary region using cross-region replication.
  • Infrastructure as Code (Terraform, CloudFormation) stored in Git, enabling complete environment reconstruction from code.
  • AMI copies or container image replication to the DR region.
  • S3 cross-region replication for object storage data.

Recovery process:

  1. Detect the disaster and make the decision to failover.
  2. Run Terraform to provision infrastructure in the DR region (VPC, instances, databases, load balancers).
  3. Restore databases from the most recent cross-region backup.
  4. Deploy applications using your CI/CD pipeline targeting the DR region.
  5. Update DNS to point to the new environment.

Expected RTO: 4-24 hours depending on infrastructure complexity and data volume. Expected RPO: Depends on backup frequency - typically 1-24 hours. Cost: Minimal ongoing cost. You pay for backup storage and data transfer but not for idle compute in the DR region.

Best for: Development environments, internal tools, content management systems, and workloads where multi-hour downtime is acceptable.

Tier 2: Pilot Light

A minimal version of your production environment runs continuously in the DR region. Core data infrastructure (databases, message queues) replicates in real-time, but compute resources (application servers, worker nodes) are not running. In a disaster, you scale up the compute layer.

Implementation:

  • RDS read replicas or Aurora Global Database in the DR region with continuous replication.
  • Core networking (VPC, subnets, security groups) pre-provisioned in the DR region.
  • Load balancers and Auto Scaling Groups configured but scaled to zero or minimum capacity.
  • DNS failover configured with Route 53 health checks.

Recovery process:

  1. Health check failure triggers alert.
  2. Promote the RDS read replica to a standalone primary (or promote the Aurora secondary cluster).
  3. Scale up Auto Scaling Groups to production capacity.
  4. Deploy the latest application version if not already present.
  5. Route 53 health checks automatically update DNS once the DR environment is healthy.

Expected RTO: 30 minutes to 2 hours. Expected RPO: Minutes (limited by replication lag). Cost: Moderate. You pay for continuously running database replicas and minimal networking infrastructure. Compute costs only start during a disaster.

Best for: Business applications, SaaS platforms, and e-commerce systems where one to two hours of downtime is acceptable but data loss must be minimal.

Tier 3: Warm Standby

A scaled-down but fully functional copy of your production environment runs continuously in the DR region. All components - compute, databases, load balancers - are running at reduced capacity. Failover involves scaling up to production capacity and switching traffic.

Implementation:

  • Aurora Global Database or DynamoDB Global Tables with synchronous or near-synchronous replication.
  • Application servers running at 20-30% of production capacity behind a load balancer.
  • All supporting services (caches, message queues, background workers) running at reduced capacity.
  • Route 53 weighted routing with health checks, ready to shift 100% of traffic to DR.

Recovery process:

  1. Health check failure detected on primary region.
  2. Scale up compute in the DR region to full production capacity using Auto Scaling.
  3. Promote the database in the DR region to primary if using read replicas.
  4. Route 53 automatically shifts traffic based on health check status, or manually update weights.

Expected RTO: 15-30 minutes. Expected RPO: Near-zero (limited by replication lag, typically seconds). Cost: Significant. You are running a full environment at reduced scale continuously. Typically 30-50% of your production compute cost plus full database replication cost.

Best for: Revenue-generating applications, customer-facing platforms, and systems where downtime directly impacts revenue and customer trust.

Tier 4: Multi-Site Active-Active

Both regions serve production traffic simultaneously. There is no failover process - if one region fails, the other absorbs all traffic automatically. This is the most resilient and most complex DR strategy.

Implementation:

  • Application deployed at full production capacity in both regions.
  • DynamoDB Global Tables or CockroachDB for multi-region, multi-writer database access.
  • Global load balancing (Route 53 latency-based routing, CloudFront, or Global Accelerator) distributes traffic across regions.
  • Conflict resolution strategy for concurrent writes to the same data in different regions.

Architectural challenges:

Data consistency is the hardest problem in active-active. If a user in US-East updates their profile while the same user's session in EU-West reads their profile, which version is correct? You must choose between strong consistency (higher latency, routing constraints) and eventual consistency (lower latency, potential stale reads).

Most active-active architectures partition data by geography. US users' data lives primarily in US-East, EU users' data in EU-West. Cross-region reads use replication, and cross-region writes are rare. This simplifies consistency but requires careful routing logic.

Expected RTO: Near-zero (automatic, no failover process). Expected RPO: Near-zero (synchronous or near-synchronous replication). Cost: High. You are running full production capacity in two or more regions. Typically 80-100% cost premium over single-region deployment.

Best for: Financial services, healthcare platforms, global SaaS products, and any system where minutes of downtime represent unacceptable business impact.

Testing Your DR Strategy

An untested DR strategy is not a strategy - it is a hope. Regular testing is what separates organizations that recover from disasters from those that do not.

Types of DR tests:

  • Tabletop exercise. Walk through the recovery process verbally with your team. Identify gaps in runbooks, unclear ownership, and missing automation. Do this quarterly.
  • Component recovery test. Restore a single database from backup, failover a single service, or promote a read replica. Verify that individual recovery steps work. Do this monthly.
  • Full failover test. Execute the complete DR procedure including DNS failover, database promotion, and application scaling. Route real traffic to the DR environment for a defined period. Do this at least twice a year.
  • Chaos engineering. Inject failures in production (terminate instances, disrupt network connectivity, corrupt data) and verify that your systems recover automatically. Tools like AWS Fault Injection Simulator make this accessible.

Document everything in runbooks. DR runbooks should be step-by-step procedures that anyone on the team can follow under pressure. Include commands to run, expected output at each step, decision points, and escalation contacts. Store runbooks alongside your infrastructure code in Git.

Automate failover where possible. Manual failover procedures fail under pressure. People forget steps, make typos, and panic. Automate as much of the recovery process as possible and reduce the manual steps to a single "initiate failover" command or button.

Need help building this?

Our team specializes in turning these ideas into production systems. Let's talk.