次の方法で共有


Azure Firewall の信頼性

Azure Firewall は、Azure 仮想ネットワーク リソースを保護するクラウドベースのマネージド ネットワーク セキュリティ サービスです。 これは、組み込みの高可用性と無制限のクラウド スケーラビリティを含む、完全にステートフルなファイアウォール サービスです。

この記事では、Azure Firewall での信頼性のサポートについて説明します。可用性ゾーンマルチリージョンの展開によるリージョン内の回復性について説明します。

Azure を使用する場合、 信頼性は共有責任です。 Microsoft では、回復性と回復性をサポートするさまざまな機能を提供しています。 使用するすべてのサービスでこれらの機能がどのように機能するかを理解し、ビジネス目標とアップタイムの目標を達成するために必要な機能を選択する必要があります。

運用環境のデプロイに関する推奨事項

ソリューションの信頼性要件をサポートするために Azure Firewall を展開する方法と、信頼性がアーキテクチャの他の側面にどのように影響するかについては、Azure Well-Architected フレームワークでの Azure Firewall のアーキテクチャのベスト プラクティスに関する記事を参照してください。

信頼性アーキテクチャの概要

"インスタンス" は、ファイアウォールの仮想マシン (VM) レベルのユニットを参照します。 各インスタンスは、トラフィックを処理し、ファイアウォール チェックを実行するインフラストラクチャを表します。

ファイアウォールの高可用性を実現するために、Azure Firewall は、介入や構成を必要とせずに、少なくとも 2 つのインスタンスを自動的に提供します。 ファイアウォールは、平均スループット、CPU 消費量、接続使用率が定義済みのしきい値に達すると、自動的にスケールアウトします。 詳細については、「Azure Firewall のパフォーマンス」を参照してください。 プラットフォームは、インスタンスの作成、正常性の監視、および異常なインスタンスの置換を自動的に管理します。

サーバーとサーバーラックの障害に対する保護を実現するために、Azure Firewall はリージョン内の複数の障害ドメインにインスタンスを自動的に分散します。

次の図は、2 つのインスタンスを含むファイアウォールを示しています。

2 つのインスタンスを含む Azure Firewall を示す図。

データセンターの障害発生中の冗長性と可用性を高めるために、ゾーン冗長を有効にして、複数の可用性ゾーンにインスタンスを分散させることができます。

一時的な障害

一時的な障害は、コンポーネントにおける短い断続的な障害です。 これらはクラウドのような分散環境で頻繁に発生し、運用の通常の範囲であり、 一時的な障害は、短時間の経過後に自分自身を修正します。 アプリケーションで一時的な障害を処理できることは重要です。通常は、影響を受ける要求を再試行します。

クラウドでホストされるすべてのアプリケーションは、クラウドでホストされている API、データベース、およびその他のコンポーネントと通信する際に、Azure の一時的な障害処理のガイダンスに従う必要があります。 詳細については、「一時的な障害を処理するための推奨事項」を参照してください。

Azure Firewall 経由で接続するアプリケーションの場合は、発生する可能性がある一時的な接続の問題を処理するために、エクスポネンシャル バックオフを使用する再試行ロジックを実装します。 Azure Firewall のステートフルな性質により、ネットワークの短時間の中断中は正当な接続が維持されます。

5 から 7 分かかるスケーリング操作中、既存の接続は保持されますが、負荷の増加に対処するために新しいファイアウォール インスタンスが追加されます。

可用性ゾーンのサポート

可用性ゾーン は、各 Azure リージョン内のデータセンターの物理的に分離されたグループです。 1 つのゾーンで障害が発生した際には、サービスを残りのゾーンのいずれかにフェールオーバーできます。

Azure Firewall は、Azure portal を使用して作成されると、サポートされているリージョンの可用性ゾーン全体に自動的に展開されます。 高度なゾーン構成オプションの場合は、Azure PowerShell、Azure CLI、Bicep、または Azure Resource Manager テンプレート (ARM テンプレート) を使用する必要があります。

Azure Firewall は、ゾーン冗長とゾーンの両方の展開モデルをサポートします。

  • "ゾーン冗長:" ゾーン冗長を有効にすると、Azure はリージョン内の複数の可用性ゾーンにファイアウォール インスタンスを分散します。 Azure は、ゾーン間の負荷分散とフェールオーバーを自動的に管理します。

    ゾーン冗長ファイアウォールは、最高のアップタイム サービス レベル アグリーメント (SLA) を実現します。 これらは、最大の可用性を必要とする運用環境のワークロードにお勧めします。

    次の図は、3 つの可用性ゾーンに分散された 3 つのインスタンスを持つゾーン冗長ファイアウォールを示しています。

    3 つのインスタンスを持つ Azure Firewall を示す図。それぞれが個別の可用性ゾーンに存在します。

    Azure portal を使用してファイアウォールを作成すると、ゾーン冗長が自動的に有効になります。

  • "ゾーン:" ソリューションがゾーン間の待機時間に著しく影響を受ける場合は、Azure Firewall を特定の可用性ゾーンに関連付けることができます。 ゾーン展開を使用して、バックエンド サーバーに近い場所に展開できます。 ゾーン ファイアウォールのすべてのインスタンスは、そのゾーン内に展開されます。

    次の図は、同じ可用性ゾーンにデプロイされた 3 つのインスタンスを含むゾーン ファイアウォールを示しています。

    Azure Firewall と 3 つのインスタンス (すべて同じ可用性ゾーン内) を示す図。

    Important

    単一の可用性ゾーンにピン留めするのは、ゾーン間の待機時間が許容される制限を超え、待機時間が要件を満たさないことを確認したときのみにすることをお勧めします。 ゾーン ファイアウォールだけでは、可用性ゾーンの停止に対する回復性は提供されません。 ゾーンの Azure Firewall 展開の回復性を向上させるには、別個のファイアウォールを複数の可用性ゾーンに手動で展開し、トラフィック ルーティングとフェールオーバーを構成する必要があります。

ファイアウォールをゾーン冗長またはゾーンに構成しない場合は、"非ゾーン" または "リージョン" であるとみなされます。 非ゾーン ファイアウォールは、リージョン内の任意の可用性ゾーンに配置できます。 リージョン内の可用性ゾーンで障害が発生した場合、非ゾーン ファイアウォールが影響を受けるゾーン内にあり、ダウンタイムが発生する可能性があります。

リージョンのサポート

Azure Firewall は、可用性ゾーンをサポートするすべてのリージョンで可用性ゾーンをサポートします。ここでは、Azure Firewall サービスを利用できます。

Requirements

  • Azure Firewall のすべてのレベルが、可用性ゾーンをサポートします。
  • ゾーン冗長ファイアウォールの場合は、標準のパブリック IP アドレスを使用し、それらをゾーン冗長に構成する必要があります。
  • ゾーン ファイアウォールの場合は、標準のパブリック IP アドレスを使用する必要があり、ファイアウォールと同じゾーンでゾーン冗長またはゾーンに構成できます。

費用

複数の可用性ゾーンに展開されたファイアウォールに対して追加コストは発生しません。

可用性ゾーンのサポートを設定する

このセクションでは、ファイアウォールの可用性ゾーン サポートを構成する方法について説明します。

  • 可用性ゾーン サポートがある新しいファイアウォールを作成します。可用性ゾーンの構成に使用する方法は、ゾーン冗長ファイアウォールとゾーン ファイアウォールのどちらを作成するかと、使用するツールによって異なります。

    Important

    Azure portal を使用して展開すると、ゾーン冗長が自動的に有効になります。 特定のゾーンを構成するには、Azure CLI、Azure PowerShell、Bicep、ARM テンプレートなどの別のツールを使用する必要があります。

    • "ゾーン冗長:" Azure portal を使用して新しいファイアウォールを展開すると、ファイアウォールは既定でゾーン冗長になります。 詳細については、Azure portal を使用した Azure Firewall の展開に関する記事を参照してください。

      Azure CLI、Azure PowerShell、Bicep、ARM テンプレート、または Terraform を使用するときは、必要に応じて展開先の可用性ゾーンを指定できます。 ゾーン冗長ファイアウォールを展開するには、2 つ以上のゾーンを指定します。 ゾーンを除外する特定の理由がない限り、ファイアウォールですべての可用性ゾーンを使用できるように、すべてのゾーンを選択することをお勧めします。

      Azure PowerShell の詳細については、Azure PowerShell を使用した可用性ゾーンへの Azure Firewall の展開に関する記事を参照してください。

    • "ゾーン:" ゾーン ファイアウォールは、Azure CLI、Azure PowerShell、Bicep、ARM テンプレート、または Terraform を使用して展開できます。 単一の特定の可用性ゾーンを選択します。

      使用する可用性ゾーンを選択した場合、実際には "論理可用性ゾーン" を選択していることになります。 別の Azure サブスクリプションの他のワークロード コンポーネントをデプロイした場合、別の "論理可用性ゾーン" 番号を使用して、同じ物理可用性ゾーンにアクセスできる場合があります。 詳細については、「物理ゾーンと可用性ゾーン」を参照してください。

  • 既存のファイアウォールで可用性ゾーン サポートを有効にします。特定の条件を満たしている場合は、既存のファイアウォールで可用性ゾーンを有効にできます。 このプロセスでは、ファイアウォールを停止 (割り当て解除) して再構成する必要があります。 ある程度のダウンタイムが予想されます。 詳細については、展開後の可用性ゾーンの構成に関する記事を参照してください。

  • 既存のファイアウォールの可用性ゾーンの構成を変更します。可用性ゾーンの構成を変更するには、まずファイアウォールを停止 (割り当て解除) する必要があります。これは、ある程度のダウンタイムを伴うプロセスです。 詳細については、展開後の可用性ゾーンの構成に関する記事を参照してください。

  • 可用性ゾーン サポートを無効にします。ファイアウォールが使用する可用性ゾーンを変更することはできますが、ゾーン冗長またはゾーンのファイアウォールを非ゾーン構成に変換することはできません。

通常の運用

このセクションでは、Azure Firewall が可用性ゾーン サポートを指定して構成され、すべての可用性ゾーンが動作しているときに想定される内容について説明します。

  • ゾーン間のトラフィック ルーティング: トラフィック ルーティングの動作は、ファイアウォールで使用される可用性ゾーンの構成によって異なります。

    • "ゾーン冗長:" Azure Firewall は、ファイアウォールが使用するすべてのゾーン内のインスタンス間に着信要求を自動的に分散します。 このアクティブ/アクティブ構成により、通常の動作条件下での最適なパフォーマンスと負荷分散が保証されます。

    • "ゾーン:" 異なるゾーンにまたがって複数のゾーン インスタンスを展開する場合は、Azure Load Balancer や Azure Traffic Manager などの外部負荷分散ソリューションを使用してトラフィック ルーティングを構成する必要があります。

  • インスタンス管理: プラットフォームは、ファイアウォールが使用するゾーン全体にわたるインスタンスの配置を自動的に管理し、失敗したインスタンスを置き換え、構成されているインスタンス数を維持します。 稼働状況の監視により、正常なインスタンスのみがトラフィックを受信します。

  • ゾーン間のデータ レプリケーション: Azure Firewall では、可用性ゾーン間で接続状態を同期する必要はありません。 要求を処理するインスタンスが、各接続の状態を保守します。

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

このセクションでは、Azure Firewall が可用性ゾーン サポートを指定して構成されていて、1 つ以上の可用性ゾーンが使用できないときに想定される内容について説明します。

  • 検出と応答: 検出と応答の担当は、ファイアウォールが使用する可用性ゾーンの構成によって異なります。

    • "ゾーン冗長:" ゾーン冗長を使用するように構成されたインスタンスの場合、Azure Firewall プラットフォームが可用性ゾーンの障害を検出して対応します。 ゾーンのフェールオーバーを開始する必要はありません。

    • "ゾーン:" ゾーンに構成されたファイアウォールの場合は、ユーザーが可用性ゾーンの損失を検出し、別の可用性ゾーンに作成したセカンダリ ファイアウォールへのフェールオーバーを開始する必要があります。

  • 通知: Azure Firewall は、ゾーンがダウンしたときにユーザーに通知しません。 ただし、Azure Service Health を使用して、ゾーンの障害を含む Azure Firewall サービスの全体的な正常性を把握できます。

    ゾーンレベルの問題に関する通知を受け取るよう、アラートを設定します。 詳細については、「Azure portal で Service Health アラートを作成する」を参照してください。

  • アクティブな接続: 可用性ゾーンが使用できないとき、障害のある可用性ゾーン内のファイアウォール インスタンスに接続されている進行中の要求が終了し、再試行が必要になる場合があります。

  • 予想されるデータ損失: Azure Firewall は永続的な顧客データを保存しないため、ゾーンのフェールオーバー中にデータ損失は発生しません。

  • 予想されるダウンタイム: ダウンタイムは、ファイアウォールが使用する可用性ゾーンの構成によって異なります。

    • "ゾーン冗長:" 可用性ゾーンの停止中に最小限のダウンタイム (通常は数秒) が予想されます。 クライアント アプリケーションは、エクスポネンシャル バックオフを使用した再試行ポリシーの実装などの、一時的な障害処理のプラクティスに従う必要があります。

    • "ゾーン:" ゾーンが使用できないとき、ファイアウォールは可用性ゾーンが復旧するまで使用できなくなります。

  • トラフィックの再ルーティング: トラフィックの再ルーティング動作は、ファイアウォールが使用する可用性ゾーンの構成によって異なります。

    • "ゾーン冗長:" トラフィックは、正常な可用性ゾーンに自動的に再ルーティングされます。 必要に応じて、プラットフォームは正常なゾーンに新しいファイアウォール インスタンスを作成します。

    • "ゾーン:" ゾーンが使用できないとき、ゾーン ファイアウォールも使用できません。 別の可用性ゾーンにセカンダリ ファイアウォールがある場合は、ユーザーがそのファイアウォールにトラフィックを再ルーティングする必要があります。

フェールバック

フェールバックの動作は、ファイアウォールが使用する可用性ゾーンの構成によって異なります。

  • "ゾーン冗長:" 可用性ゾーンが復旧すると、Azure Firewall が、ファイアウォールが使用するすべてのゾーンにインスタンスを自動的に再配布し、ゾーン間で通常の負荷分散を復元します。

  • "ゾーン:" 可用性ゾーンが復旧したら、ユーザーが元の可用性ゾーンのファイアウォールにトラフィックを再ルーティングする必要があります。

Testing

ゾーン障害テストのオプションは、ファイアウォールの可用性ゾーンの構成によって異なります。

  • "ゾーン冗長:" Azure Firewall プラットフォームが、ゾーン冗長ファイアウォール リソースのトラフィック ルーティング、フェールオーバー、フェールバックを管理します。 この機能はフル マネージドであるため、可用性ゾーンの障害プロセスを開始または検証する必要はありません。

  • "ゾーン:" ファイアウォールを停止することで、可用性ゾーンの障害の側面をシミュレートできます。 このアプローチを使用して、他のシステムとロード バランサーがファイアウォールの停止をどのように処理するかをテストします。 詳細については、Azure Firewall の停止と開始に関する記事を参照してください。

マルチリージョン サポート

Azure Firewall は、単一リージョンのサービスです。 リージョンが使用できない場合は、Azure Firewall リソースも使用できません。

代替のマルチリージョン アプローチ

マルチリージョン アーキテクチャを実装するには、別個のファイアウォールを使用します。 この方法では、独立した Azure Firewall を各リージョンに展開し、トラフィックを適切なリージョン ファイアウォールにルーティングし、カスタム フェールオーバー ロジックを実装する必要があります。 次の点を考慮してください。

  • 複数のファイアウォールにわたる一元化されたポリシー管理には、Azure Firewall Manager を使用します。 複数のファイアウォール インスタンスにわたる一元化されたルール管理には、ファイアウォール ポリシーの方法を使用します。

  • Traffic Manager または Azure Front Door を使用してトラフィック ルーティングを実装します。

複数リージョンのネットワーク セキュリティ アーキテクチャを示すアーキテクチャの例については、Traffic Manager、Azure Firewall、Application Gateway を使用した複数リージョンの負荷分散に関する記事を参照してください。

サービスメンテナンス中の信頼性

Azure Firewall は、通常のサービス アップグレードやその他の形式のメンテナンスを実行します。

アップグレード スケジュールが運用上のニーズに合うように、毎日のメンテナンス期間を構成できます。 詳細については、「Azure Firewall の顧客が管理するメンテナンスを構成する」を参照してください。

サービス水準合意書

Azure サービスのサービス レベル アグリーメント (SLA) には、各サービスの期待される可用性と、その可用性の期待を達成するためにソリューションが満たす必要がある条件について記載されています。 詳細については、 オンライン サービスの SLA を参照してください。

Azure Firewall は、2 つ以上の可用性ゾーンに展開されたファイアウォールに対して、より高い可用性 SLA を提供します。