NAT インスタンスを使用して Amazon Virtual Private Cloud (Amazon VPC) サブネットのインターネットにインスタンスを接続していますが、インスタンスに断続的な接続の問題が発生しています。
簡単な説明
断続的な接続の問題は、以下に関連している可能性があります。
- ソースのポート枯渇
- ネットワークアクセスコントロールリスト (ネットワーク ACL) ルール
- ネットワークの問題
解決策
ソースのポート枯渇を軽減
プライベートサブネットのインスタンスがオペレーティングシステムレベルの接続制限に達したことを確認します。アクティブな接続の数を取得するには、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
注: TIME\ _WAIT 状態でポートを再利用するように TCP パラメータを設定した場合は、前述のコマンドから TIME\ _WAIT を削除してください。
コマンドがローカルポートの許容範囲 (クライアント接続の送信元ポート) に近い値を返す場合は、ポートが枯渇する可能性があります。ポートの枯渇を防ぐには、次のいずれかの解決策を試してください。
次のコマンドを実行して、オペレーティングシステムのエフェメラルポートの範囲を広げます。
Windows の場合は、管理者として実行してください。
netsh int ipv4 set dynamicport tcp start=1025 num=61000
Linux の場合は、root として実行してください。
$echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range
**注:**ディストリビューションの種類によっては、再起動中に前述のパラメータを永続的に設定してください。
-または-
利用可能な接続を枯渇させるアプリケーションレベルの問題を解決します。
ネットワーク ACL ルールでエフェメラルポート範囲のトラフィックが許可されていることを確認する
パブリックサブネットとプライベートサブネットのネットワーク ACL は、エフェメラルポート範囲 (1024 ~ 65535) のトラフィックを許可する必要があります。
たとえば、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが HTTPS ウェブサイトにアクセスできるようにするには、プライベートサブネットに関連付けられているネットワーク ACL に次のルールが必要です。
インバウンドルール:
| | | |
---|
ソース | プロトコル | ポート範囲 | 許可/拒否 |
PUBLIC_IP | TCP | 1024-65535 | ALLOW |
アウトバウンドルール:
| | | |
---|
宛先 | プロトコル | ポート範囲 | 許可/拒否 |
PUBLIC_IP | TCP | 443 | ALLOW |
NAT インスタンスのサブネットに関連付けられているネットワーク ACL には、次のルールが必要です。
インバウンドルール:
| | | |
---|
ソース | プロトコル | ポート範囲 | 許可/拒否 |
VPC CIDR | TCP | 443 | ALLOW |
PUBLIC_IP | TCP | 1024-65535 | ALLOW |
アウトバウンドルール:
| | | |
---|
宛先 | プロトコル | ポート範囲 | 許可/拒否 |
PUBLIC_IP | TCP | 443 | ALLOW |
VPC CIDR | TCP | 1024-65535 | ALLOW |
次の場合、トラフィックはドロップされます。
- ネットワーク ACL はエフェメラルポート範囲のサブセットのみを許可します。
- プライベートサブネットまたは NAT インスタンスのインスタンスは、エフェメラルポートの範囲外の送信元ポートを使用します。
ネットワークの問題の確認
ソース、NAT、ネットワークメディア、またはターゲットのネットワークパフォーマンスが低下すると、接続の問題が発生する可能性があります。詳細については、「 VPC 内の EC2 Linux または Windows インスタンスと、インターネットゲートウェイ経由でのオンプレミスホスト間におけるネットワークパフォーマンスの問題をトラブルシューティングするにはどうすればよいですか?」を参照してください。
また、ネットワークがインスタンスレベルで最大値を超えると、ネットワークの問題が発生する可能性があります。サポートされているインスタンスタイプでは、Elastic Network Adaptor (ENA) のネットワークパフォーマンスメトリックスを使用して、トラフィックが最大値を超えたときにモニタリングできます。詳細については、「 EC2 インスタンスのネットワークパフォーマンスの監視」を参照してください。
関連情報
エフェメラルポート