災害復旧
大規模障害や災害からシステムを復旧するための計画と仕組み
運用可用性
災害復旧とは
災害復旧 (Disaster Recovery, DR) は、大規模障害 (リージョン障害、データセンター障害) からシステムを復旧するための計画と仕組みである。RPO (目標復旧時点) と RTO (目標復旧時間) で要件を定義する。詳細は「RPO/RTO」を参照。
DR 戦略
| 戦略 | RTO | コスト | 説明 |
|---|---|---|---|
| Backup & Restore | 数時間 | 最低 | バックアップから復元 |
| Pilot Light | 数十分 | 低 | 最小限のリソースを常時稼働 |
| Warm Standby | 数分 | 中 | 縮小版のシステムを常時稼働 |
| Multi-Site Active/Active | 秒〜分 | 最高 | 複数リージョンで同時稼働 |
AWS での DR 構成
プライマリ (ap-northeast-1) セカンダリ (us-east-1)
┌──────────────────┐ ┌──────────────────┐
│ CloudFront │ │ CloudFront │
│ API Gateway │ │ API Gateway │
│ Lambda │ │ Lambda │
│ DynamoDB │ ──────→ │ DynamoDB │
│ (Global Tables) │ レプリ │ (Global Tables) │
│ S3 │ ──────→ │ S3 │
│ (Cross-Region) │ ケーション│ (Cross-Region) │
└──────────────────┘ └──────────────────┘
サーバーレスの DR 優位性
| 観点 | サーバーレス | サーバーベース |
|---|---|---|
| インフラの復旧 | 不要 (マネージド) | EC2/RDS の起動が必要 |
| データの復旧 | DynamoDB Global Tables | RDS のリードレプリカ昇格 |
| コスト (待機時) | ほぼゼロ | 常時稼働コスト |
| 切り替え | Route 53 のフェイルオーバー | DNS + インフラ起動 |
DR テスト
| テスト | 頻度 |
|---|---|
| バックアップの復元テスト | 月 1 回 |
| フェイルオーバーテスト | 四半期 1 回 |
| 全体 DR 訓練 | 年 1 回 |
災害復旧の理解を深めるには関連書籍が参考になる。