Azure NAT Gateway は、プライベート仮想ネットワークに接続されているリソースに送信インターネット接続を提供する、フル マネージドのネットワーク アドレス変換 (NAT) サービスです。 このサービスでは、送信接続用の送信元ネットワーク アドレス変換 (SNAT) と、送信元の接続への応答パケットに対してのみ宛先ネットワーク アドレス変換 (DNAT) の両方が提供されます。 Azure NAT Gateway は重要な仮想ネットワーク リソースのトラフィックを処理するため、高い回復性を提供するように設計されています。
Azure を使用する場合、 信頼性は共有責任です。 Microsoft では、回復性と回復性をサポートするさまざまな機能を提供しています。 使用するすべてのサービスでこれらの機能がどのように機能するかを理解し、ビジネス目標とアップタイムの目標を達成するために必要な機能を選択する必要があります。
この記事では、一時的な障害や可用性ゾーンの停止など、さまざまな潜在的な障害や問題に対する Azure NAT ゲートウェイの回復性を確保する方法について説明します。 また、Azure NAT Gateway サービス レベル アグリーメント (SLA) に関する重要な情報についても説明します。
Important
NAT ゲートウェイの信頼性を考慮する場合は、VM 上で実行される仮想マシン (VM)、ディスク、その他のネットワーク インフラストラクチャ、アプリケーションの信頼性も考慮してください。 NAT ゲートウェイの回復性を向上させる場合は、他のコンポーネントの回復性が同等でない場合、影響が制限される可能性があります。 回復性の要件によっては、複数のコンポーネント間で構成を変更する場合があります。
信頼性のための運用環境のデプロイに関する推奨事項
運用ワークロードの場合は、次のプラクティスをお勧めします。
StandardV2 SKU を使用して 、サポートされているリージョンでゾーン の冗長性 を自動的に取得します。
注
デプロイの前に、 StandardV2 Azure NAT Gateway の主な制限事項 を確認して、構成がサポートされていることを確認します。
ピーク時の接続要件に十分なパブリック IP アドレスを割り当てます。 IP アドレスが不足すると、SNAT ポートの枯渇と可用性の問題が発生する可能性があります。
StandardV2 Azure NAT Gateway で StandardV2 SKU のパブリック IP アドレスを使用します。 StandardV2 Azure NAT Gateway では、Standard SKU のパブリック IP アドレスはサポートされていません。
信頼性アーキテクチャの概要
このセクションでは、信頼性の観点から最も関連性の高いサービスのしくみの重要な側面について説明します。 このセクションでは、デプロイして使用するリソースと機能の一部を含む論理アーキテクチャについて説明します。 また、物理アーキテクチャについても説明します。このアーキテクチャでは、サービスの内部での動作について詳しく説明します。
論理アーキテクチャ
NAT ゲートウェイは、デプロイするリソースです。 NAT ゲートウェイを送信インターネット トラフィックの既定のルートとして使用するには、仮想ネットワーク内の 1 つ以上のサブネットに接続します。 カスタム ルートやその他のルーティングを構成する必要はありません。
物理アーキテクチャ
内部的には、NAT ゲートウェイは、サービスの運用に必要な基になるインフラストラクチャを表す 1 つ以上の インスタンスで構成されます。
Azure NAT Gateway は、ソフトウェア定義ネットワーク (SDN) を使用して分散アーキテクチャを実装し、高い信頼性とスケーラビリティを提供します。 サービスは複数の障害ドメインにわたって動作するため、サービスに影響を与えることなく、複数のインフラストラクチャ コンポーネントの障害に耐えることができます。 Azure は、障害ドメイン間の分散やインフラストラクチャの冗長性など、基になるサービス操作を管理します。
Azure NAT ゲートウェイのアーキテクチャと冗長性の詳細については、 Azure NAT Gateway リソースに関するページを参照してください。
一時的な障害に対する回復性
一時的な障害は、コンポーネントにおける短い断続的な障害です。 これらはクラウドのような分散環境で頻繁に発生し、運用の通常の範囲であり、 一時的な障害は、短時間の経過後に自分自身を修正します。 アプリケーションで一時的な障害を処理できることは重要です。通常は、影響を受ける要求を再試行します。
クラウドでホストされるすべてのアプリケーションは、クラウドでホストされている API、データベース、およびその他のコンポーネントと通信する際に、Azure の一時的な障害処理のガイダンスに従う必要があります。 詳細については、「一時的な障害を処理するための推奨事項」を参照してください。
アプリケーションが同じ IP アドレスとポートに複数の独立した接続を行うと、SNAT ポートが枯渇し、送信 IP アドレスで使用可能な SNAT ポートが使い果たされます。 SNAT ポートの枯渇は、アプリケーションの一時的な障害として表示される可能性があります。 NAT に関連する一時的な障害の可能性を減らすには、次のタスクを実行します。
SNAT ポート枯渇の可能性を最小限に抑えます。 接続プールと適切な接続ライフ サイクル管理を実装して、SNAT を適切に処理するようにアプリケーションを構成します。
十分なパブリック IP アドレスをデプロイします。 1 つの NAT ゲートウェイは複数のパブリック IP アドレスをサポートし、各パブリック IP アドレスは個別の SNAT ポートセットを提供します。
NAT ゲートウェイのデータパス可用性メトリックを監視します。 Azure Monitor を使用して、潜在的な接続の問題を早期に検出します。 接続エラーや SNAT ポート枯渇のアラートを設定することで、アプリケーションの外向き接続に影響を与える前に、一時的な障害状態を積極的に特定して対処できます。 詳細については、「 Azure NAT Gateway のメトリックとアラート」を参照してください。
アイドル タイムアウト値を高く設定しないでください。 NAT ゲートウェイ接続の既定の 4 分を大幅に超えるアイドル タイムアウト値を設定すると、接続ボリュームが多い間に SNAT ポートの枯渇が発生する可能性があります。
Azure NAT Gateway の接続管理と問題のトラブルシューティングの詳細については、「 Azure NAT Gateway 接続のトラブルシューティング」を参照してください。
可用性ゾーンの障害に対する回復性
可用性ゾーン は、Azure リージョン内のデータセンターの物理的に分離されたグループです。 1 つのゾーンで障害が発生した際には、サービスを残りのゾーンのいずれかにフェールオーバーできます。
Azure NAT Gateway では、ゾーン冗長構成とゾーン構成の両方で可用性ゾーンがサポートされます。
ゾーン冗長: Azure NAT Gateway の StandardV2 SKU では、ゾーンの冗長性が自動的に提供されます。 ゾーン冗長は、リージョン内のすべての可用性ゾーンに NAT ゲートウェイ インスタンスを分散します。 ゾーン冗長構成により、運用ワークロードの回復性と信頼性が向上します。
この図は、上部にインターネットを示しています。 インターネットの下には、仮想ネットワーク内に存在し、3 つの可用性ゾーンにまたがる NAT ゲートウェイ リソースがあります。 仮想ネットワーク内のサブネットには、3 つの VM が含まれています。 各 VM は、異なる可用性ゾーンに配置されます。 最初の VM は可用性ゾーン 1 にあり、2 番目の VM は可用性ゾーン 2 にあり、3 番目の VM は可用性ゾーン 3 にあります。 各可用性ゾーンの 3 つの個別の矢印は、NAT ゲートウェイからインターネットへの送信トラフィックのフローを示します。
ゾーン: Standard (v1) SKU を使用する場合、オプションでゾーン構成を設定できます。 ゾーン NAT ゲートウェイは、選択した可用性ゾーンにデプロイします。 特定のゾーンに NAT ゲートウェイをデプロイすると、そのゾーンからインターネットへの送信接続が明示的に提供されます。 別の可用性ゾーンからのゾーンのパブリック IP アドレスは許可されません。 接続されたサブネットからのすべてのトラフィックは、サブネット リソースが別の可用性ゾーンに存在する場合でも、NAT ゲートウェイを経由してルーティングされます。
この図は、上部にインターネットを示しています。 インターネットの下には、可用性ゾーン 1 内にのみデプロイされた NAT ゲートウェイ リソースがあります。 NAT ゲートウェイは、1 つの VM を含むサブネットに接続します。 仮想ネットワークにはサブネットが含まれています。すべてのサブネットは可用性ゾーン 1 にあります。 可用性ゾーン 2 と可用性ゾーン 3 が空です。 矢印は、NAT ゲートウェイからインターネットへの送信トラフィックのフローを示します。
可用性ゾーン内の NAT ゲートウェイで障害が発生した場合、接続されたサブネット内のすべての VM は、正常な可用性ゾーンに存在する場合でも、インターネットに接続できません。
Important
単一の可用性ゾーンへのピン留めは、ニーズに合わせてゾーン間の待機時間が長すぎる場合と、待機時間が要件を満たしていないことを確認した後にのみ推奨されます。 ゾーン リソースだけでは、可用性ゾーンの停止に対する回復性は提供されません。 ゾーン リソースの回復性を向上させるには、個別のリソースを複数の可用性ゾーンに明示的にデプロイし、トラフィック ルーティングとフェールオーバーを構成する必要があります。 詳細については、「 ゾーン リソースとゾーンの回復性」を参照してください。
複数の可用性ゾーンに VM をデプロイし、ゾーン NAT ゲートウェイを使用する必要がある場合は、各可用性ゾーンに ゾーン スタック を作成できます。 ゾーン スタックを作成するには、次のリソースをデプロイします。
複数のサブネット: ゾーンにまたがる 1 つのサブネットを使用するのではなく、可用性ゾーンごとに個別のサブネットを作成します。
ゾーン NAT ゲートウェイ: 接続されたサブネットと同じ可用性ゾーンに NAT ゲートウェイをデプロイします。
VM の手動割り当て: 各 VM を適切な可用性ゾーンと可用性ゾーンの対応するサブネットに配置します。
この図は、インターネットの上部にあるインターネットと、インターネットの下の 3 つの可用性ゾーンを示しています。 各可用性ゾーンには、専用のゾーン NAT ゲートウェイ インスタンス、サブネット、VM が含まれています。 これらのリソースはすべて、共有仮想ネットワークに存在します。 矢印は、各可用性ゾーンの NAT ゲートウェイ インスタンスからインターネットへの送信トラフィック フローを示します。
Standard (v1) NAT ゲートウェイをデプロイし、可用性ゾーンを指定しない場合、NAT ゲートウェイは 非ゾーンです。つまり、Azure は可用性ゾーンを選択します。 リージョン内の可用性ゾーンに障害が発生した場合は、NAT ゲートウェイに影響を与える可能性があります。 非ゾーン構成は可用性ゾーンの停止に対する保護を提供しないため、お勧めしません。
Requirements
リージョンのサポート: ゾーン冗長およびゾーン NAT ゲートウェイは、 可用性ゾーンをサポートする任意のリージョンにデプロイできます。
Sku: ゾーン冗長 NAT ゲートウェイをデプロイするには、StandardV2 SKU を使用します。 ゾーン NAT ゲートウェイをデプロイするには、Standard SKU を使用します。 StandardV2 SKU をお勧めします。
パブリック IP アドレス: NAT ゲートウェイに接続されるパブリック IP アドレスの要件は、SKU とデプロイの構成によって異なります。
Azure NAT Gateway SKU 可用性ゾーンのサポートの種類 パブリック IP アドレスの要件 StandardV2 ゾーン冗長 StandardV2 パブリック IP アドレス Standard ゾーン ベース ゾーン冗長または NAT ゲートウェイと同じゾーン内にある標準パブリック IP アドレス Standard ノンゾーナル ゾーン冗長または任意のゾーンの標準パブリック IP アドレス
費用
Azure NAT Gateway の可用性ゾーンのサポートには、追加のコストはかからなくなります。 詳細については、 Azure NAT Gateway の価格に関するページを参照してください。
可用性ゾーンのサポートを設定する
新しいリソース: デプロイ手順は、可用性ゾーンの構成によって異なります。
ゾーン冗長: StandardV2 SKU を使用して新しいゾーン冗長 NAT ゲートウェイをデプロイするには、「 StandardV2 Azure NAT ゲートウェイの作成」を参照してください。
ゾーン: Standard SKU を使用して新しいゾーン NAT ゲートウェイをデプロイするには、NAT ゲートウェイの作成 を参照してください。 NAT ゲートウェイを作成するときは、[ ゾーンなし] を選択するのではなく、その可用性ゾーンを選択します。
可用性ゾーンのサポートを有効にします。 デプロイ後に Azure NAT Gateway の可用性ゾーンの構成を変更することはできません。 可用性ゾーンの構成を変更するには、目的のゾーン設定を使用して新しい NAT ゲートウェイをデプロイする必要があります。
Standard から StandardV2 NAT ゲートウェイにアップグレードするには、StandardV2 SKU を使用する新しいパブリック IP アドレスを作成する必要があります。
すべてのゾーンが正常な場合の動作
このセクションでは、NAT ゲートウェイが可用性ゾーンのサポート用に構成され、すべての可用性ゾーンが運用可能な場合に想定される内容について説明します。
ゾーン間のトラフィック ルーティング: VM からのトラフィックが NAT ゲートウェイを経由してルーティングされる方法は、NAT ゲートウェイが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: トラフィックは、任意の可用性ゾーン内の NAT ゲートウェイ インスタンスを経由してルーティングできます。
ゾーン: 各 NAT ゲートウェイインスタンスは、割り当てられた可用性ゾーン内で個別に動作します。 サブネット リソースからの送信トラフィックは、VM が別のゾーンに存在する場合でも、NAT ゲートウェイのゾーンを経由してルーティングされます。
ゾーン間のデータ レプリケーション: Azure NAT Gateway は、送信接続用のステートレス サービスであるため、ゾーン間でデータをレプリケートしません。 各 NAT ゲートウェイ インスタンスは可用性ゾーン内で独立して動作し、他のゾーン内のインスタンスとの同期は必要ありません。
ゾーン障害時の動作
このセクションでは、NAT ゲートウェイが可用性ゾーンのサポート用に構成されていて、可用性ゾーンが停止した場合に想定される内容について説明します。
検出と応答: 検出と応答の責任は、NAT ゲートウェイが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: Azure NAT Gateway は、可用性ゾーンの障害を検出して応答します。 可用性ゾーンのフェールオーバーを行うために、お客様からのアクションは必要ありません。
ゾーン: あなたは、他のゾーンの接続方法や NAT ゲートウェイへのアプリケーションレベルのフェールオーバーを実装する責任があります。
通知: ゾーンがダウンしても、Microsoft から自動的に通知されることはありません。 ただし、 Azure Resource Health を 使用して個々のリソースの正常性を監視したり、 Resource Health アラート を設定して問題を通知したりすることはできます。 また、Azure Service Health を使用して、ゾーンの障害を含むサービスの全体的な正常性を把握し、問題を通知する Service Health アラートを設定することもできます。
NAT ゲートウェイのデータパス可用性メトリックを使用して、NAT ゲートウェイの正常性を監視することもできます。 接続の問題を検出するために、データパスの可用性メトリックに関するアラートを構成します。
アクティブな要求: アクティブな要求の動作は、NAT ゲートウェイが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: 障害のあるゾーン内のインスタンスは、アクティブな送信接続をドロップします。 クライアントは接続要求を再試行する必要があり、その後の試行は別の可用性ゾーンの NAT ゲートウェイ インスタンスを経由してルーティングされます。
ゾーン: 障害のあるゾーン NAT ゲートウェイは、アクティブな送信接続を切断します。 代替接続パスを使用して接続を再確立するかどうかを決定する必要があります。 アプリケーションでは、接続エラーを処理するための再試行ロジックを実装する必要があります。
トラフィックを再ルーティングすると、送信パブリック IP アドレスが変更されるため、伝送制御プロトコル (TCP) セッションを再確立する必要がある場合があります。
予想されるデータ損失: Azure NAT Gateway は送信接続のステートレス サービスであるため、データ損失は発生しません。 接続が再確立されると、接続状態が再作成されます。
予想されるダウンタイム: 予想されるダウンタイムは、NAT ゲートウェイが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: 障害が発生したゾーンからの既存の接続が切断される可能性があります。 クライアントはすぐに接続を再試行でき、別のゾーン内のインスタンスへのルートを要求します。 正常なゾーンからの残りの接続はすべて保持されます。
ゾーナル: 送信接続は、ゾーンが復旧するか、別の接続方法や他のゾーンの NAT ゲートウェイを通じてトラフィックを再ルーティングするまで利用できません。
トラフィックの再ルーティング: トラフィックの再ルーティング動作は、NAT ゲートウェイが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: 新しい接続要求は、正常な可用性ゾーン内の NAT ゲートウェイ インスタンスを経由してルーティングされます。
ゾーン障害が発生した場合、そのゾーン内の VM も通常は動作を停止します。 ただし、部分的なゾーン障害が、VM の実行を継続している間に NAT ゲートウェイのみに影響を与える場合、それらの VM からの送信接続は別のゾーンの NAT ゲートウェイ インスタンスを経由してルーティングされます。
ゾーン: アプリケーションレベルのフェイルオーバーを実装する必要があります。例えば、別の接続方法を使用したり、他のゾーンのNATゲートウェイにトラフィックをリダイレクトしたりすることです。
ゾーンの回復
Azure NAT Gateway はステートレス サービスであるため、フェールバック操作では手動による介入は必要ありません。
可用性ゾーンが復旧すると、そのゾーン内の NAT ゲートウェイ インスタンスは、新しい送信接続で自動的に使用できるようになります。 停止中に他のゾーンの NAT ゲートウェイ インスタンスを介して確立された接続は、それらの接続が閉じるまで、既存の接続パスを引き続き使用します。
ゾーンエラーのテスト
ゾーンの障害をテストするためのオプションは、インスタンスが使用する可用性ゾーンの構成によって異なります。
ゾーン冗長: Azure NAT ゲートウェイ プラットフォームは、ゾーン冗長 NAT ゲートウェイのトラフィック ルーティング、フェールオーバー、フェールバックを管理します。 これらのマネージド機能では、手動アクションを開始したり、可用性ゾーンの障害プロセスを検証したりする必要はありません。
ゾーン: 可能性のあるゾーン障害に対処するためにフェールオーバー計画を準備してテストする必要があります。
リージョン全体の障害に対する回復性
Azure NAT Gateway は、特定の Azure リージョンの境界内で動作する単一リージョン サービスです。 このサービスでは、ネイティブマルチリージョン機能やリージョン間の自動フェールオーバーは提供されません。 リージョンが使用できなくなった場合、そのリージョンの NAT ゲートウェイも使用できなくなります。
複数のリージョンにまたがるネットワーク アプローチを設計する場合は、各リージョンに独立した NAT ゲートウェイをデプロイします。
サービス水準合意書
Azure サービスのサービス レベル アグリーメント (SLA) には、各サービスの期待される可用性と、その可用性の期待を達成するためにソリューションが満たす必要がある条件について記載されています。 詳細については、 オンライン サービスの SLA を参照してください。
Azure VNet NAT SLA には、Azure NAT ゲートウェイが含まれます。 可用性 SLA は、2 つ以上の正常な VM がある場合にのみ適用されます。 また、ダウンタイムの計算から SNAT ポートの枯渇も除外されます。