バックアップ・DR・可用性設計の判断基準(RTO/RPO・AWS Backup・RDS/Aurora・Auto Scaling)
DR は RTO/RPO を満たす最安の戦略(Backup & Restore → Pilot Light → Warm Standby → Multi-site)を選ぶ。消せないバックアップは AWS Backup の Vault Lock、消せない S3 オブジェクトはオブジェクトロック。RDS はマルチ AZ(可用性)とリードレプリカ(読み取り分散)を混同しない。
調査時点: 2026-07。
DR(Disaster Recovery)は、災害や重大障害からシステムを復旧するための備え。RTO(Recovery Time Objective)は復旧までに許容する時間、RPO(Recovery Point Objective)はどの時点までのデータを復元できればよいかの目標を指す。
RTO / RPO と 4 つの DR 戦略
コスト安・復旧遅い順。要件を満たす中で最も安いものを選ぶ。
| 戦略 | 構成 | RTO / RPO の目安 |
|---|---|---|
| Backup and Restore | データだけを S3 や別リージョンにバックアップし、被災時に CloudFormation でインフラを一から構築 | 数時間〜24 時間 |
| Pilot Light | DB だけを待機リージョンに常時同期(Aurora Global Database など)。アプリサーバーは AMI / 起動テンプレートで準備し、被災時に Auto Scaling で起動 | 数十分 |
| Warm Standby | 待機リージョンでもアプリと LB を最小スペックで常時稼働。被災時にスケールアウト | 数分 |
| Multi-site(Active/Active) | 複数リージョンで本番同等をフル稼働。Route 53 で負荷分散 | ほぼゼロ |
Active/Passive の切り替えは Route 53 のフェイルオーバールーティング + ヘルスチェック。詳細は VPC ネットワークと配信。
消せないバックアップ、消せないオブジェクト
対象が何かで 2 本のレールに分かれる。
| 対象 | 構成 |
|---|---|
| EBS スナップショット / RDS のバックアップを、コードなしで他リージョンにコピーし、ルートユーザーでも消せなくしたい | AWS Backup のバックアッププラン + Backup Vault Lock(コンプライアンスモード) |
| CloudTrail ログや S3 上のファイルを長期保管し、消せなくしたい | S3 オブジェクトロック(コンプライアンスモード) + ライフサイクルルールで Glacier Deep Archive へ移行 |
オブジェクトロックで削除を禁止したオブジェクトも、ライフサイクルによるストレージクラスの移行は可能(保存場所のランクを下げるだけで破壊ではない)。一方、保持期間内はライフサイクルの削除ルールもブロックされる。
EBS のバックアップを S3 ライフサイクルで扱おうとすると、S3 へ移すカスタムスクリプトが要るので、対象が EBS / RDS なら AWS Backup 側を選ぶ。
その他の保護手段: RDS のポイントインタイム復元(PITR)、S3 / FSx のバージョニング(誤削除・意図しない変更への対策)。
Glacier の取り出し層と Vault Lock
| オプション | 取り出し時間 | 特徴 |
|---|---|---|
| Expedited | 1〜5 分 | 追加コスト。Deep Archive では使えない |
| Standard | 3〜5 時間(Deep Archive は 12 時間以内) | デフォルト |
| Bulk | 5〜12 時間(Deep Archive は 48 時間以内) | 最安。テラ〜ペタバイト級の復元 |
Glacier Vault Lock は一度ロックするとルートユーザーでもポリシー変更・削除ができない WORM 状態になる。通常の Vault Access Policy は IAM 権限でいつでも変更できる。
RDS / Aurora の構成
マルチ AZ とリードレプリカ
| 比較 | マルチ AZ 配置 | リードレプリカ |
|---|---|---|
| 目的 | 高可用性・DR | 読み取りの負荷分散・性能 |
| 複製 | 同期 | 非同期(遅延あり) |
| エンドポイント | 単一(フェイルオーバー時も変更不要) | レプリカごとに固有 |
| 昇格 | 自動 | 手動のみ |
| 合図 | 「高可用性」「自動フェイルオーバー」 | 「読み取り遅延の解消」「分析クエリの分離」 |
マルチ AZ DB インスタンスとマルチ AZ DB クラスター
| 構成 | 中身 | 読み取り |
|---|---|---|
| マルチ AZ DB インスタンス | プライマリ 1 + スタンバイ 1 | スタンバイは読めない(フェイルオーバー専用) |
| マルチ AZ DB クラスター | プライマリ 1 + リーダー 2(別 AZ) | リーダー 2 台で読み取り分散しつつ高速フェイルオーバー |
PostgreSQL 互換を保ったまま可用性と読み取り性能の両方が要るなら、RDS のマルチ AZ DB クラスターか、Aurora PostgreSQL + リードレプリカ(最大 15 台。レプリカ自体がフェイルオーバー先になる)。
Aurora の補足
- Aurora Serverless v2: 容量(ACU)をミリ秒単位で増減する。週に数回いつ来るか分からないスパイクに、未使用時のコストを抑えつつ即応する用途。マルチ AZ クラスターにはインスタンススペックを数分で動的に変える機能はない
- Aurora Global Database の切り替え: 両リージョンが健全なら「計画されたフェイルオーバー(Switchover)」で RPO=0。プライマリが崩壊した災害時は「計画外のフェイルオーバー(Failover / AllowDataLoss)」で強制昇格し、復旧後に元のリージョンがセカンダリに戻る
- RDB をシャーディング(分割)したいときは Aurora PostgreSQL Limitless Database。マルチ AZ クラスターは複製であって分割ではない
「クラスター」という語の意味の違い
| サービス | クラスターの意味 |
|---|---|
| RDS / Aurora | 同じデータを複製・同期する DB インスタンスの集まり(2 階層: クラスター > インスタンス) |
| ElastiCache | システム全体の器。クラスター > シャード(データを分割)> ノード(シャード内で複製) |
| ECS / EKS | コンテナを動かす計算資源(ノード)の束 |
フェイルオーバー後に特定アプリだけ繋がらない
JVM などアプリ側の DNS キャッシュ TTL が原因。TTL を 30 秒以下にする。30 秒間はメモリのキャッシュを使い、DNS 問い合わせは 30 秒に 1 回なので性能影響は実質ない。AWS の Java SDK ガイドは 5 秒、または networkaddress.cache.ttl=0 を推奨している。コネクションプール(HikariCP など)がある間は DNS を引かず、障害で接続を作り直す瞬間だけ効く。
EC2 / Auto Scaling の可用性
Auto Scaling の標準機能と設定
- AZ 再バランス: 複数 AZ を指定すると、各 AZ のインスタンス数が均等になるよう自動調整する。障害後も平準化に戻す。追加設定は不要。
capacity-optimizedは Spot の配分戦略で、AZ 均等化とは無関係 - ヘルスチェックタイプ: デフォルトの
EC2は OS の生存だけを見るので、アプリがフリーズしても Healthy と判定する。ALB 配下で「アプリの不具合を検知して入れ替えたい」ならELBに変更する - ヘルスチェックの猶予期間(Grace Period)は「起動直後の準備中に殺すな」、デフォルトのクールダウンは「スケーリング直後に追加発注するな」。アプリの起動に 3 分かかって無限に入れ替わるなら猶予期間を 5 分にする
- ライフサイクルフック:
EC2_INSTANCE_LAUNCHINGで初期化・パッチ・ライセンス認証を待ち、EC2_INSTANCE_TERMINATINGでローカルログを S3 / EFS に退避してから終了する - 動的スケーリングと予測スケーリングの違い、ヘルスチェックの種類は押さえておく
- スケーリング開始を 5 分以内にするには詳細モニタリング(1 分)+ 評価期間 3/3。CloudWatch の監視設計
配置と保護
- 物理ハードウェアを分散したいならスプレッドプレイスメントグループ。1 AZ あたり最大 7 台なので、10 台なら複数 AZ にまたがらせる
- 終了保護・停止保護はコンソール / CLI / API からの操作を防ぐが、OS 内の
shutdownは防げない。InstanceInitiatedShutdownBehaviorがterminateだと、終了保護が有効でも OS 内シャットダウンでインスタンスが削除される - 物理ホスト障害からの自動復旧(
StatusCheckFailed_System→ Recover)は EventBridge と自動修復 - Spot の中断動作(terminate / stop / hibernate)と 2 分前通知は コスト最適化
データ移行サービスの使い分け
| サービス | 役割 |
|---|---|
| AWS DataSync | NFS / SMB からオンプレのデータを S3 / EFS / FSx へ大量一括移行・増分同期する |
| AWS Transfer Family | 外部の取引先が既存の SFTP / FTPS クライアントを変えずに S3 / EFS へファイルを出し入れする窓口 |
Snowball Edge は調査時点で新規受付を停止しメンテナンスモードに移行済みと確認した(停止日は 2025-11-07 と記録。最新状況は公式で確認)。代替はオンライン転送(DataSync)やエッジ処理(Outposts / Local Zones)。
関連
更新履歴
- 2026-07-18: 初版(ローカル調査ノート)
- 2026-10-17: Wiki へ移植、概念ページとして再構成。冒頭に定義を追加
同じトピック — AWS
- CloudFormation と CDK によるデプロイ設計(変更セット・DeletionPolicy・StackSets・Construct)
- CloudWatch の監視設計(メトリクス階層・アラーム・ログ分析の使い分け)
- コンテナ監視の設計(AMP / Managed Grafana / CloudWatch Observability / Fargate の制約)
- AWS コスト最適化の判断基準(購入オプション・Savings Plans・Cost Explorer・インスタンス選定)
- EventBridge と自動修復の設計パターン
- AWS のアクセス制御と監査の判断基準(IAM / SCP / KMS / CloudTrail)
- SOA-C03(AWS Certified CloudOps Engineer - Associate)の試験構成と学習の進め方
- Systems Manager の運用自動化(マネージドノード・Run Command・Automation・Patch Manager)
- VPC ネットワークとコンテンツ配信の設計判断(SG / NACL / NAT / TGW / CloudFront / Route 53)