Azure Notification Hubs の信頼性

この記事では、Azure Notification Hubs での信頼性のサポートについて説明し、リージョンの回復性と可用性ゾーンディザスター リカバリーとビジネス継続性の両方について説明します。

可用性ゾーンのサポート

Azure 可用性ゾーンとは、各 Azure リージョン内にある、3 つ以上に物理的に分離されたデータセンターのグループです。 各ゾーン内のデータセンターには、独立した電源、冷却手段、ネットワーク インフラストラクチャが備わっています。 ローカル ゾーンの障害が発生した場合、可用性ゾーンは、1 つのゾーンが影響を受けたときに、リージョンのサービス、容量、高可用性が残りの 2 つのゾーンによってサポートされるように設計されています。

障害の範囲は、ソフトウェアやハードウェアの障害から、地震、水害、火災などの事象に至る可能性があります。 Azure サービスの冗長と論理的な分離により、障害に対するトレランスが実現されます。 Azure の可用性ゾーンの詳細については、リージョンと可用性ゾーンに関する記事を参照してください。

Azure の可用性ゾーン対応サービスは、適切なレベルの信頼性と柔軟性を提供するように設計されています。 それらは 2 つの方法で構成できます。 それらは、ゾーン間の自動レプリケーションによるゾーン冗長、またはインスタンスを特定のゾーンにピン留めするゾーンベースのいずれかになります。 これらのアプローチを組み合わせることもできます。 ゾーン ベースとゾーン冗長のアーキテクチャを比較した詳細については、「可用性ゾーンとリージョンの使用に関する推奨事項」を参照してください。

可用性ゾーンをサポートするリージョンでは、Notification Hubs は既定でゾーン冗長デプロイをサポートします。 可用性ゾーンを使ってデプロイすると、登録データとメタデータの両方が、指定されたリージョンのすべてのゾーンでレプリケートされます。

前提条件

SLA の機能強化

可用性ゾーンのサポートでは、既存のレベルの価格に加えて追加のコストが発生します。 SLA の詳細については、Notification Hubs の SLA に関するページを参照してください。

ゾーン ダウン エクスペリエンス

ゾーン全体の停止中、ゾーンの復旧中に必要なアクションはありません。 Notification Hubs は、正常なゾーンを自動的に利用して自己修復と再調整を行います。

可用性ゾーンを有効にする

新しい名前空間でのみ可用性ゾーンを有効にすることができます。 Notification Hubs は既存の名前空間の移行をサポートしていないため、名前空間でゾーン冗長を有効にした後、それを無効にすることはできません。

可用性ゾーンが有効になっていることを示すスクリーンショット

可用性ゾーンを含む新しい名前空間を設定する方法については、「Azure portal 内で Azure 通知ハブを作成する」を参照してください。

可用性ゾーン サポートに移行する

既存の Notification Hubs リソースを、可用性ゾーンをサポートする新しいリージョンに移動する方法については、「Azure リージョン間でリソースを移動する」のガイダンスに従ってください。

リージョン間のディザスター リカバリーおよび事業継続

ディザスター リカバリー (DR) とは、ダウンタイムやデータ損失につながるような、影響の大きいイベント (自然災害やデプロイの失敗など) から復旧することです。 原因に関係なく、災害に対する最善の解決策は、明確に定義されテストされた DR プランと、DR を積極的にサポートするアプリケーション設計です。 ディザスター リカバリー計画の作成を検討する前に、「ディザスター リカバリー戦略の設計に関する推奨事項」を参照してください。

DR に関しては、Microsoft は共有責任モデルを使用します。 共有責任モデルでは、ベースライン インフラストラクチャとプラットフォーム サービスの可用性が Microsoft によって保証されます。 同時に、多くの Azure サービスでは、データのレプリケート、または障害が発生したリージョンから別の有効なリージョンにクロスレプリケートするフォールバックは、自動的には行われません。 それらのサービスについては、お客様がワークロードに適したディザスター リカバリー計画を設定する必要があります。 Azure PaaS (サービスとしてのプラットフォーム) オファリング上で実行されるほとんどのサービスには、DR をサポートするための機能とガイダンスが用意されており、お客様はサービス固有の機能を使って迅速な復旧をサポートでき、DR 計画の開発に役立ちます。

Notification Hubs では、Notification Hubs の名前、接続文字列、その他の重要情報などのメタデータのリージョン間のレプリケーションを使用して、ディザスター リカバリー対応を提供しています。

[Azure のペアになっているリージョン] を使用することも、サポートされている [柔軟な復旧リージョン] の一覧から選択することもできます。

ディザスター リカバリー シナリオが開始された場合、Notification Hubs インフラストラクチャで失われる唯一のセグメントは登録データです。 名前空間の登録データを保持するためのオプションと、それを復元する方法については、登録データのバックアップに関するセクションを参照してください。

柔軟な復旧リージョン

柔軟な復旧リージョンは、セカンダリ名前空間をプライマリ名前空間のフェールオーバー ターゲットとして構成できるシンプルなソリューションです。 サポートされているリージョンの一覧から選択できます。 可用性ゾーンはあるがペアになっているリージョンがないリージョンの場合、柔軟な復旧を使用してセカンダリ リージョンを選択できます。 フェールオーバーがトリガーされると、セカンダリ名前空間がアクティブな名前空間になり、プライマリ名前空間がパッシブな名前空間になります。 プライマリ名前空間に送信されたすべての要求とメッセージはセカンダリ名前空間にリダイレクトされ、プッシュ通知はセカンダリ名前空間から配信されます。

次のリージョンで、柔軟な復旧リージョンがサポートされます。

  • 米国西部 2
  • 北ヨーロッパ
  • オーストラリア東部
  • ブラジル南部
  • 東南アジア
  • 南アフリカ北部

登録データのバックアップ

ペアリングされた、および柔軟なリージョン復旧では、メタデータのみがバックアップされます。 次のようにして、復旧後のハブに登録データを再設定するソリューションを実装する必要があります。

Azure Notification Hubs では、インストールと登録という 2 種類のデバイス登録がサポートされています。 登録は次のいずれかにバックアップすることをお勧めします。

  • 任意のストレージ ソリューション: DR イベントが発生した場合、復元アクティビティのためにある程度のダウンタイムが発生します。
  • 別のリージョンに作成する別のハブ: このオプションを使用して、登録をバックアップします。 機能するハブとして、このコピーに切り替えるコードを実装できます。 セカンダリ通知ハブとプライマリ通知ハブの同期を維持するには、次のいずれかのオプションを使用して登録をバックアップします。
    • インストールの場合: 両方の通知ハブで、同時にインストールを作成し、更新する、アプリ バックエンドを使用します。 インストールによって、独自の一意のデバイス ID を指定して、レプリケーションのシナリオにより適したものにすることができます。 詳細については、このサンプル コードを参照してください。
    • 登録の場合: プライマリ通知ハブからバックアップとして登録の定期的なダンプを取得する、アプリのバックエンドを使用します。 そうすれば、セカンダリ通知ハブに一括挿入を実行することができます。 「Azure Notification Hubs の登録情報を一括でエクスポートおよびインポートする」を参照してください。

セカンダリ通知ハブの登録の有効期限が切れている場合があります。 有効期限が切れたハンドルにプッシュが実行されると、プライマリ通知ハブ上の関連付けられている登録レコードが、PNS サーバーから受信した応答に基づいて、Notification Hubs によって自動的に消去されます。 各送信からのフィードバックを処理し、期限切れの登録を削除するカスタム ロジックを追加することで、任意のバックアップ ソリューションから期限切れのレコードを消去することができます。

バックエンドがない場合は、ターゲット デバイスでアプリが起動するときに、デバイスでセカンダリ通知ハブへの新しい登録が行われます。 最終的に、すべてのアクティブなデバイスがセカンダリ通知ハブに登録されます。

アプリが開いていないデバイスが通知を受信しない期間があります。

リージョン間のディザスター リカバリーを有効にする

新しい名前空間のディザスター リカバリーを有効にするには、「Azure portal 内で Azure 通知ハブを作成する」の記事の手順に従います。

既存の名前空間のディザスター リカバリーを有効または有効にするには、次の操作を行います。

  1. Azure portal にサインインします。

  2. 左側のメニューから、 [すべてのサービス] を選択します。

  3. [Internet of Things] (モノのインターネット) セクションで、[Notification Hub Namespaces] (Notification Hub の名前空間) を選択します。

  4. [Notification Hub の名前空間] ページで、ディザスター リカバリー設定を変更する名前空間を選択します。

  5. 目的の名前空間の [Notification Hub の名前空間] ページの [要点] セクションで、現在のディザスター リカバリー設定を確認できます。

  6. 次の例では、柔軟な復旧リージョンが有効になっています。 現在のディザスター リカバリー リージョンの選択をクリックして、編集ポップアップを表示します。

    Notification Hubs のメタデータの要点を示すスクリーンショット。

  7. [Edit Disaster Recovery] (ディザスター リカバリーの編集) ポップアップで、選択内容を変更できます。 変更を保存します。

    注意

    ペアになっている復旧リージョンでは、リージョンは表示されますが灰色表示されます。リージョンを編集することはできません。

    リカバリーの編集オプション画面のスクリーンショット。

次のステップ