メニュー
Amazon Virtual Private Cloud
ユーザーガイド

NAT ゲートウェイ

ネットワークアドレス変換 (NAT) ゲートウェイを使用して、プライベートサブネットのインスタンスからはインターネットや他の AWS サービスに接続できるが、インターネットからはこれらのインスタンスとの接続を開始できないようにすることができます。NAT の詳細については、「NAT」を参照してください。

アカウントで NAT ゲートウェイを作成して使用するには料金がかかります。NAT ゲートウェイの時間単位の使用料金とデータ処理料金が適用されます。Amazon EC2 データ転送料金も適用されます。詳細については、「Amazon VPC 料金表」を参照してください。

NAT ゲートウェイは IPv6 トラフィックには対応していないため、Egress-Only インターネットゲートウェイを使用します。詳細については、「Egress-Only インターネットゲートウェイ」を参照してください。

NAT ゲートウェイの基本

NAT ゲートウェイを作成するには、NAT ゲートウェイの常駐先のパブリックサブネットを指定する必要があります。パブリックサブネットとプライベートサブネットの詳細については、「サブネットのルーティング」を参照してください。NAT ゲートウェイに関連付ける Elastic IP アドレスも、ゲートウェイの作成時に指定する必要があります。NAT ゲートウェイを作成したら、プライベートサブネットの 1 つ以上に関連付けられているルートテーブルを更新し、インターネット向けトラフィックを NAT ゲートウェイに向かわせる必要があります。これにより、プライベートサブネットのインスタンスがインターネットと通信できるようになります。

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

注記

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

不要になった NAT ゲートウェイは削除できます。NAT ゲートウェイを削除すると、Elastic IP アドレスとの関連付けは解除されますが、アドレスはアカウントから解放されません。

NAT ゲートウェイには次の特徴があります。

  • NAT ゲートウェイは、バーストが最大 10 Gbps の帯域幅をサポートします。10 Gbps を超えるバーストが必要な場合は、リソースを分割して複数のサブネットに配置し、サブネットごとに NAT ゲートウェイを作成することで、ワークロードを分散できます。

  • NAT ゲートウェイごとに 1 つだけの Elastic IP アドレスを関連付けることができます。作成後に NAT ゲートウェイから Elastic IP アドレスの関連付けを解除することはできません。別の Elastic IP アドレスを使用する場合は、新しい NAT ゲートウェイを作成してそのアドレスを関連付け、ルートテーブルを更新します。既存の NAT インスタンスが不要になった場合は、それを削除します。

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

  • NAT ゲートウェイにセキュリティグループを関連付けることはできません。セキュリティグループは、プライベートサブネットのインスタンスに対して使用し、それらのインスタンスに出入りするトラフィックを管理できます。

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

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

  • NAT ゲートウェイは、VPC に関連付けられている ClassicLink 接続からはアクセスできません。

次の図は、NAT ゲートウェイを使用した VPC のアーキテクチャを示しています。メインルートテーブルは、プライベートサブネットのインスタンスから NAT ゲートウェイにインターネットトラフィックを送信します。NAT ゲートウェイは、NAT ゲートウェイの Elastic IP アドレスをソース IP アドレスとして使用し、インターネットゲートウェイにトラフィックを送信します。

 パブリックおよびプライベートサブネットの VPC と NAT ゲートウェイ

NAT インスタンスからの移行

現在使用している NAT インスタンスを NAT ゲートウェイに置き換えることができます。これを行うには、NAT インスタンスと同じサブネットに NAT ゲートウェイを作成し、ルートテーブルを NAT インスタンスを指す既存のルートから NAT ゲートウェイを指すルートに置き換えます。現在 NAT インスタンスで使用している同じ Elastic IP アドレスを NAT ゲートウェイで使用する場合は、まず NAT インスタンスに関連付けられている Elastic IP アドレスを解除し、そのアドレスを NAT ゲートウェイの作成時にゲートウェイに関連付けます。

注記

NAT インスタンスから NAT ゲートウェイにルーティングを変更したり、NAT インスタンスに関連付けられている Elastic IP アドレスを解除したりすると、現在の接続は切断されるため、再接続する必要があります。重要なタスク (または NAT インスタンスを介してその他のタスク) が実行中でないことを確認してください。

VPC エンドポイント、VPN、AWS Direct Connect、VPC ピア接続での NAT ゲートウェイの使用

NAT ゲートウェイは、VPC エンドポイント、VPN 接続、AWS Direct Connect、または VPC ピア接続を通じてトラフィックを送信できません。プライベートサブネットのインスタンスから VPC エンドポイント、VPN 接続、または AWS Direct Connect を通じてリソースにアクセスする場合は、プライベートサブネットのルートテーブルを使用して、これらのデバイスに直接トラフィックをルーティングします。

たとえば、プライベートサブネットのルートテーブルのルートでは、インターネット向けトラフィック (0.0.0.0/0) は NAT ゲートウェイにルーティングされ、Amazon S3 トラフィック (pl-xxxxxxxx: Amazon S3 の特定の IPアドレス範囲) は VPC エンドポイントにルーティングされ、10.25.0.0/16 トラフィックは VPC ピア接続にルーティングされます。pl-xxxxxxxx と 10.25.0.0/16 の IP アドレス範囲は 0.0.0.0/0 より具体的です。インスタンスから Amazon S3 またはピア接続 VPC にトラフィックを送信すると、トラフィックは VPC エンドポイントまたは VPC ピア接続に送信されます。インスタンスからインターネット (Amazon S3 IP アドレス以外) にトラフィックを送信すると、トラフィックは NAT ゲートウェイに送信されます。

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

NAT ゲートウェイの使用

Amazon VPC コンソールを使用して NAT ゲートウェイの作成、表示、削除ができます。Amazon VPC ウィザードを使用して、パブリックサブネット、プライベートサブネット、NAT ゲートウェイを使う VPC を作成することもできます。詳細については、「シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC (NAT) 」を参照してください。

NAT ゲートウェイの作成

NAT ゲートウェイを作成するには、サブネットと Elastic IP アドレスを指定する必要があります。Elastic IP アドレスが、現在インスタンスやネットワークインターフェイスに関連付けられていないことを確認します。NAT インスタンスから NAT ゲートウェイに移行し、NAT インスタンスの Elastic IP アドレスを引き継ぐ場合は、まず NAT インスタンスに関連付けられているアドレスを解除する必要があります。

NAT ゲートウェイを作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[NAT ゲートウェイ]、[NAT ゲートウェイの作成] の順に選択します。

  3. ダイアログボックスで、NAT ゲートウェイを作成する先のサブネットを指定し、NAT ゲートウェイに関連付ける Elastic IP アドレスを選択します。終了したら、[NAT ゲートウェイの作成] を選択します。

  4. NAT ゲートウェイがコンソールに表示されます。まもなく NAT ゲートウェイの状態が Available に変わり、NAT ゲートウェイが利用可能になります。

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

ルートテーブルの更新

NAT ゲートウェイを作成したら、プライベートサブネットのルートテーブルを更新して、インターネットトラフィックを NAT ゲートウェイに向かわせる必要があります。AWS では、トラフィックと一致する最も具体的なルートを使用して、トラフィックをルーティングする方法を決定します (最長プレフィックス一致)。詳細については、「ルーティングの優先度」を参照してください。

NAT ゲートウェイへのルートを作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[ルートテーブル] を選択します。

  3. プライベートサブネットに関連付けられているルートテーブルを選択し、[ルート]、[編集] の順に選択します。

  4. [別ルートの追加] を選択します。[送信先] に「0.0.0.0/0」と入力します。[ターゲット] で、NAT ゲートウェイの ID を選択します。

    注記

    NAT インスタンスから移行する場合は、NAT インスタンスを指す現在のルートを NAT ゲートウェイを指すルートに置き換えます。

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

NAT ゲートウェイからインターネットにアクセスできるためには、NAT ゲートウェイがあるサブネットに関連付けられているルートテーブルに、インターネットトラフィックをインターネットゲートウェイに向かわせるルートが含まれている必要があります。詳細については、「カスタムルートテーブルを作成する」を参照してください。NAT ゲートウェイを削除する場合、NAT ゲートウェイのルートを削除または更新するまで、ルートの状態は blackhole になります。詳細については、「ルートテーブルでルートを追加および削除する」を参照してください。

NAT ゲートウェイの削除

Amazon VPC コンソールを使用して NAT ゲートウェイを削除できます。NAT ゲートウェイを削除すると、そのエントリは Amazon VPC コンソールに引き続き短時間 (通常は 1 時間) 表示された後で、自動的に削除されます。このエントリを手動で削除することはできません。

NAT ゲートウェイを削除するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

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

  3. NAT ゲートウェイを選択し、[NAT ゲートウェイの削除] を選択します。

  4. 確認ダイアログボックスで、[NAT ゲートウェイの削除] を選択します。

NAT ゲートウェイのテスト

NAT ゲートウェイを作成してルートテーブルを更新したら、プライベートサブネットのインスタンスからインターネットに ping を送信し、インスタンスがインターネットに接続できることをテストします。これを行う方法の例については、「インターネット接続のテスト」を参照してください。

インターネットに接続できる場合は、さらに以下のテストを実行して、インターネットトラフィックが NAT ゲートウェイを介してルーティングされているかどうかを判断できます。

  • プライベートサブネットのインスタンスからのトラフィックのルートを追跡できます。これを行うには、プライベートサブネットの Linux インスタンスから traceroute コマンドを実行します。出力で、NAT ゲートウェイのプライベート IP アドレスがホップのいずれか (通常は最初のホップ) に表示されます。

  • プライベートサブネットのインスタンスから接続すると、ソース IP アドレスが表示されるようなサードパーティのウェブサイトやツールを使用します。ソース IP アドレスとして NAT ゲートウェイの Elastic IP アドレスが表示される必要があります。NAT ゲートウェイの Elastic IP アドレスとプライベート IP アドレスの情報は、Amazon VPC コンソールの [NAT Gateways] ページで確認できます。

上のテストが失敗した場合は、「NAT ゲートウェイのトラブルシューティング」を参照してください。

インターネット接続のテスト

次の例は、プライベートサブネットのインスタンスからインターネットに接続できるかどうかをテストする方法を示しています。

  1. パブリックサブネットのインスタンスを起動します (これを踏み台サーバーとして使用します)。詳細については、「サブネット内にインスタンスを起動する」を参照してください。起動ウィザードで、Amazon Linux AMI を選択し、インスタンスにパブリック IP アドレスを割り当てます。ローカルネットワークの IP アドレス範囲からのインバウンド SSH トラフィック (このテストには 0.0.0.0/0 を使用できます) とプライベートサブネットの IP アドレス範囲への SSH トラフィックが、セキュリティグループのルールで許可されていることを確認します。

  2. プライベートサブネットのインスタンスを起動します。起動ウィザードで、Amazon Linux AMI を選択します。インスタンスにパブリック IP アドレスを割り当てないでください。パブリックサブネットで起動したインスタンスの IP アドレスからのインバウンド SSH トラフィックとすべてのアウトバウンド ICMP トラフィックが、セキュリティグループのルールで許可されていることを確認します。パブリックサブネットのインスタンスの起動に使用したのと同じキーペアを選択する必要があります。

  3. ローカルコンピュータの SSH エージェント転送を設定し、パブリックサブネットの踏み台サーバーに接続します。詳細については、「Linux または OS X の SSH エージェント転送を設定するには」または「Windows (PuTTY) 用に SSH エージェント転送を設定するには」を参照してください。

  4. 踏み台サーバーからプライベートサブネットのインスタンスに接続し、プライベートサブネットのインスタンスからインターネット接続をテストします。詳細については、「インターネット接続をテストするには」を参照してください。

Linux または OS X の SSH エージェント転送を設定するには

  1. ローカルマシンから、認証エージェントにプライベートキーを追加します。

    Linux の場合、次のコマンドを使用します。

    Copy
    ssh-add -c mykeypair.pem

    OS X の場合、次のコマンドを使用します。

    Copy
    ssh-add -K mykeypair.pem
  2. -A オプションを使用してパブリックサブネットのインスタンスに接続して SSH エージェント転送を有効にし、インスタンスのパブリックアドレスを使用します。次に例を示します。

    Copy
    ssh -A ec2-user@54.0.0.123

Windows (PuTTY) 用に SSH エージェント転送を設定するには

  1. 既にインストールされていない場合は、PuTTY のダウンロードページから Pageant をダウンロードしてインストールします。

  2. プライベートキーを .ppk 形式に変換します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「PuTTYgen を使用した秘密キーの変換」を参照してください。

  3. Pageant を起動し、タスクバーの Pageant アイコン (非表示の場合があります) を右クリックして、[Add Key] を選択します。作成した .ppk ファイルを選択し、必要に応じてパスフレーズを入力して、[Open] を選択します。

  4. PuTTY セッションを開始し、パブリック IP アドレスを使用してパブリックサブネットのインスタンスに接続します。詳細については、「PuTTY セッションの開始」を参照してください。[Auth] カテゴリで、必ず [Allow agent forwarding] オプションを選択し、[Private key file for authentication] フィールドは空のままにします。

インターネット接続をテストするには

  1. パブリックサブネットのインスタンスから、プライベート IP アドレスを使用して、プライベートサブネットのインスタンスに接続します。次に例を示します。

    Copy
    ssh ec2-user@10.0.1.123
  2. プライベートインスタンスから、ICMP が有効なウェブサイトに対して ping コマンドを実行して、インターネットに接続できることをテストします。次に例を示します。

    Copy
    ping ietf.org PING ietf.org (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms ...

    ping コマンドをキャンセルするには、Ctrl + C を押します。ping コマンドが失敗した場合は、「プライベートサブネットのインスタンスからインターネットにアクセスできない」を参照してください。

  3. (オプション) インスタンスが不要になった場合は、それを終了します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスの終了」を参照してください。

NAT ゲートウェイのトラブルシューティング

以下のトピックでは、NAT ゲートウェイの作成時や使用時によく発生する場合がある問題のトラブルシューティングについて説明します。

NAT ゲートウェイの状態が Failed になる

NAT ゲートウェイを作成してその状態が Failed になった場合は、作成時にエラーが発生しています。エラーメッセージを表示するには、Amazon VPC コンソールに移動し、[NAT ゲートウェイ] を選択して NAT ゲートウェイを選択します。エラーメッセージは、詳細ペインの [NAT ゲートウェイ] フィールドに表示されます。

注記

失敗した NAT ゲートウェイは、まもなく (通常は約 1 時間後) 自動的に削除されます。

次の表は、Amazon VPC コンソールに示される失敗の考えられる原因のリストです。示された修復手順のいずれかを適用したら、NAT ゲートウェイの作成を再度試すことができます。

表示されるエラー 理由 修復手順
この NAT ゲートウェイを作成するための十分な空きアドレスがサブネットにありません 指定したサブネットに空きプライベート IP アドレスがありません。NAT ゲートウェイには、サブネットの範囲からプライベート IP アドレスが割り当てられたネットワークインターフェイスが必要です。 サブネットで利用可能な IP アドレスの数を確認するには、Amazon VPC コンソールの [サブネット] ページに移動し、サブネットの詳細ペインで [利用可能な IP] フィールドを参照します。サブネットで空き IP アドレスを作成するには、使用されていないネットワークインターフェイスを削除するか、必要でないインスタンスを終了することができます。
ネットワーク vpc-xxxxxxxx にインターネットゲートウェイがアタッチされていません NAT ゲートウェイは、インターネットゲートウェイがアタッチされた VPC で作成する必要があります。 インターネットゲートウェイを作成して VPC にアタッチします。詳細については、「インターネットゲートウェイをアタッチする」を参照してください。
この NAT ゲートウェイに Elastic IP アドレス eipalloc-xxxxxxxx を関連付けられませんでした 指定した Elastic IP アドレスが存在しないか、見つかりませんでした。 Elastic IP アドレスの割り当て ID を調べて正しく入力されていることを確認します。NAT ゲートウェイを作成しているのと同じリージョンにある Elastic IP アドレスを指定していることを確認します。
Elastic IP アドレス eipalloc-xxxxxxxx はすでに関連付けられています 指定した Elastic IP アドレスが別のリソースにすでに関連付けられていて、NAT ゲートウェイに関連付けることはできません。 Elastic IP アドレスに関連付けられているリソースを確認するには、Amazon VPC コンソールの [Elastic IP] ページに移動し、インスタンス ID またはネットワークインターフェイス ID に指定されている値を参照します。特定のリソースの Elastic IP アドレスが必要ない場合は、その関連付けを解除できます。また、アカウントに新しい Elastic IP アドレスを割り当てることもできます。詳細については、「Elastic IP アドレスの操作」を参照してください。
この NAT ゲートウェイで作成され、内部で使用されているネットワークインターフェイス eni-xxxxxxxx が無効な状態です。もう一度試してください。 NAT ゲートウェイのネットワークインターフェイスの作成中または使用中に問題が発生しました。 このエラーは修正できません。NAT ゲートウェイを作成し直してください。

Elastic IP アドレスまたは NAT ゲートウェイの制限に達した

Elastic IP アドレスの制限に達した場合は、別のリソースに関連付けられている Elastic IP アドレスを解除するか、Amazon VPC 制限フォームを使用して制限の引き上げをリクエストできます。

NAT ゲートウェイの制限に達した場合は、次のいずれかを行うことができます。

  • Amazon VPC 制限フォームを使用して制限の引き上げをリクエストします。NAT ゲートウェイの制限はアベイラビリティーゾーンごとに適用されます。

  • NAT ゲートウェイの状態を確認します。状態が PendingAvailableDeleting のゲートウェイは制限数に含まれます。最近 NAT ゲートウェイを削除した場合は、少し待って状態が Deleting から Deleted に変わってから、新しい NAT ゲートウェイを作成してみます。

  • 特定のアベイラビリティーゾーンの NAT ゲートウェイが不要な場合は、まだ制限に達していないアベイラビリティーゾーンで NAT ゲートウェイを作成してみます。

の制限事項の詳細については、「Amazon VPC の制限」を参照してください。

アベイラビリティーゾーンがサポートされていない (NotAvailableInZone)

場合によっては、制約のあるアベイラビリティーゾーン (当社による拡張に制限があるゾーン) で NAT ゲートウェイを作成しようとしている可能性があります。これらのゾーンでは NAT ゲートウェイをサポートできません。別のアベイラビリティーゾーンで NAT ゲートウェイを作成し、それを制約のあるゾーンのプライベートサブネットで使用できます。リソースを制約のないアベイラビリティーゾーンに移動し、リソースと NAT ゲートウェイのアベイラビリティーゾーンを同じにすることができます。

作成した NAT ゲートウェイが表示されなくなった

NAT ゲートウェイの作成時にエラーが発生した可能性があり、作成が失敗しました。状態が failed の NAT ゲートウェイは VPC コンソールに短時間 (通常は 1 時間) 表示された後で、自動的に削除されます。「NAT ゲートウェイの状態が Failed になる」の情報を確認し、新しい NAT ゲートウェイを作成してみてください。

NAT ゲートウェイが ping コマンドに応答しない

NAT ゲートウェイの Elastic IP アドレスまたはプライベート IP アドレスに、インターネット (家庭用コンピュータなど) や VPC のインスタンスから ping を送信しても、応答がありません。NAT ゲートウェイは、プライベートサブネットのインスタンスからインターネットへのトラフィックのみを渡します。

NAT ゲートウェイが動作していることをテストするには、「NAT ゲートウェイのテスト」を参照してください。

プライベートサブネットのインスタンスからインターネットにアクセスできない

上記の NAT ゲートウェイのテスト手順を実行して ping コマンドが失敗するか、インスタンスからインターネットにアクセスできない場合は、次の情報を確認します。

  • NAT ゲートウェイの状態が Available であることを確認します。Amazon VPC コンソールで、[NAT ゲートウェイ] に移動し、詳細ペインの状態情報を参照してください。NAT ゲートウェイの状態が failed である場合は、作成時にエラーがが発生した可能性があります。詳細については、「NAT ゲートウェイの状態が Failed になる」を参照してください。

  • ルートテーブルが正しく設定されていることを確認します。

    • NAT ゲートウェイはパブリックサブネット内にあって、インターネットトラフィックがインターネットゲートウェイにルーティングされるようにルートテーブルが設定されている必要があります。詳細については、「カスタムルートテーブルを作成する」を参照してください。

    • インスタンスはプライベートサブネット内にあって、インターネットトラフィックが NAT ゲートウェイにルーティングされるようにルートテーブルが設定されている必要があります。詳細については、「ルートテーブルの更新」を参照してください。

    • インターネットトラフィックの全体または一部を NAT ゲートウェイの代わりに別のデバイスにルーティングするようなエントリがルートテーブルに含まれていないことを確認します。

  • プライベートインスタンスのセキュリティグループルールにより、アウトバウンドインターネットトラフィックが許可されていることを確認します。ping コマンドを使用するには、ルールにより、アウトバウンド ICMP トラフィックも許可されている必要があります。

    注記

    NAT ゲートウェイ自体は、アウトバウンドリクエストと、アウントバウンドリクエストに応じて受信されるトラフィックのすべてを許可します (つまり、ステートフルです)。

  • パブリックサブネットとプライベートサブネットに関連付けられているネットワーク ACL に、インバウンドまたはアウトバウンドのインターネットトラフィックをブロックするルールが含まれていないことを確認します。ping コマンドを使用するには、ルールにより、インバウンドおよびアウトバウンドの ICMP トラフィックも許可されている必要があります。

    注記

    ネットワーク ACL やセキュリティグループのルールによって削除された接続の診断には、フローログを役立てることができます。詳細については、「VPC フローログ」を参照してください。

  • ping コマンドは、必ず ICMP が有効になっているウェブサイトに対して実行してください。そうでない場合、応答パケットを受け取ることはできません。これをテストするには、自分のコンピュータのコマンドラインターミナルから同じ ping コマンドを実行します。

  • インスタンスから他のリソース (プライベートサブネットの他のインスタンスなど) に ping を実行できることを確認します (セキュリティグループルールにより、これが許可されている場合)。

  • 接続に TCP、UDP、または ICMP プロトコルのみが使用されていることを確認します。

特定のエンドポイントへの TCP 接続が失敗する

他のエンドポイントへの TCP 接続は通常動作しているものの、特定のエンドポイントまたはホストへの TCP 接続が失敗する場合、接続しようとしているエンドポイントがフラグメント化された TCP パケットに応答するかどうかを確認してください。NAT ゲートウェイは現在 TCP の IP フラグメント化をサポートしていません。詳細については、「NAT インスタンスと NAT ゲートウェイの比較」を参照してください。

エンドポイントがフラグメント化された TCP パケットを送信するかどうかを確認するには、パブリック IP アドレスを持つパブリックサブネット内のインスタンスを使用して次の操作をします。

  • 特定のエンドポイントからのフラグメント化が発生するのに十分な大きさのレスポンスをトリガーします。

  • エンドポイントがフラグメント化したパケットを送信していることを確認するため、tcpdump ユーティリティを使用します。

重要

このチェックを実行するにはパブリックサブネットでインスタンスを使用する必要があります。元の接続が失敗したインスタンス、または NAT ゲートウェイまたは NAT インスタンスの背後にあるプライベートサブネットのインスタンスは使用できません。

エンドポイントがフラグメント化された TCP パケットを送信している場合、NAT ゲートウェイの代わりに NAT インスタンスを使用できます。

注記

NAT ゲートウェイも ICMP プロトコルの IP フラグメント化をサポートしていません。大きな ICMP パケットを送信、または受信する診断ツールによって、パケット損失を報告します。たとえば、この ping -s 10000 example.com コマンドは NAT ゲートウェイの背後では機能しません。

Traceroute の出力に NAT ゲートウェイのプライベート IP アドレスが表示されない

インスタンスからインターネットにアクセスできるが、traceroute コマンドを実行すると、出力に NAT ゲートウェイのプライベート IP アドレスが表示されません。この場合、インスタンスはインターネットゲートウェイなどの別のデバイスを使用してインターネットにアクセスしています。インスタンスがあるサブネットのルートテーブルで、次の情報を確認します。

  • インターネットトラフィックを NAT ゲートウェイに送信するルートがあることを確認します。

  • インターネットトラフィックを他の機器 (仮想プライベートゲートウェイやインターネットゲートウェイなど) に送信するためのより具体的なルートがないことを確認します。

インターネット接続が 5 分後に中断される

NAT ゲートウェイを使用する接続が 5分以上アイドル状態のままであると、接続はタイムアウトします。追加のトラフィックを開始して接続を維持するか、TCP キープアライブを使用して接続の中断を防ぐことができます。

IPSec 接続を確立できない

NAT ゲートウェイは現在 IPSec プロトコルをサポートしていません。

送信先への追加の接続を開始できない

同時接続数が上限に達した可能性があります。NAT ゲートウェイは送信先別に最大 65,000 の同時接続をサポートできます。プライベートサブネットのインスタンスで多数の接続が作成されると、この上限に達する場合があります。次のいずれかを試すことができます。

  • アベイラビリティゾーンごとに NAT ゲートウェイを作成し、各ゾーンにクライアントを分散してください。

  • パブリックサブネットで追加の NAT ゲートウェイを作成し、クライアントを複数のプライベートサブネットに分散して、それぞれに別の NAT ゲートウェイへのルートを設定します。

  • 送信先に対してクライアントが作成できる接続の数を制限します。

  • アイドル状態の接続を閉じて容量を解放します。

注記

送信先 IP アドレス、送信先ポート、またはプロトコル (TCP/UDP/ICMP) が変更された場合は、追加の 65,000 の接続を作成できます。

NAT ゲートウェイの使用の管理

デフォルトでは、IAM ユーザーには NAT ゲートウェイを使用するためのアクセス権限がありません。NAT ゲートウェイを作成、説明、削除するアクセス権限をユーザーに付与するための IAM ユーザーポリシーを作成できます。現在、ec2:*NatGateway* API オペレーションのいずれに対しても、リソースレベルのアクセス権限はサポートされていません。Amazon VPC の IAM ポリシーの詳細については、「Amazon VPC のリソースに対するアクセスの制御」を参照してください。

API と CLI の概要

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

NAT ゲートウェイの作成

NAT ゲートウェイの説明

NAT ゲートウェイの削除