- Resilience is more than keeping services running. It’s about preserving customer experience during failures.
- Example: an e-commerce site that is reachable but cannot process payments has a degraded customer experience — resulting in lost revenue and damage to reputation. Resilience minimizes those business impacts.
- Large-scale events: regional power outages, natural disasters, or major provider incidents.
- Everyday infrastructure issues: failed disks, instance crashes, broken network circuits, or software bugs.
- Most customer-impacting outages are mundane failures; designs should accommodate both routine and extreme scenarios.
- High availability (HA): keep the service available despite individual failures.
- Fault tolerance: ensure component-level failures (disk, NIC, instance) don’t cause service interruption.
- Scalability: automatically adjust capacity to meet demand while controlling cost.
- Disaster recovery (DR): recover from large-scale or regional failures, including cross-region failover.

- Downtime or degraded service directly impacts sales and customer trust.
- Data loss (orders, invoices, payment records) can violate compliance and SLAs.
- Designing for resilience reduces business risk and operational surprises.
- Distribute workloads across Availability Zones (AZs) within a single region to survive AZ-level failures.
- Common AWS services and patterns:
- RDS Multi‑AZ for managed database failover.
- DynamoDB with replication or Global Tables for low-latency, multi-region access.
- Elastic Load Balancers (ALB/NLB) spanning multiple AZs to distribute traffic.
- Architect so that individual component failures are masked by redundancy or automated replacement.
- Examples:
- EBS snapshot and automated volume replacement strategies.
- Auto Scaling groups for fast instance replacement.
- ElastiCache Redis replication groups with automatic failover; for Memcached, use clustering and rapid node replacement.
- Route 53 health checks to remove unhealthy endpoints from DNS.
- Automatically match capacity to demand while optimizing cost.
- Techniques and services:
- Auto Scaling groups (EC2) and Application Auto Scaling for services.
- Serverless (AWS Lambda) to remove server provisioning overhead.
- S3 lifecycle rules and Intelligent-Tiering to optimize storage costs.
- Provisioned concurrency or warm start strategies to reduce Lambda cold-start latency.
- Plan for region-level failures with cross-region replication and automated failover.
- Patterns and AWS capabilities:
- Cross-region replication: S3 CRR, DynamoDB Global Tables.
- Cross-region read replicas for RDS or backup/restore pipelines.
- Route 53 DNS failover and AWS Global Accelerator for global traffic distribution.
- DR strategies: pilot-light, warm standby, active-active — chosen based on RTO/RPO and cost trade-offs.
- Route 53 supports multiple routing policies (failover, weighted, latency-based, geolocation, multivalue) for DNS-driven failover and traffic control.
- Combine local HA (multi-AZ Auto Scaling + load balancer) with Route 53 or Global Accelerator for cross-region failover and latency optimization.
- Multi‑AZ protects against localized failures within a region; multi‑region protects against region-wide outages.

- Prefer Multi‑AZ deployments for localized high availability (e.g., RDS Multi‑AZ).
- Use global replication for cross-region resilience: DynamoDB Global Tables, S3 CRR, and cross-region read replicas or backups.
- Ensure Auto Scaling groups span multiple AZs and pair them with ALB/NLB. Enable cross-zone load balancing where needed.
- Implement cache redundancy: ElastiCache Redis with replication and Multi‑AZ support. For Memcached, rely on replication and fast node replacement.
- Enable S3 versioning and replication to protect object data and simplify recovery.
- Use Route 53 and AWS Global Accelerator for advanced global routing and failover behavior.

- Regularly test DR plans and automation; verify RTO and RPO targets with runbooks and rehearsals.
- Common DR patterns and trade-offs:
Regularly test and rehearse failover and recovery. Automated, repeatable tests validate that your design meets RTO and RPO objectives and reduce surprises during real incidents.
- Higher availability and lower RTO typically increase cost and complexity.
- Choose the DR and HA pattern that matches business requirements (SLA, compliance, budget).
- Monitor and automate recovery steps to reduce human error and mean time to recovery.
Design decisions that improve resilience (e.g., active-active multi-region or synchronous replication) often increase cost and operational complexity — validate requirements and test the operational runbook before committing.
- Map your business SLAs to RTO/RPO and design accordingly.
- Start with multi-AZ for localized resilience, add cross-region replication for critical data, and automate failover tests.
- Useful references: