Cloud Service
Full Stack Disaster Recovery
リージョン障害からの復旧を自動化。Full Stack DR はアプリ・DB・インフラをまたいだ切り替え手順を DR プランとして定義し、ワンクリックで実行。AWS の Elastic Disaster Recovery 相当の位置づけ。
- 1.アプリ層からインフラ層までをまたいだ災害復旧の切り替え手順を一括オーケストレーションするマネージドサービス。
- 2.切り替え手順を DR プランとして定義し、計画切替(Switchover)と障害時切替(Failover)をワンクリックで実行できる。
- 3.AWS の Elastic Disaster Recovery(DRS)に相当する位置づけ。
解決する課題
リージョン全体の障害や大規模災害に備えて待機環境を用意していても、いざ切り替えるとなると「DB のロールスイッチ」「アプリの起動」「ロードバランサやネットワークの向き先変更」など多数の手順を、正しい順序で人手で実行する必要があります。Full Stack Disaster Recovery は、これら一連の手順を DR プランとしてコード化し、ワンクリックで自動実行することで解決します。
- リージョン障害時の切り替え手順がランブック(手作業の手順書)に依存し、属人化・手順ミス・実行時間のばらつきが生じる → 手順をプランとして定義し自動実行したい
- DB だけでなくコンピュート・ロードバランサ・ネットワークなどスタック全体をまたいだ復旧を、正しい順序でまとめて行いたい
- 普段から**切り替えを訓練(DR ドリル)**して、いざという時に確実に復旧できることを確認したい
- 計画的なメンテナンス切替(Switchover)と、障害発生時の切替(Failover)を同じ仕組みで扱いたい
- AWS の Elastic Disaster Recovery(DRS) に相当する、DR 専用のマネージド基盤を OCI 側でも使いたい
主要概念と用語
- DR 保護グループ(DR Protection Group, DRPG): 一緒に保護・切り替えする対象(DB・コンピュート・ロードバランサ等)をまとめた単位。通常はリージョンごとに用意し、プライマリ側とスタンバイ側の DRPG を関連付ける
- メンバー(Member): DR 保護グループに登録する個々の保護対象リソース。データベース、コンピュートインスタンス、ロードバランサなどが該当する
- ロール(Role): DR 保護グループが現在プライマリ(稼働側)かスタンバイ(待機側)かを表す状態
- DR プラン(DR Plan): 切り替え時に実行する手順(ステップ)の集合。切り替えの種類ごとに自動生成され、ステップの追加・並べ替え・カスタマイズができる
- 計画切替(Switchover): 計画的にプライマリとスタンバイの役割を入れ替える操作。停止を伴うメンテナンスや DR 訓練で用いる
- 障害時切替(Failover): プライマリが利用不能になった際にスタンバイへ強制的に切り替える操作
- プラン実行(Plan Execution): DR プランを実際に走らせたインスタンス。各ステップの進捗・所要時間・成否やログを確認できる
- ユーザー定義ステップ(User-Defined Step): 自動生成ステップに加えて、独自のスクリプト実行や承認待ちなどを差し込める拡張ポイント
- プリチェック(Prechecks): プランを実行する前に前提条件や構成を点検する事前検証
仕様・制限・クォータ
- 切り替えの対象は DR 保護グループのメンバーとして登録したリソースで、データベース・コンピュート・ロードバランサなどスタックを横断して扱える
- 切り替えは通常、プライマリリージョンとスタンバイリージョンの 2 拠点を関連付けて構成する。対応するリージョン・リソース種別はサービスのサポート範囲に依存する
- DR プランは切り替えの種類(Switchover / Failover)ごとに生成され、ステップの追加・並べ替え・無効化などのカスタマイズができる
- データの複製そのものは、各リソースの複製機能(DB のスタンバイ複製やストレージのレプリケーションなど)に依存する。Full Stack DR は複製済みの環境への切り替えをオーケストレーションする役割を担う
- 対応するリソース種別・前提条件・上限は変動するため、利用前に公式ドキュメントで確認すること
- テナンシ/リージョンごとに**サービス制限(リミット)**があり、必要に応じて引き上げを申請できる
内部の仕組み
- 利用者はプライマリ側とスタンバイ側に DR 保護グループを作り、相互に関連付けたうえで保護対象をメンバーとして登録する
- 登録された構成をもとに、Switchover / Failover それぞれの DR プランが手順(ステップ)として生成される。ステップには DB のロール切替、インスタンスの起動・停止、ロードバランサの設定変更などが含まれる
- 自動生成されたステップに、利用者はユーザー定義ステップ(スクリプト実行・承認待ちなど)を差し込んで手順を補完できる
- 実行前にプリチェックで前提条件や構成の妥当性を点検できる
- プランを実行すると**プラン実行(Plan Execution)**が生成され、各ステップが定義順に進行する。各ステップの状態・所要時間・ログが記録され、失敗時はその箇所から原因を切り分けられる
- 実行が完了するとプライマリとスタンバイのロールが入れ替わる。データ複製自体は各リソース側の機能が担い、本サービスはその切り替え順序の制御に専念する
計画停止や DR 訓練など、プライマリが正常な状態で意図的に役割を入れ替えるときは Switchover。プライマリが障害で利用不能になり、応答を待たずスタンバイへ切り替えるときは Failover。日頃から Switchover で訓練しておくと、いざという時の Failover が確実になる。
設計パターン / ベストプラクティス
- 切り替え手順をランブック頼みにせず DR プランとして定義し、人手の手順ミスと実行時間のばらつきを排除する
- 本番障害を待たず、**定期的に Switchover で DR ドリル(訓練)**を行い、プランが最新の構成に追従しているか検証する
- 自動生成ステップだけで足りない処理(アプリ固有の起動順・ヘルスチェック・通知など)はユーザー定義ステップで補い、手順を完結させる
- 実行前にプリチェックを必ず通し、前提条件の欠落を本番切替の前に解消する
- データ複製は各リソース側(DB のスタンバイ複製やストレージレプリケーション)で適切に構成し、切り替え時点で待機側が追いついていることを前提に据える
- スタンバイ側の容量・上限・ネットワーク到達性を平時から確保し、切り替え後にリソース不足で止まらないようにする
- プラン実行の結果(所要時間・失敗ステップ)を振り返り、RTO 目標に対する手順の改善を継続する
運用・監視
- プラン実行のステップごとの進捗・所要時間・ログをサービス上で確認し、失敗時は該当ステップから原因を切り分ける
- 定期的な DR ドリルの結果を記録し、実測の切替時間が RTO 目標に収まっているかを確認する
- イベントや通知と連携し、プラン実行の開始・完了・失敗を検知して運用フローに組み込む
- 構成変更(メンバーの増減やリソース構成の変更)が生じたら、DR プランを見直して再生成・再検証する
- スタンバイ側の状態(複製の追従、リソースの空き、上限)を平時から監視し、切替可能な状態を維持する
コスト
| 観点 | 考え方 | コスト最適化のヒント |
|---|---|---|
| DR オーケストレーション | 保護対象や実行に応じた利用費用 | 保護対象は重要リソースに絞る |
| スタンバイ環境 | 待機側のコンピュートや DB の稼働費用 | 待機側の規模・起動状態を要件に合わせる |
| データ複製 | リージョン跨ぎのレプリケーションに伴う費用 | 複製対象と頻度を必要十分に保つ |
| DR 訓練 | ドリル実行時に一時的に発生する稼働費用 | 訓練後は不要なリソースを停止する |
- 主なコストはスタンバイ環境の稼働費用とリージョン跨ぎのデータ複製に左右される。待機側の規模や常時起動の要否を要件に合わせて設計する
- 具体的な料金体系は変動するため、最新の料金は公式の情報で確認すること
セキュリティ
- 切り替え操作やプラン管理の権限は IAM ポリシー(グループ/動的グループ+ポリシー)で最小権限に設計し、DR 保護グループやプランへのアクセスを限定する
- ユーザー定義ステップで使う**スクリプトや資格情報は OCI Vault(Secrets)**で管理し、平文で扱わない
- スタンバイ側でも保存時暗号化・転送時の TLSを有効にし、切り替え後も暗号化された状態を維持する
- レプリケーションや切り替えに用いるネットワーク経路はプライベートを基本とし、公開経路に出さない設計とする
- 切り替えは影響の大きい操作のため、承認ステップや監査ログで実行を記録・統制する
DR プランを作っただけで一度も訓練せず本番任せにするのは危険。構成変更後にプランを再生成・再検証しない、資格情報を平文でステップに埋め込む、スタンバイ側の上限・容量を確保しない、といった運用は切替失敗の原因になる。定期ドリル・プラン再検証・Vault・IAM 最小権限を徹底すること。
関連サービス・比較
DR の対象に Oracle DB を含む場合、待機側のデータ複製は Data Guard(DB のスタンバイ複製)などで構成し、その切り替えを Full Stack DR がオーケストレーションする、という役割分担になります。
| 観点 | Full Stack Disaster Recovery | AWS Elastic Disaster Recovery(DRS) |
|---|---|---|
| 位置づけ | DR 切替を自動化するオーケストレーション | DR 専用のマネージドサービス |
| 対象範囲 | アプリ・DB・インフラを横断した切替 | サーバー単位の複製と復旧が中心 |
| 手順管理 | DR プランとして手順を定義・実行 | 復旧設定とリカバリ操作で実行 |
| 切替種別 | 計画切替と障害時切替 | リカバリとフェイルバック |
| 訓練 | Switchover による DR ドリル | 復旧ドリルを実施 |
| 鍵・資格情報 | OCI Vault | AWS KMS / Secrets Manager |
| 権限付与 | IAM ポリシー | IAM |
- AWS DRS が主にサーバー単位の複製と復旧に焦点を当てるのに対し、Full Stack DR は DB を含むスタック全体の切替手順をプランとして編成する点が特徴
- データ複製そのものは DB やストレージ側の機能に委ね、本サービスは切り替えの順序制御に専念する
ハンズオン / CLI例
# プライマリ側の DR 保護グループを作成
oci disaster-recovery dr-protection-group create \
--compartment-id "$COMPARTMENT_OCID" \
--display-name primary-drpg \
--members '[]'
# スタンバイ側の DR 保護グループを作成し、プライマリと関連付ける
oci disaster-recovery dr-protection-group create \
--compartment-id "$COMPARTMENT_OCID" \
--display-name standby-drpg \
--members '[]'
oci disaster-recovery dr-protection-group associate \
--dr-protection-group-id "$STANDBY_DRPG_OCID" \
--role STANDBY \
--peer-dr-protection-group-id "$PRIMARY_DRPG_OCID"
# Switchover 用の DR プランを作成
oci disaster-recovery dr-plan create \
--compartment-id "$COMPARTMENT_OCID" \
--display-name switchover-plan \
--dr-protection-group-id "$STANDBY_DRPG_OCID" \
--type SWITCHOVER
# プランを実行し、実行状況を確認する
oci disaster-recovery dr-plan-execution create \
--plan-id "$DR_PLAN_OCID" \
--execution-options '{"planExecutionType":"SWITCHOVER"}'
oci disaster-recovery dr-plan-execution get \
--dr-plan-execution-id "$EXECUTION_OCID"
OCI Service
Full Stack Disaster Recoveryを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
移行・転送
比較で見る軸
クラウド: OCI / カテゴリ: 移行・転送 / 難易度: intermediate
導入後に効く点
切り替え手順を DR プランとして定義し、計画切替(Switchover)と障害時切替(Failover)をワンクリックで実行できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- 移行・転送
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- reliability / operational
判断チェックリスト
- 自社の用途が「移行・転送 / reliability」に近いか確認する。
- 強みである「アプリ層からインフラ層までをまたいだ災害復旧の切り替え手順を一括オーケストレーションするマネージドサービス。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。