NAT ゲートウェイ - Amazon Virtual Private Cloud

NAT ゲートウェイ

NAT ゲートウェイは、ネットワークアドレス変換 (NAT) サービスです。NAT ゲートウェイを使用すると、プライベートサブネット内のインスタンスは VPC 外のサービスに接続できますが、外部サービスはそれらのインスタンスとの接続を開始できません。

NAT ゲートウェイを作成するときは、次のいずれかの接続タイプを指定します。

  • Public (パブリック) - (デフォルト) プライベートサブネットのインスタンスは、パブリック NAT ゲートウェイを介してインターネットに接続できますが、インターネットから未承諾のインバウンド接続を受信することはできません。パブリックサブネット内にパブリック NAT ゲートウェイを作成し、作成時に Elastic IP アドレスを NAT ゲートウェイに関連付ける必要があります。NAT ゲートウェイへのトラフィックは、VPC のインターネットゲートウェイにルーティングします。パブリック NAT ゲートウェイを使用して、他の VPC やオンプレミスのネットワークに接続することもできます。この場合、NAT ゲートウェイからのトラフィックを Transit Gateway または仮想プライベートゲートウェイ経由でルーティングします。

  • Private (プライベート) - プライベートサブネットのインスタンスは、プライベート NAT ゲートウェイを介して他の VPC またはオンプレミスのネットワークに接続できます。この場合、NAT ゲートウェイからのトラフィックを Transit Gateway または仮想プライベートゲートウェイ経由でルーティングできます。elastic IP アドレスをプライベート NAT ゲートウェイに関連付けることはできません。プライベート NAT ゲートウェイを使用して VPC にインターネットゲートウェイをアタッチできますが、プライベート NAT ゲートウェイからインターネットゲートウェイにトラフィックをルーティングすると、インターネットゲートウェイによってトラフィックがドロップされます。

プライベート NAT ゲートウェイとパブリック NAT ゲートウェイはどちらも、インスタンスの送信元プライベート IPv4 アドレスを NAT ゲートウェイのプライベート IPv4 アドレスにマッピングしますが、パブリック NAT ゲートウェイの場合、インターネットゲートウェイはパブリック NAT ゲートウェイのプライベート IPv4 アドレスを NAT ゲートウェイに関連付けられた Elastic IP アドレスにマッピングします。インスタンスに応答トラフィックを送信するとき、パブリック NAT ゲートウェイであってもプライベート NAT ゲートウェイであっても、NAT ゲートウェイはアドレスを元の送信元 IP アドレスに変換します。

重要

トラフィックをトランジットゲートウェイと仮想プライベートゲートウェイにルーティングするときは、パブリック NAT ゲートウェイまたはプライベート NAT ゲートウェイのいずれかを使用します。

プライベート NAT ゲートウェイを使用してトランジットゲートウェイまたは仮想プライベートゲートウェイに接続する場合、宛先へのトラフィックはプライベート NAT ゲートウェイのプライベート IP アドレスから送信されます。

パブリック NAT ゲートウェイを使用してトランジットゲートウェイまたは仮想プライベートゲートウェイに接続する場合、宛先へのトラフィックは、インターネットゲートウェイを使用していない限り、パブリック NAT ゲートウェイのプライベート IP アドレスから送信されます。パブリック NAT ゲートウェイは、インターネットゲートウェイと組み合わせて使用する場合、その EIP のみを送信元 IP アドレスとして使用します。

NAT ゲートウェイの基本

各 NAT ゲートウェイは、アベイラビリティーゾーン別に作成され、各ゾーンで冗長性を持たせて実装されます。各アベイラビリティーゾーンに作成できる NAT ゲートウェイの数にはクォータがあります。詳細については、「Amazon VPC クォータ」を参照してください

複数のアベイラビリティーゾーンにリソースがあって、1 つの NAT ゲートウェイを共有している場合、その NAT ゲートウェイが属するアベイラビリティーゾーンがダウンすると、その他のアベイラビリティーゾーンのリソースはインターネットにアクセスできなくなります。耐障害性を高めるには、各アベイラビリティーゾーンに NAT ゲートウェイを作成し、同じアベイラビリティーゾーンに属する NAT ゲートウェイがリソースで使用されるようにルーティングを設定します。

NAT ゲートウェイには、次の特性と規則が適用されます。

  • NAT ゲートウェイは、プロトコルとして TCP、UDP、ICMP をサポートします。

  • NAT ゲートウェイは IPv4 または IPv6 トラフィックでサポートされます。IPv6 トラフィックの場合、NAT ゲートウェイは NAT64 を実行します。これを DNS64 (Route 53 Resolver で利用可能) と組み合わせて使用することで、Amazon VPC のサブネット内の IPv6 ワークロードが IPv4 リソースと通信できます。これらの IPv4 サービスは、オンプレミス環境またはインターネット上の、同じ VPC (別のサブネット内) または別の VPC に存在することがあります。

  • NAT ゲートウェイは 5 Gbps の帯域幅をサポートし、100 Gbps まで自動的に拡張します。これ以上の帯域幅が必要な場合は、リソースを分割して複数のサブネットに配置し、サブネットごとに NAT ゲートウェイを作成できます。

  • NAT ゲートウェイは 1 秒あたり 100 万パケットを処理でき、自動的に 1 秒あたり 1,000 万パケットまで拡張できます。この制限を超えると、NAT ゲートウェイはパケットをドロップします。パケット損失を防ぐには、リソースを分割して複数のサブネットに配置し、サブネットごとに個別の NAT ゲートウェイを作成します。

  • 各 IPv4 アドレスは、固有の送信先それぞれに対して最大 55,000 の同時接続をサポートできます。固有の送信先は、送信先 IP アドレス、送信先ポート、およびプロトコル (TCP/UDP/ICMP) の一意の組み合わせで識別されます。この制限は、NAT ゲートウェイに最大 8 個の IPv4 アドレス (1 個のプライマリ IPv4 アドレスと 7 個のセカンダリ IPv4 アドレス) を関連付けることで、引き上げることができます。デフォルトで、パブリック NAT ゲートウェイに関連付ける Elastic IP アドレスは 2 個に制限されています。この制限は、クォータの調整をリクエストすることで引き上げることができます。詳細については、「Elastic IP アドレス」を参照してください。

  • NAT ゲートウェイに割り当てるプライベート IPv4 アドレスを選択するか、サブネットの IPv4 アドレス範囲からプライベート IPv4 アドレスを自動的に割り当てることができます。割り当てられたプライベート IPv4 アドレスは、プライベート NAT ゲートウェイを削除するまで維持されます。プライベート IPv4 アドレスをデタッチすることはできず、追加のプライベート IPv4 アドレスをアタッチすることもできません。

  • NAT ゲートウェイにセキュリティグループを関連付けることはできません。セキュリティグループをインスタンスに関連付けて、インバウンドトラフィックとアウトバウンドトラフィックをコントロールできます。

  • NAT ゲートウェイのサブネットに出入りするトラフィックを管理するには、ネットワーク ACL を使用できます。NAT ゲートウェイはポート 1024 ~ 65535 を使用します。詳細については、「ネットワーク ACL を使用してサブネットへのトラフィックを制御する」を参照してください。

  • NAT ゲートウェイでは、ネットワークインターフェイスが受信されます。インターフェイスに割り当てるプライベート IPv4 アドレスを選択するか、サブネットの IPv4 アドレス範囲から自動的に割り当てることができます。NAT ゲートウェイのネットワークインターフェイスは Amazon EC2 コンソールで参照できます。詳細については、「ネットワークインターフェイスに関する詳細の表示」を参照してください。このネットワークインターフェイスの属性を変更することはできません。

  • VPC ピアリング接続、Site-to-Site VPN 接続、または AWS Direct Connect を経由して NAT ゲートウェイにトラフィックをルーティングすることはできません。NAT ゲートウェイは、これらの接続の他方の側にあるリソースからは使用できません。

NAT ゲートウェイの使用を制御する

デフォルトでは、 ユーザーには NAT ゲートウェイを使用するためのアクセス権限がありません。NAT ゲートウェイを作成、説明、削除するアクセス許可をユーザーに付与するポリシーがアタッチされた IAM ロールを作成できます。詳細については、「Amazon VPC の Identity and Access Management」を参照してください。

NAT ゲートウェイの使用

Amazon VPC コンソールを使用して、NAT ゲートウェイを作成および管理できます。

NAT ゲートウェイの作成

NAT ゲートウェイを作成するには、以下の手順を実行します。

関連クォータ
  • アカウントに割り当てられた EIP の数を使い果たすと、パブリック NAT ゲートウェイを作成できなくなります。EIP クォータとクォータの調整方法については、「Elastic IP アドレス」を参照してください。

  • プライベート NAT ゲートウェイには、最大 8 個のプライベート IPv4 アドレスを割り当てることができます。デフォルトで、パブリック NAT ゲートウェイに関連付ける Elastic IP アドレスは 2 個に制限されています。この制限は、クォータの調整をリクエストすることで引き上げることができます。詳細については、「Elastic IP アドレス」を参照してください。

NAT ゲートウェイを作成するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [NAT ゲートウェイ] を選択します。

  3. [NAT ゲートウェイを作成] を選択します。

  4. (オプション) NAT ゲートウェイの名前を指定します。これにより、キーが Name、値は指定した名前であるタグが作成されます。

  5. NAT ゲートウェイを作成する先のサブネットを選択します。

  6. [接続タイプ] で、パブリック NAT ゲートウェイを作成する場合はデフォルトの [パブリック] が選択されたままにしておき、プライベート NAT ゲートウェイを作成する場合は [プライベート] を選択します。パブリック NAT ゲートウェイとプライベート NAT ゲートウェイの違いに関する詳細については、「NAT ゲートウェイ」を参照してください。

  7. [パブリック] を選択した場合は、以下の手順に従うか、ステップ 8 に進みます。

    1. [Elastic IP 割り当て ID] を選択して NAT ゲートウェイに EIP を割り当てるか、[Elastic IP を割り当て] を選択してパブリック NAT ゲートウェイの EIP を自動的に割り当てます。デフォルトで、パブリック NAT ゲートウェイに関連付ける Elastic IP アドレスは 2 個に制限されています。この制限は、クォータの調整をリクエストすることで引き上げることができます。詳細については、「Elastic IP アドレス」を参照してください。

    2. (オプション) [追加設定] を選択して、[プライマリプライベート IP アドレス - オプション] で NAT ゲートウェイのプライベート IPv4 アドレスを入力します。アドレスを入力しない場合は、AWS が自動的に、NAT ゲートウェイがあるサブネットからのプライベート IPv4 アドレスを NAT ゲートウェイにランダムに割り当てます。

    3. ステップ 11 に進みます。

  8. [プライベート] を選択した場合は、[追加設定][プライベート IPv4 アドレスの割り当て方法] で以下のいずれかを選択します。

    • [自動的に割り当て]: AWS は、NAT ゲートウェイのプライマリプライベート IPv4 アドレスを選択します。[自動割り当てのプライベート IPv4 アドレス数] には、NAT ゲートウェイのセカンダリプライベート IPv4 アドレスの数をオプションで指定できます。AWS は、NAT ゲートウェイのサブネットからこれらの IP アドレスをランダムに選択します。

    • [カスタム]: [プライマリプライベート IPv4 アドレス] で NAT ゲートウェイのプライマリプライベート IPv4 アドレスを選択します。[セカンダリプライベート IPv4 アドレス] には、オプションで NAT ゲートウェイに最大 7 つのセカンダリプライベート IPv4 アドレスを指定できます。

  9. ステップ 8 で [カスタム] を選択した場合は、このステップをスキップしてください。[自動割り当て] を選択した場合は、[自動で割り当てられたプライベート IP アドレスの数] で、AWS がこのプライベート NAT ゲートウェイに割り当てるセカンダリ IPv4 アドレスの数を選択します。IPv4 アドレスは、最大 7 個選択できます。

    注記

    セカンダリ IPv4 アドレスはオプションであり、NAT ゲートウェイを使用するワークロードの単一の送信先 (同じ送信先 IP、送信先ポート、およびプロトコル) への同時接続数が 55,000 個を超える場合に割り当てる、または割り振られる必要があります。セカンダリ IPv4 アドレスは利用可能なポート数を増やすことから、ワークロードが NAT ゲートウェイを使用して確立できる同時接続数の上限も増加します。

  10. ステップ 9 で [自動割り当て] を選択した場合は、このステップをスキップしてください。[カスタム] を選択した場合は、以下を実行します。

    1. [プライマリプライベート IPv4 アドレス] に、プライベート IPv4 アドレスを入力します。

    2. [セカンダプライベート IPv4 アドレス] に、最大 7 個のセカンダリプライベート IPv4 アドレスを入力します。

  11. (オプション) タグを NAT ゲートウェイに追加するには、[Add new tag] (新しいタグを追加) を選択し、キー名と値を入力します。最大 50 個のタグを追加できます。

  12. [NAT ゲートウェイを作成] を選択します。

  13. NAT ゲートウェイの初期ステータスは Pending です 。ステータスが Available に変わると、NAT ゲートウェイを使用できるようになります。必要に応じて、ルートテーブルを更新するようにしてください。例については、「NAT ゲートウェイのユースケース」を参照してください。

NAT ゲートウェイの状態が Failed である場合は、作成時にエラーが発生しています。詳細については、「NAT ゲートウェイの作成に失敗する」を参照してください。

セカンダリ IP アドレスの関連付けを編集する

各 IPv4 アドレスは、固有の送信先それぞれに対して最大 55,000 の同時接続をサポートできます。固有の送信先は、送信先 IP アドレス、送信先ポート、およびプロトコル (TCP/UDP/ICMP) の一意の組み合わせで識別されます。この制限は、NAT ゲートウェイに最大 8 個の IPv4 アドレス (1 個のプライマリ IPv4 アドレスと 7 個のセカンダリ IPv4 アドレス) を関連付けることで、引き上げることができます。デフォルトで、パブリック NAT ゲートウェイに関連付ける Elastic IP アドレスは 2 個に制限されています。この制限は、クォータの調整をリクエストすることで引き上げることができます。詳細については、「Elastic IP アドレス」を参照してください。

NAT ゲートウェイの CloudWatch メトリクスである ErrorPortAllocationPacketsDropCount を使用して、NAT ゲートウェイがポート割り当てエラーを生成しているかどうか、またはパケットをドロップしているかどうかを判断できます。この問題を解決するには、NAT ゲートウェイにセカンダリ IPv4 アドレスを追加します。

考慮事項
  • セカンダリプライベート IPv4 アドレスは、プライベート NAT ゲートウェイの作成時、またはこのセクションの手順を使用して NAT ゲートウェイを作成した後で追加できます。セカンダリ EIP アドレスをパブリック NAT ゲートウェイに追加できるのは、このセクションの手順を使用して NAT ゲートウェイを作成した後のみです。

  • NAT ゲートウェイには、最大 8 個の IPv4 アドレス (1 個のプライマリ IPv4 アドレスと 7 個のセカンダリ IPv4 アドレス) を関連付けることができます。プライベート NAT ゲートウェイには、最大 8 個のプライベート IPv4 アドレスを割り当てることができます。デフォルトで、パブリック NAT ゲートウェイに関連付ける Elastic IP アドレスは 2 個に制限されています。この制限は、クォータの調整をリクエストすることで引き上げることができます。詳細については、「Elastic IP アドレス」を参照してください。

セカンダリ IPv4 アドレスの関連付けを編集する
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [NAT ゲートウェイ] を選択します。

  3. セカンダリ IPv4 アドレスの関連付けを編集する NAT ゲートウェイを選択します。

  4. [アクション] を選択してから、[セカンダリ IP アドレスの関連付けを編集] を選択します。

  5. プライベート NAT ゲートウェイのセカンダリ IPv4 アドレスの関連付けを編集している場合は、[アクション][新しい IPv4 アドレスの割り当て] または [既存の IPv4 アドレスの割り当てを解除する] を選択します。パブリック NAT ゲートウェイのセカンダリ IPv4 アドレスの関連付けを編集している場合は、[アクション][新しい IPv4 アドレスの関連付け] または [既存の IPv4 アドレスの関連付けを解除する] を選択します。

  6. 以下のいずれかを実行します。

    • 新しい IPv4 アドレスの割り当てまたは関連付けを選択した場合は、以下を実行します。

      1. このステップは必須です。プライベート IPv4 アドレスを選択する必要があります。[プライベート IPv4 アドレスの割り当て方法] を選択します。

        • [自動割り当て]: AWS がプライマリプライベート IPv4 アドレスを自動的に選択します。AWS が NAT ゲートウェイに割り当てるセカンダリプライベート IPv4 アドレス (最大 7 個) を割り当てるかどうかはユーザーが選択します。AWS は自動的に、NAT ゲートウェイがあるサブネットからのアドレスをランダムに選択して割り当てます。

        • [カスタム]: NAT ゲートウェイに割り当てるプライマリプライベート IPv4 アドレスと、最大 7 個のセカンダリプライベート IPv4 アドレスを選択します。

      2. [Elastic IP 割り当て ID] で、セカンダリ IPv4 アドレスとして追加する EIP を選択します。このステップは必須です。プライベート IPv4 アドレスとともに、EIP も選択する必要があります。[プライベート IP アドレスの割り当て方法][カスタム] を選択した場合は、追加する EIP ごとにプライベート IPv4 アドレスを入力する必要もあります。

      NAT ゲートウェイには、最大 8 個の IP アドレスを関連付けることができます。これがパブリック NAT ゲートウェイである場合、リージョンあたりの EIP 数にデフォルトのクォータ制限があります。詳細については、「Elastic IP アドレス」を参照してください。

    • 新しい IPv4 アドレスの割り当ての解除、または関連付けの解除を選択した場合は、以下を実行します。

      1. [割り当てを解除する既存のセカンダリ IP アドレス] で、割り当てを解除するセカンダリ IP アドレスを選択します。

      2. (オプション) [接続ドレイン期間] には、接続がまだ進行中の場合に IP アドレスを強制的に解放するまでの最大待機時間 (秒単位) を入力します。値を指定しない場合のデフォルト値は 350 秒です。

  7. [Save changes] (変更の保存) をクリックします。

NAT ゲートウェイの状態が Failed である場合は、作成時にエラーが発生しています。詳細については、「NAT ゲートウェイの作成に失敗する」を参照してください

NAT ゲートウェイのタグ付け

NAT ゲートウェイを識別したり、組織のニーズに応じて分類するのに役立つように、NAT ゲートウェイにタグを付けることができます。タグの使用の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの、「Amazon EC2 リソースのタグ付け」を参照してください。

コスト割り当てタグは、NAT ゲートウェイでサポートされます。そのため、タグを使用して AWS 請求書を整理し、自分のコスト構造を反映することもできます。詳細については、AWS Billing ユーザーガイド の「コスト配分タグの使用」を参照してください。タグによるコスト配分レポートの設定の詳細については、「AWS アカウント請求について」の「毎月のコスト配分レポート」に関する記事を参照してください。

NAT ゲートウェイにタグを付ける
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [NAT ゲートウェイ] を選択します。

  3. タグ付けする NAT ゲートウェイを選択し、[アクション] を選択します。次に、[タグを管理] を選択します。

  4. [新しいタグを追加] を選択して、タグの [キー][値] を定義します。最大 50 個のタグを追加できます。

  5. [保存] を選択します。

NAT ゲートウェイの削除

不要になった NAT ゲートウェイは削除できます。NAT ゲートウェイを削除すると、そのエントリは Amazon VPC コンソールに 1 時間ほど表示され続けますが、その後自動的に削除されます。このエントリを手動で削除することはできません。

NAT ゲートウェイを削除すると、Elastic IP アドレスとの関連付けは解除されますが、アドレスはアカウントから解放されません。NAT ゲートウェイを削除する場合、NAT ゲートウェイのルートを削除または更新するまで、ルートの状態は blackhole になります。

NAT ゲートウェイを削除するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [NAT ゲートウェイ] を選択します。

  3. NAT ゲートウェイのラジオボタンを選択し、[ アクション ]、[ NAT ゲートウェイの削除 ] の順に選択します。

  4. 確認を求められたら、「delete」と入力し、[削除] を選択します。

  5. NAT ゲートウェイに関連付けられた Elastic IP アドレスが不要になった場合は、そのアドレスを解放することをお勧めします。詳細については、「Elastic IP アドレスをリリース」を参照してください。

API と CLI の概要

このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンドラインインターフェイスの詳細と利用可能な API オペレーションの一覧については、「Amazon EC2 の使用」を参照してください。

プライベート NAT ゲートウェイにプライベート IPv4 アドレスを割り当てる
Elastic IP アドレス (EIP) とプライベート IPv4 アドレスをパブリック NAT ゲートウェイに関連付ける
NAT ゲートウェイを作成する
NAT ゲートウェイを削除する
NAT ゲートウェイを記述する
パブリック NAT ゲートウェイからセカンダリ Elastic IP アドレス (EIP) の関連付けを解除する
NAT ゲートウェイにタグを付ける
プライベート NAT ゲートウェイからセカンダリ IPv4 アドレスの割り当てを解除する

料金

NAT ゲートウェイをプロビジョンすると、NAT ゲートウェイが使用可能な時間 1 時間ごと、およびゲートウェイが処理するデータ 1 GB ごとに課金されます。詳細については、「Amazon VPC の料金」を参照してください。

次の戦略は、NAT ゲートウェイのデータ転送料金を削減するのに役立ちます。

  • AWS リソースがアベイラビリティーゾーン全体で大量のトラフィックを送受信する場合は、リソースが NAT ゲートウェイと同じアベイラビリティーゾーンにあることを確認してください。または、リソースがある各アベイラビリティーゾーンに NAT ゲートウェイを作成します。

  • NAT ゲートウェイを経由するトラフィックのほとんどが、インターフェイスエンドポイントまたはゲートウェイエンドポイントをサポートする AWS サービスへのものである場合、これらのサービスのためにインターフェイスエンドポイントまたはゲートウェイエンドポイントの作成を検討してください。コスト削減の可能性については、「AWS PrivateLink 料金」を参照してください。