可用性ゾーンを使用したリージョン内復旧とリージョン間の geo ディザスター リカバリー (Azure Event Grid)
この記事では、可用性ゾーンがあるリージョンで障害が発生した場合に、Azure Event Grid が Event Grid リソース定義とデータのリージョン内の自動回復をサポートする方法について説明します。 また、ペアのリージョンがあるリージョンで障害が発生した場合に、Event Grid が別のリージョンへの Event Grid リソース定義 (データなし) の自動復旧をサポートする方法についても説明します。
可用性ゾーンを使用したリージョン内復旧
Azure 可用性ゾーンは、局所的な障害にトレラントな各 Azure リージョン内の物理的に分離された場所です。 ラウンドトリップ待ち時間が 2 ミリ秒未満の高パフォーマンス ネットワークによって接続されます。 それぞれの可用性ゾーンは、独立した電源、冷却手段、ネットワーク インフラストラクチャを備えた 1 つまたは複数のデータセンターで構成されています。 1 つのゾーンが影響を受けた場合に、リージョンのサービス、容量、高可用性が残りの 2 つのゾーンによってサポートされます。 可用性ゾーンの詳細については、「リージョンと可用性ゾーン」を参照してください。 この記事では、可用性ゾーンを持つリージョンの一覧も確認できます。
トピック、システム トピック、ドメイン、イベント サブスクリプションとイベント データの Event Grid リソース定義は、リージョン内の 3 つの可用性ゾーン (使用可能な場合) に自動的にレプリケートされます。 いずれかの可用性ゾーンで障害が発生した場合、Event Grid リソースは、ユーザーの介入なしに別の可用性ゾーンに自動的にフェールオーバーします。 現時点では、この機能を制御 (有効化または無効化) することはできません。 既存のリージョンが可用性ゾーンのサポートを開始すると、既存の Event Grid リソースが自動的にフェールオーバーされ、この機能が利用されます。 お客様による対応は必要ありません。
リージョン間の geo ディザスター リカバリー
Azure リージョンで長時間の停止が発生した場合、ビジネス継続性のために代替リージョンへのフェールオーバー オプションに関心を持つことがあるでしょう。 多くの Azure リージョンに geo ペアがありますが、ないリージョンもあります。 ペアのリージョンの一覧については、「すべての地域の Azure リージョン間レプリケーションのペアリング」参照してください。
geo ペアを持つリージョンの場合、Azure Event Grid には、カスタム トピック、システム トピック、ドメインに対してペアのリージョンに発行トラフィックをフェールオーバーする機能が用意されています。 Event Grid は、バックグラウンドでトピック、システム トピック、ドメイン、イベント サブスクリプションのリソース定義をペアのリージョンに自動的に同期します。 ただし、イベント データはペアのリージョンにはレプリケートされません。 通常の状態では、イベントは、そのリソースに対して選択したリージョンに格納されます。 リージョンの停止が発生し、Microsoft がフェールオーバーを開始すると、新しいイベントが geo ペアのリージョンに流れ始め、そこからユーザーの介入なしでディスパッチされます。 障害が軽減された後、元のリージョンで発行および受け入れられたイベントは、そこからディスパッチされます。
Microsoft が開始するフェールオーバーは、Event Grid リソースを、影響を受けるリージョンから、対応する geo ペア リージョンにフェールオーバーするまれな状況において、Microsoft によって実行されます。 Microsoft は、このオプションを実行するタイミングを決定する権利を留保します。 このメカニズムでは、ユーザーのトラフィックがフェールオーバーされる前にユーザーの同意を必要としません。
この機能を有効または無効にするには、トピックまたはドメインの構成を更新します。 Microsoft が開始するフェールオーバーを有効にするには [Cross-Geo](クロス Geo) オプション (既定) を選択し、無効にするには [Regional](リージョン内) を選択します。 この設定を構成する詳細な手順については、「データ所在地を構成する」を参照してください。 "リージョン" を選択した場合、Microsoft によって他のリージョンにレプリケートされるデータはありません。また、独自のディザスター リカバリー計画を定義することもできます。 詳細については、「Azure Event Grid トピックとドメイン用に独自のディザスター リカバリー プランを構築する」を参照してください。
Microsoft が開始するフェールオーバー機能を無効にするのが適する場面を次にいくつか示します。
- Microsoft が開始するフェールオーバーは、ベストエフォート ベースで実行されます。
- 一部の地域のペアは、組織のデータ所在地の要件を満たしていません。
このような場合は、Azure Event Grid トピックとドメイン用に独自のディザスター リカバリー計画を作成することをお勧めします。 このオプションではある程度の作業を実施する必要がありますが、高速フェールオーバーが可能になり、セカンダリ リージョンの選択を制御できます。 Azure Event Grid トピックのクライアント側ディザスター リカバリーを実装する場合は、Azure Event Grid トピックに対してクライアント側ディザスター リカバリーを独自に構築するをご覧ください。
RTO と RPO
ディザスター リカバリーは 2 つのメトリックで測定されます。
- 回復ポイントの目標 (RPO): 失われる可能性がある分または時間分のデータ。
- 回復時刻の目標 (RTO): サービスが停止している可能性がある時間。
Event Grid の自動フェイルオーバーでは、ご利用のメタデータ (トピック、ドメイン、イベント サブスクリプション) およびデータ (イベント) に対してさまざまな RPO と RTO が用意されています。 以下の仕様とは異なる仕様が必要な場合でも、独自のクライアント側フェイルオーバーをトピックの正常性 API を使用して実装することができます。
目標復旧時点 (RPO)
メタデータの RPO: 0 分 該当するリソースの場合、リソースが作成、更新、または削除されると、リソース定義が geo ペアに同期的にレプリケートされます。 フェイルオーバーが発生しても、メタデータは失われません。
データ RPO: フェールオーバーが発生すると、ペアのリージョンから新しいデータが処理されます。 影響を受けるリージョンの停止が軽減されるとすぐに、未処理のイベントがそこからディスパッチされます。 リージョンの回復に、イベントに設定された Time to Live の値よりも長い時間が必要な場合、データの損失が発生する可能性があります。 このデータ損失を軽減するには、イベント サブスクリプションに対して配信不能の宛先を設定することをお勧めします。 影響を受けるリージョンが失われ、復旧できない場合は、データの損失が発生します。 最良のシナリオでは、サブスクライバーは発行速度に追いついており、データ損失は数秒間で済みます。 最悪のシナリオは、サブスクライバーがイベントをアクティブに処理しておらず、最大有効期間が 24 時間の場合、データ損失は最大 24 時間に及ぶ可能性があります。
目標復旧時間 (RTO)
メタデータ RTO: フェールオーバーの意思決定は、ペアのリージョンで使用可能な容量などの要因に基づいており、60 分以上の範囲で実行できます。 フェールオーバーが開始されると、5 分以内に、Event Grid はトピックとサブスクリプションの作成、更新、削除の呼び出しの受け入れを開始します。
データ RTO: 上記の情報と同じです。
重要
- サーバー側ディザスター リカバリーの場合、ペアのリージョンに追加のトラフィックを処理する追加の容量がないと、Event Grid はフェールオーバーを開始できません。 復旧はベストエフォート ベースで行われます。
- この機能の使用には料金はかかりません。
- geo ディザスター リカバリーは、パートナー名前空間とパートナー トピックではサポートされていません。
次の手順
「Azure Event Grid トピック用に独自のクライアント側ディザスター リカバリーを構築する」を参照してください。