復旧計画と自動フェールオーバー
アプリケーション層全体で VM のフェールオーバー順序を定める ASR 復旧計画を作成し、手動承認ゲートとフェールオーバー前後のスクリプトを追加します。
「復旧計画と自動フェールオーバー」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。
ASR復旧計画とは
Azure Site RecoveryのRecovery Planは、複数のVMのフェイルオーバーをまとめて調整する、構造化された順序付きの手順です。各VMを個別にフェイルオーバーするのではなく、復旧計画によってVMをグループにまとめ、順番にフェイルオーバーします。これにより、初回のデプロイ時と同様に、インフラストラクチャ(データベース、ミドルウェア、Web)が正しい順序で起動します。
復旧計画の作成
復旧計画を作成するには、ソースサイト(プライマリリージョン)とターゲットサイト(セカンダリリージョン)を選択し、対象に含めるVMを追加します。計画ウィザードによって既定のグループが自動的に作成されますが、グループを追加してフェイルオーバーの順序を制御することもできます。同じグループ内のVMは同時にフェイルオーバーされ、グループは番号順に実行されます。
# Create an ASR Recovery Plan via CLI:
az site-recovery recovery-plan create \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--primary-fabric-id '/subscriptions/.../replicationFabrics/eastus' \
--recovery-fabric-id '/subscriptions/.../replicationFabrics/westus' \
--groups '[{"groupType":"Boot","replicationProtectedItems":[...]}]'多層アプリケーションのグループ順序設定
一般的な3層アプリケーションでは、復旧計画に次の3つのグループを設定します。
- グループ1 — データベース層のVM(最初に起動する必要があります)
- グループ2 — アプリケーション/ミドルウェア層のVM
- グループ3 — WebフロントエンドのVM(最後に起動します)
各グループは、前のグループのフェイルオーバーが正常に完了するまで待機してから開始します。これにより正しい起動順序が再現され、データベースが接続を受け付ける準備が整う前にWeb層のVMが起動することを防げます。
手動アクションとスクリプトの追加
復旧計画では、各グループの境界に事前アクションと事後アクションを設定できます。次のようなアクションがあります。
- 手動アクション — フェイルオーバーを一時停止し、人間による確認を待機します(例:「データベースの準備が完了していることを確認」)
- Azure Automation Runbook — スクリプトを自動的に実行します(例:DNSレコードの更新、メンテナンスモードの無効化)
Automation Runbookを使用すると、ティア1のワークロードで人の介入なしにフェイルオーバーを完全に自動化できます。
# Example Automation runbook action in a recovery plan:
# Pre-group-2 action: Run runbook 'UpdateConnectionStrings'
# This runbook updates app config to point to secondary DB endpoint
# before the application tier VMs start計画フェイルオーバーと計画外フェイルオーバー
Azure Site Recoveryでは、次の2種類のフェイルオーバーがサポートされています。
- 計画フェイルオーバー — データセンターのメンテナンスなど、発生が分かっているイベントの前に開始します。プライマリVMを正常にシャットダウンし、データを同期してからセカンダリVMを起動します。データ損失はありません。
- 計画外フェイルオーバー — 実際の災害中に開始されます。プライマリVMを利用できない可能性があるため、ASRは最新のレプリケーションチェックポイントを使用します。RPOに応じて、一部のデータが失われる可能性があります。
# Trigger an unplanned failover via CLI:
az site-recovery recovery-plan failover-unplanned \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan \
--failover-direction PrimaryToRecoveryコミットとフェイルバック
フェイルオーバー後、セカンダリリージョンで復旧したVMはコミット保留中の状態になります。フェイルオーバーをコミットして、セカンダリサイトがアクティブサイトになったこと、およびロールバックしないことを確定する必要があります。コミットが完了したら、逆方向のレプリケーションを設定してセカンダリサイトを保護し、プライマリリージョンが復旧した後にフェイルバックできます。
# Commit the failover:
az site-recovery recovery-plan commit \
--resource-group myRG \
--vault-name myRecoveryVault \
--name myRecoveryPlan
# Then configure reverse replication to enable failback laterフェイルオーバー後の再保護
フェイルオーバーをコミットすると、元のプライマリリージョンにあるレプリケート済みアイテムはアクティブにレプリケートされなくなります。保護を再開するには、アイテムを再保護する必要があります。これによりレプリケーションの方向が反転し、新しいプライマリ(以前のセカンダリ)から元のプライマリリージョンへレプリケートされるようになります。再保護には時間がかかるため、元のプライマリリージョンが再び利用可能になったら、できるだけ早く開始してください。
復旧計画におけるRTOの測定
復旧計画の各ステップが、合計RTOに加算されます。時間がかかる主な要因は次のとおりです。
- VMの起動時間(VM 1台あたり2~5分)
- アプリケーションのウォームアップ時間(データベース接続プールの初期化、キャッシュのウォームアップ)
- IPアドレス変更後のDNS伝播
- 手動承認ゲートの待機時間
テストフェールオーバー中に各ステップを測定し、合計することで、目標RTOに対する実際のRTOを算出します。
DNS更新の自動化
フェールオーバー後、セカンダリリージョンのVMには異なるIPアドレスが割り当てられます。パブリックDNS名を公開するアプリケーションでは、DNSを更新して新しいIPアドレスを指すようにする必要があります。フェールオーバー後のアクションとしてAzure Automation runbookを使用し、Azure DNSまたはTraffic Managerのエンドポイントの正常性を更新して、自動的にトラフィックをリダイレクトします。これにより、RTOを遅延させる可能性のある手動ステップを省略できます。
# Example: Update Azure DNS record in a runbook after failover:
# az network dns record-set a update \
# --resource-group dnsRG \
# --zone-name myapp.com \
# --record-set-name '@' \
# --set 'ARecords[0].ipv4Address=<new-secondary-ip>'復旧計画の実行を監視する
フェールオーバー中は、Recovery Services vaultのAzure portal Jobsビューに、復旧計画の各ステップのリアルタイムの進行状況が表示されます。実行中のグループ、正常に起動したVM、保留中のスクリプトや手動アクションを確認できます。このビューを監視することで、ステップが失敗した場合に復旧チームが迅速に介入できます。
復旧計画のベストプラクティス
復旧計画における主なベストプラクティスは次のとおりです。
- グループを小さく保ち(VM 5~10台)、グループが失敗した場合の影響範囲を限定する
- RTOを短縮するため、可能な限り手動アクションではなくAutomation runbookを使用する
- RTOを算出できるよう、各グループの想定起動時間を文書化する
- 計画を検証するため、少なくとも四半期に1回テストフェールオーバーを実行する
- 新しいVMを追加した場合やアプリケーションのアーキテクチャを変更した場合は、必ず計画を見直して更新する
クイックチェック
このレッスンで学んだMicrosoft Azure Fundamentals(AZ-900)の概念について理解度を確認します。
レッスンのまとめ
このレッスンでは、復旧計画が各グループでの事前・事後アクションを伴う複数VMの順序付けられたフェールオーバーを調整すること、計画外フェールオーバーでは最後のレプリケーションチェックポイントが使用される一方、計画フェールオーバーではデータ損失がゼロになること、そしてフェールオーバー後にDR保護を復元するにはコミットして再保護する必要があることを学びました。次は、本番環境に影響を与えずにDR計画をテストする方法について説明します。
よくある質問
「復旧計画と自動フェールオーバー」レッスンは無料ですか?
はい。「復旧計画と自動フェールオーバー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。
「復旧計画と自動フェールオーバー」で何を学びますか?
アプリケーション層全体で VM のフェールオーバー順序を定める ASR 復旧計画を作成し、手動承認ゲートとフェールオーバー前後のスクリプトを追加します。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Azure Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「復旧計画と自動フェールオーバー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAzure Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- RTO、RPO、復旧ティアの定義
- 復旧計画と自動フェールオーバー
- 影響を与えずに行う DR テスト
- PaaS サービスの DR