Azure Event Grid トピックとドメイン用に独自のディザスター リカバリー プランを構築する

ペアのリージョンにデータをレプリケートしないことを決定した場合は、独自のディザスター リカバリー シナリオを構築し、アプリケーション機能の重大な損失から復旧するために、いくつかのプラクティスに投資する必要があります。

自動化用のスクリプトを構築する

デプロイ パイプラインを自動化したままにします。手動で作成されたプロセスは、フェールオーバーが発生したときに遅延が発生する可能性があります。 必要に応じて 1 つまたは複数のリージョンでデプロイを簡単にレプリケートできるように、すべての Azure デプロイがスクリプトまたはテンプレートにバックアップされていることを確認します。 わざわざ一からやり直そうとしないでください。既に実績があり、機能しているものを使用します。Azure DevOpsGitHub Actions のように、クラウド デプロイ自動化に関する問題を解決できる多くの自動化ツールがあります。デプロイ フェーズ中に役立つツールが他にもあります。使い慣れていると感じるツールを使用し、この使用法ガイドは単なるチェックリストの参照として使用してください。

プランでリージョンを定義する

リカバリー プランを作成するには、プランで使用するリージョンを選択する必要があります。 リージョンを選択するときは、ユーザーとクラウド リソースの間で起こりうる待機時間も考慮する必要があります。 プライマリ リージョンに最も近いリージョンの取得を試みてください。

リージョン間ルーターの選択

リージョンを既に定義したら、必要に応じてリージョン間でトラフィックを分散するのに役立つリージョン間ルーターを定義する必要があります。 Traffic Manager は DNS ベースのトラフィック ロード バランサーであり、パブリックに公開されているアプリケーションへのトラフィックを世界各国の Azure リージョンに分散できます。 また、Traffic Manager は、リージョン間のリダイレクトと可用性、リバース プロキシ、静的コンテンツ キャッシュ、Front Door の参照を検討できる WAF ポリシーなどの追加機能が必要な場合に備えて、高可用性と迅速な応答性をパブリック エンドポイントに提供します。

Azure Event Grid リソースをデプロイする

次に、Azure Event Grid トピック リソースを作成します。以下の Bicep サンプルを使用して、webhook イベント サブスクリプションを含むトピックを作成します。

選択したセカンダリ リージョンに対してトピックのデプロイ プロセスを繰り返します。

注: Azure にリソースをデプロイしたら、トピックとイベント サブスクリプションの構成に加えられた変更がテンプレートに反映されていることを確認して、作成と再作成のプラクティスを続行する必要があります。

作成した各リソースのトピック エンドポイント URL を何らかの場所に保存すると、次のような内容が表示されます。

リージョン 1: https://my-primary-topic.my-region-1.eventgrid.azure.net/api/events

リージョン 2: https://my-secondary-topic.my-secondary-1.eventgrid.azure.net/api/events

Azure Event Grid エンドポイントの Traffic Manager を作成する

以前に作成した Azure Event Grid リソース エンドポイントは、Azure で Traffic Manager プロファイルを作成して構成するときに使用されます。詳細については、以下の「クイック スタート: Azure portal を使用した Traffic Manager プロファイルの作成」を参照してください。

Traffic Manager は、https://myeventgridtopic.trafficmanager.net のような一意の DNS 名を提供するグローバル リソースです。 Traffic Manager で両方の Azure Event Grid トピック エンドポイントを構成すると、プライマリ リージョンが使用できなくなったら、2 番目のリージョンにトラフィックが自動的にリダイレクトされます。

この時点では、リソースがデプロイされ、実行されており、Traffic Manager エンドポイントへのイベントの送信を開始できます。Traffic Manager でセカンダリ エンドポイントをアクティブのままにしたくない場合は、エンドポイントを無効にすることを検討できます。

CI/CD プロセスにデプロイ スクリプトを統合する

構成が期待どおりに機能し、イベントが定義したリージョンに配信されるようになったので、テンプレートを自動化ツールと統合する必要があります。詳細については、「クイックスタート: Bicep を Azure Pipelines に統合する」または「クイックスタート: GitHub Actions を使用した Bicep ファイルのデプロイ」を参照してください。

定期的にテストされる自動プロセスを使用すると、スクリプトやツールで使用される依存関係が古くなっていないという確信が得られ、リージョンで起こりうる障害が発生した後、数分でリカバリー プロセスをトリガーできます。

次のステップ