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