dr aws operations claude-curated
Disaster recovery is a discipline, not a feature. The product of DR work isn’t a backup or a replica — it’s confidence that, when something goes catastrophically wrong, the team knows what to do, has tested doing it, and can do it within a known time window (see RPO and RTO). Backups and replicas are inputs. Confidence is the output.
The full scope
DR is more than the technical mechanisms:
- Backups and replication — the data layer. See AWS Backup vs PITR and Cross-Region Replication.
- Infrastructure-as-code — the environment layer; without it, you can’t rebuild what you’ve lost.
- Runbooks — the human layer; the exact sequence of steps under pressure.
- Communication — who decides, who’s notified, who talks to customers.
- Testing — proves all of the above actually works.
A team that has snapshots but no runbook has a recovery hope, not a recovery plan. The full plan is part of the broader Business Continuity Plan.
DR drills
Drills are the single highest-leverage DR activity. Two flavours:
- Tabletop — walk through the runbook in a meeting room. “The primary region is unreachable. What’s our first step? Who calls AWS? Where’s the runbook?” Cheap, useful, surfaces gaps in days not hours of lead time.
- Full restore — actually execute the runbook against a real DR environment. Measure end-to-end time-to-recover. Compare to RTO. Iterate.
Cadence: tabletop quarterly, full-restore at least annually for Tier 1 systems. The first run will overshoot RTO by 2–5x; that’s expected. Each subsequent run improves as the runbook is tightened.
Untested DR plans usually fail
The folklore is well-founded. An untested DR plan fails for a thousand small reasons:
- The runbook references a Confluence page that’s been moved.
- The IAM role used in the runbook had its permissions tightened a year ago. (See Least Privilages.)
- The DR Terraform state references a module that no longer exists in the registry.
- The on-call engineer doesn’t have credentials for the backup account.
- The certificate used by the failover endpoint has expired.
- The DNS TTLs are 24 hours.
- The recovery depends on a Lambda that depends on a layer that lives only in the failed region.
None of these show up in a diagram. All of them show up in the first drill. An RTO estimate without a drill is a guess; the only evidence that a system meets its RTO is that it has met its RTO recently.
Documentation
The minimum useful DR documentation set:
- Runbook — step-by-step recovery procedure. Specific. “Run
terraform applyfrom thedr/directory” is too vague — which Terraform, where’s the state, what variables. Assume the operator is sleep-deprived and unfamiliar. - Decision flowchart — when to declare an incident, when to invoke DR, who has authority to do so. Avoids the “is this bad enough?” debate at 03:00.
- Contact tree — primary on-call, secondary, engineering manager, executive sponsor, AWS TAM, key customers. Phone numbers, not Slack handles, because Slack might be the thing that’s down.
- Architecture diagram — current, dated, version-controlled. Not a beautifully rendered out-of-date PDF.
- Recovery dependency map — what depends on what. Identifies the minimum viable recovery (auth + database + main app) versus the full recovery (everything else).
Store the documentation somewhere that doesn’t depend on the systems being recovered. A wiki hosted in the failed region is not a wiki during the incident.
Why DR makes you a better Cloud Engineer
Designing for DR forces architectural rigor in ways nothing else does:
- Statelessness — services that hold local state can’t be rebuilt from IaC. DR pressure pushes state into managed stores (RDS, DynamoDB, S3) where it’s replicated and backed up centrally.
- Idempotency — recovery often involves replaying events, retrying operations, partial completion. Non-idempotent code becomes obvious during a drill.
- Infrastructure-as-code — rebuilding manually is too slow. Terraform/CloudFormation isn’t optional for any system that has an RTO. See also GitOps.
- Coupling and dependencies — DR exposes hidden coupling. “We can’t restore the API without the auth service, but we can’t deploy auth without the secrets in this other region.” These are bugs in the architecture; recovery testing finds them.
- Observability — you can’t recover what you can’t see. DR teams are also observability teams: dashboards for replication lag, backup age, failover-readiness; alarms on the things that would silently invalidate the DR plan (CloudWatch / CloudWatch Alarms SLO Driven / SLO).
- Compliance underpinning — SOC 2, ISO 27001, HIPAA, PCI all require documented DR with regular testing. The work is the same; the audit is the byproduct.
The skills that DR demands — IaC, observability, immutability, runbook discipline, blast-radius thinking — are the same skills that distinguish a senior cloud engineer from a junior one. DR is therefore one of the best growth vectors available, even outside the formal reliability mandate.
Common pitfalls
- Testing recovery to a dev environment instead of greenfield. The dev environment has been touched a thousand times; it carries assumptions that the real DR target won’t have. Always recover into a clean account or namespace.
- Depending on resources that wouldn’t exist post-disaster. Recovery script reads from a parameter in the failed region. CI/CD that runs the recovery lives in the failed region. The runbook PDF is in the failed region’s S3 bucket. Audit dependencies; assume the failed region is gone.
- Depending on third-party services that have their own DR boundaries. Your DR plan is bounded by the worst RTO of any third-party dependency you can’t replace. Identify them.
- Confusing high availability with disaster recovery. Multi-AZ is HA; multi-region is DR. They protect against different failures and cost different amounts. Don’t claim DR coverage for an HA-only design. See Multi-Failure Defence Patterns.
- Recovering the technology, not the business. A successful restore that finishes after the company has lost its largest customer is a technical success and a business failure. RTO must be set by impact, not engineering convenience.
- Skipping post-drill writeups. The drill’s value compounds across iterations only if each iteration produces a documented list of what failed and what changed.
- Treating DR as a one-time project. Architecture changes, dependencies drift, retention policies expire. A DR plan that was correct two years ago is probably wrong today.