災害対策(DR の 4 方式 / AWS Backup)

災害対策(DR: Disaster Recovery)は、リージョン全体が使えなくなるような大きな障害から、システムとデータを取り戻すための備えです。SAA では「RPO と RTO の要件を満たし、しかも最もコストの低い方式はどれか」という形で、4 つの DR 方式の選び分けがよく出ます。バックアップをまとめて管理する AWS Backup もあわせて押さえます。

ひとことで言うと: 「どこまでのデータを失ってよいか(RPO)」と「どれくらいで復旧すべきか(RTO)」が厳しいほど、別リージョンに多くの設備を動かしておく必要があり、コストが上がります。

たとえるなら、バックアップと復元は「家が焼けたら保管庫の写真から建て直す」、パイロットライトは「ガスの種火だけつけておく」、ウォームスタンバイは「小さな別宅をいつでも住める状態にしておく」、マルチサイトは「最初から 2 軒で同時に暮らす」です。

このページで押さえる論点

RPO と RTO

DR の方式は、次の 2 つの目標値で選びます。どちらも「0 に近いほど厳しい要件」です。

指標意味決め手になるもの
RPO(Recovery Point Objective: 目標復旧時点)障害が起きたとき、どの時点までのデータを取り戻せればよいか。「最大で何分ぶんのデータを失ってよいか」とも言えるデータをどれくらいの頻度でコピーしているか(バックアップの間隔、継続的なレプリケーションか)
RTO(Recovery Time Objective: 目標復旧時間)障害が起きてから、どれくらいの時間でサービスを再開できればよいか復旧先でどれだけの設備が動いているか(ゼロから作るか、すでに動いているか)

たとえば「毎晩 0 時にバックアップを取る」構成で、夕方 18 時に障害が起きると、0 時から 18 時までの 18 時間ぶんのデータを失います。このとき RPO は「最大 24 時間」です。RPO を小さくしたければ、バックアップの間隔を短くするか、データを継続的に別リージョンへコピー(レプリケーション)します。

一方 RTO は、復旧先の準備の度合いで決まります。何もない状態からサーバーやネットワークを作ってデータを復元するなら時間がかかり、すでに同じ環境が動いていれば、利用者の行き先を切り替えるだけで済みます。

DR の 4 方式の比較

AWS のホワイトペーパー「AWS でのワークロードのディザスタリカバリ」では、DR の方式を次の 4 つに分けています。下にいくほど RPO・RTO は小さく(速く・失うデータが少なく)なり、その分コストと複雑さが増えます。

方式復旧先(DR リージョン)の状態RPO・RTO の目安コスト
バックアップと復元バックアップ(データ・AMI など)だけを置く。障害時にインフラを作り直し、データを復元する時間単位最も低い
パイロットライトデータベースなどデータを持つ部分は常に動かし、データを継続的にコピーしておく。アプリのサーバーは「オフ」(未起動・未作成)で、障害時に起動して台数を増やす数十分低い
ウォームスタンバイ本番と同じ構成を縮小した規模で常に動かしておく。すぐに(少ない容量で)リクエストを処理でき、障害時は台数を増やす(スケールアップ)だけ数分高い
マルチサイト(アクティブ/アクティブ)複数のリージョンで本番と同じ規模の環境を動かし、すべてのリージョンで利用者のリクエストを処理するほぼゼロ最も高い

RPO・RTO の目安は、ホワイトペーパーの図に示された大まかな目安です。実際の値は、使うサービスや作り込みによって変わります。

いちばん紛らわしいのがパイロットライトとウォームスタンバイの違いです。どちらも DR リージョンにデータのコピーと環境の一部を持ちますが、パイロットライトは追加の操作(サーバーを起動する・作る)をしないとリクエストを処理できないのに対し、ウォームスタンバイは小さい規模ながら今すぐ処理できる点が違います。問題文に「縮小版の環境が常に稼働している」「完全に機能するコピー」とあればウォームスタンバイ、「コアとなる部分(データベース)だけを稼働」とあればパイロットライトです。

マルチサイトの仲間にホットスタンバイもあります。本番と同じ規模の環境を 2 つ目のリージョンに用意しますが、ふだんは 1 つのリージョンだけでリクエストを受け、もう一方は DR 専用にするアクティブ/パッシブの構成です。

なお、マルチサイトでも、データの破損や誤削除はレプリケーションでそのままコピーされてしまいます。どの方式でも、ある時点の状態に戻せるポイントインタイムのバックアップは別に必要です。

要件から方式を選ぶ

試験の問題は、たいてい「RPO と RTO の要件を満たしつつ、最もコスト効率の良い方式はどれか」という形です。考え方は次の 2 段階です。

  1. RPO と RTO のうち、厳しい方の要件を満たせる方式まで絞る(上の表で下の方式ほど厳しい要件を満たせる)。
  2. 満たせる方式のうち、最もコストの低い方式を選ぶ。要件を大きく上回る方式は、コストの面で不正解になる。

下のシミュレーターで、要件を変えると選ぶべき方式がどう変わるかを確かめてみましょう。

操作できるシミュレーター

RPO・RTO の要件から DR 方式を選ぶ

RTO と RPO の要件を選んでください。要件を満たす方式に ✓、満たさない方式に ✕ が付き、最もコストの低い方式が「選ぶ」と表示されます。

↑ コスト低い・復旧に時間がかかる バックアップと復元 目安: 時間単位/コスト: 最低 パイロットライト 目安: 数十分/コスト: 低 ウォームスタンバイ 目安: 数分/コスト: 高 マルチサイト 目安: ほぼゼロ/コスト: 最高 ↓ コスト高い・すぐ復旧できる

※簡略化しています: RPO・RTO の目安は AWS ホワイトペーパーの図にある大まかな値で、方式の境目は実際にはきっちり分かれていません。方式の中でも、使うサービス(例: Aurora Global Database か、スナップショットのコピーか)によって RPO・RTO は変わります。コストは相対的な順番だけを示しています。

方式を支える AWS のサービス

DR は、「データを別リージョンへ運ぶ」「環境をすばやく作る」「利用者の行き先を切り替える」の 3 つの部品の組み合わせです。

部品主なサービス・機能主に使う方式
定期的なバックアップ(ある時点のコピー)EBS スナップショット、RDS・Aurora のスナップショット、DynamoDB のバックアップ、AWS Backup(別リージョン・別アカウントへのコピー)、AMI のコピーすべて(バックアップと復元では中心)
継続的なレプリケーション(非同期コピー)S3 のクロスリージョンレプリケーション、RDS のクロスリージョンリードレプリカ、Aurora Global Database、DynamoDB グローバルテーブルパイロットライト以上
環境をすばやく作るAWS CloudFormation などの IaC(Infrastructure as Code: インフラをコードで定義して自動で作る方法)、EC2 Auto Scaling で台数を増やすすべて(パイロットライト・ウォームスタンバイでは台数を増やすのに Auto Scaling)
利用者の行き先を切り替えるRoute 53 のヘルスチェックとフェイルオーバールーティング、AWS Global Acceleratorパイロットライト以上

パイロットライトで RDS のクロスリージョンリードレプリカを使う場合、障害時にはリードレプリカを昇格させて書き込みできるようにします(数分かかり、再起動を伴います)。Aurora Global Database なら、リージョン全体の障害でもセカンダリリージョンを 1 分未満で読み書き可能にできます。詳しくは RDS と Aurora のページ、切り替えの仕組みは Route 53 のページを参照してください。

ホワイトペーパーでは、切り替えの操作にはデータプレーン(実際にサービスを提供する部分)の機能を使うことを勧めています。設定を変えるコントロールプレーンの操作より可用性の目標が高いためです。Route 53 のヘルスチェックによる DNS フェイルオーバーはデータプレーンの操作です。

AWS Backup

AWS Backup は、EC2・EBS・RDS / Aurora・DynamoDB・EFS・FSx・Storage Gateway など、複数の AWS サービスのバックアップを1 か所でまとめて設定・スケジュール・監視できるサービスです。サービスごとにバックアップの仕組みを作る代わりに、ポリシーで一元管理します。

機能内容
バックアッププラン「いつ・どれくらいの頻度でバックアップし、どれだけ保持するか」を決めたルールの集まり。タグで対象のリソースを指定できるので、タグを付けるだけで新しいリソースもバックアップ対象になる
ライフサイクル決めたスケジュールで、バックアップをウォームストレージから安いコールドストレージへ自動で移す
バックアップボールトバックアップを保管する入れ物。バックアップの中身はイミュータブル(誰も変更できない)で、元のリソースから切り離して保護される。リソースベースのアクセスポリシーで権限を制御できる
別リージョン・別アカウントへのコピーバックアップをプランの一部として自動で別リージョンにコピーできる(DR 用)。別アカウントにコピーすれば、アカウントが乗っ取られた場合の備えにもなる
AWS Backup ボールトロックWORM(Write Once Read Many: 一度書いたら変更できない)モデルで、自分を含む誰もバックアップを削除したり保持期間を変えたりできないようにする
AWS Organizations との連携バックアップポリシーで、組織内の複数アカウントにまとめてバックアッププランを適用する
AWS Backup Audit Managerバックアップが社内ルールどおりに行われているかをチェックし、日次レポートで証跡を残す

ボールトロックには 2 つのモードがあり、ランサムウェア対策や法令対応の問題で区別が問われます。

項目ガバナンスモードコンプライアンスモード
ロックの解除・削除十分な IAM 権限があるユーザーならできる猶予期間が終わると、ルートユーザーや AWS を含め誰もできない
猶予期間(設定を取り消せる期間)なし必要。最短 3 日(72 時間)
向いている用途誤削除を防ぎつつ、管理者は設定を変えられるようにしたい規制で「誰にも削除させない」ことが求められる

ボールトロックでは、バックアップの最小保持日数と最大保持日数も設定できます。ロックを有効にしたあとに作られるバックアップに適用されます。

問題文のキーワード → 選ぶべき答え

問題文の言い回し答えと理由
「RPO・RTO は数時間でよい」「最もコストの低い DR」バックアップと復元。バックアップを別リージョンにコピーし、障害時に作り直す
「データベースだけ DR リージョンで常に稼働」「アプリのサーバーは障害時に起動」パイロットライト
「縮小版の完全に機能する環境を常に稼働」「障害時はスケールアップするだけ」ウォームスタンバイ
「RPO・RTO をほぼゼロに」「複数リージョンで同時にリクエストを処理」マルチサイト(アクティブ/アクティブ)
「RTO は数十分、コストは最小限に」パイロットライト。ウォームスタンバイでも満たせるが、コストの面で劣る
「複数サービスのバックアップを一元管理」「タグでバックアップ対象を指定」AWS Backup のバックアッププラン
「バックアップを別リージョンにも自動で保管」AWS Backup のクロスリージョンコピー
「ルートユーザーでもバックアップを削除できないように」「WORM」AWS Backup ボールトロック(コンプライアンスモード)
「組織内の全アカウントに同じバックアップ方針を適用」AWS Organizations と AWS Backup のバックアップポリシー
「障害時に DNS で DR リージョンへ自動で切り替え」Route 53 のフェイルオーバールーティングとヘルスチェック

引っかけポイント

まとめ: SAA 試験で押さえるポイント

確認問題

参考リンク

AWS 公式ドキュメント(外部サイトが開きます)。