プライベート VPC で NAT ゲートウェイを使用する際の接続に関する問題をトラブルシューティングするにはどうすればよいですか?
最終更新日: 2022 年 4 月 12 日
NAT ゲートウェイを使用して、プライベート Virtual Private Cloud (Amazon VPC) サブネット内のインスタンスをインターネットに接続しようとしています。インスタンスに断続的な接続の問題が発生しています。どうすれば解決できますか?
簡単な説明
プライベートサブネットのリソースでは、次の理由により、断続的な接続タイムアウトの問題が発生することがあります。
- ネットワークアクセスコントロールリスト (ACL) ルール。
- NAT ゲートウェイでの ErrorPortAllocation エラー。
- クライアントインスタンスのポートの枯渇。
プライベートサブネットのリソースでは、次の理由により、接続が突然切断されることがあります。
- 容量を解放するための IdleTimeoutCount エラー。
プライベートサブネットのリソースでは、次の理由により、速度が低下することがあります。
- NAT ゲートウェイごとの帯域幅制限。
解決方法
プライベートサブネットのリソースで断続的な接続タイムアウトの問題が発生している
ネットワーク ACL ルール
NAT ゲートウェイが存在するパブリックサブネットに関連付けられたネットワーク ACL で、エフェメラルポート範囲 (1024~65535) からのトラフィックが許可されていることを確認します。ネットワーク ACL でエフェメラルポート範囲のサブセットのみが許可され、プライベートサブネット内のインスタンスがその範囲外の送信元ポートを使用する場合、トラフィックはドロップされます。ネットワーク ACL の設定方法の詳細については、「パブリックサブネットとプライベートサブネット (NAT) を持つ VPC の推奨ネットワーク ACL ルール」を参照してください。
NAT ゲートウェイでの ErrorPortAllocation エラー
このエラーの詳細については、「NAT ゲートウェイで ErrorPortAllocation エラーを解決するにはどうすればよいですか?」を参照してください。
クライアントインスタンスのポートの枯渇
プライベートサブネット内のクライアントインスタンスが、オペレーティングシステムレベルの接続制限に達しているかどうかを確認します。アクティブな接続数を確認するには、netstat コマンドを実行します。
Linux:
netstat -ano | grep ESTABLISHED | wc --l
netstat -ano | grep TIME_WAIT | wc --l
Windows:
netstat -ano | find /i "estab" /c
netstat -ano | find /i "TIME_WAIT" /c
前述のコマンドで、許可されたローカルポート範囲 (クライアント接続のソースポート) に近い値が返された場合は、ポートが枯渇している可能性があります。
ポートの枯渇を抑えるには、次の手順を実行します。
- 使用可能な接続をドレインするアプリケーションレベルの問題を解決します。
- 次のコマンドを実行して、オペレーティングシステムのローカル (エフェメラル) ポート範囲を拡大します。
net.ipv4.ip_local_port_range = 1025 61000
プライベートサブネットのリソースで突然接続が切断される
容量を解放するための IdleTimeoutCount エラー
NAT ゲートウェイを使用する接続が 350 秒以上アイドル状態になると、接続がタイムアウトし、IdleTimeoutCount メトリクスが急増します。接続がタイムアウトすると、NAT ゲートウェイは、接続の継続を試みる NAT ゲートウェイの背後のリソースに RST パケットを返します。NAT ゲートウェイは FIN パケットを送信しません。
IdleTimeoutCount エラーの回避策は次のとおりです。
- Amazon CloudWatch の IdleTimeoutCount メトリクスを使用して、アイドル接続の増加をモニタリングします。CloudWatch Contributor Insights を設定して、プロセスが [Idle] (アイドル) 状態のクライアントの上位の要因を可視化します。
- クライアントからのアイドル接続を閉じて容量を解放します。
- 接続を介してより多くのトラフィックを開始します。
- 350 秒未満の値のインスタンスで TCP キープアライブをオンにします。
プライベートサブネットのリソースの速度が低下している
NAT ゲートウェイでの帯域幅制限
- NAT ゲートウェイは 5 Gbps の帯域幅をサポートし、45 Gbps まで自動的にスケールします。NAT ゲートウェイの背後にあるすべてのインスタンスのネットワークスループットメトリクスの合計が 45 Gbps バースト以上になると、トラフィックが遅くなります。
- CloudWatch メトリクスを使用すると、帯域幅は次のように計算されます: (BytesOutToDestination + BytesOutToSource + BytesInFromDestination + BytesInFromSource) * 8 / 期間 (秒)。
NAT ゲートウェイごとの帯域幅制限の回避策:
NAT ゲートウェイの帯域幅が 45 Gbps を超える場合は、リソースを複数のサブネットに分割し、複数の NAT ゲートウェイを作成できます。
関連情報
How can I use Amazon CloudWatch metrics to identify NAT gateway bandwidth issues? (Amazon CloudWatch メトリクスを使用して NAT ゲートウェイの帯域幅に関する問題を特定するにはどうすればよいですか?)
How do I resolve intermittent connection issues when using a NAT instance? (NAT インスタンスを使用するときに発生する断続的な接続の問題を解決するにはどうすればよいですか?)