Elastic Network Interface (ENI) でアイドル接続のタイムアウト期間を指定して、非アクティブな接続が占有するリソースを解放し、接続の枯渇を防ぎます。
Elastic Compute Service (ECS) インスタンスの接続
接続 (セッション) とは、クライアントをサーバーに接続し、両者間でデータを転送するプロセスです。
接続は、送信元 IP アドレス、宛先 IP アドレス、送信元ポート、宛先ポート、プロトコルの 5 タプルによって一意に定義されます。ECS インスタンスの接続には、TCP、UDP、ICMP が含まれます。ワークロードが同時接続の影響を受けやすい場合は、最大接続数が要件を満たすインスタンスタイプを選択してください。詳細については、「インスタンスファミリー」をご参照ください。
アイドル接続のタイムアウト期間
確立された TCP 接続は、データが交換されていない場合でも開いたままになることがあります。長時間にわたるアイドル接続はインスタンスリソースを消費し、同時接続数の上限に達して新しい接続が拒否される原因となることがあります。
UDP はステートレスですが、特に大規模または高頻度のデータ交換シナリオでは、ネットワーク帯域幅、メモリ、ポートなどのシステムリソースを消費します。
アイドル状態の TCP 接続と UDP フローに適切なタイムアウト期間を指定すると、ネットワークパフォーマンスの最適化、リソース使用率の向上、セキュリティの強化につながります。
-
リソース使用率の向上。アイドル状態の TCP 接続は、メモリなどのインスタンスリソースを消費します。タイムアウト期間を短くすると、アクティブな接続用にリソースを解放できます。
UDP フローに適切なタイムアウト期間を指定して、不要なリソース消費を防ぎます。
-
セキュリティの強化。タイムアウト期間を短くすると、DDoS 攻撃やブルートフォース攻撃など、長時間にわたる接続を悪用する攻撃のリスクを軽減できます。
ただし、タイムアウト期間が短すぎると、ファイル転送サービスなど、長時間にわたる接続を必要とするアプリケーションが中断される可能性があります。タイムアウト期間を変更する前に、ECS インスタンスで実行されているサービスの接続要件を必ず把握してください。
アイドル接続のタイムアウト期間の指定
-
レイテンシーを最小限に抑えるには、データパス内のすべてのデバイスでタイムアウト設定を一致させてください。
ECS インスタンスが NLB または CLB インスタンスと連携して動作する場合、ENI と NLB または CLB のリスナーとで、アイドル接続のタイムアウト期間を一致させてください。詳細については、「NLB リスナー」をご参照ください。
-
新しいタイムアウト期間は、既存の接続ではなく、新しい接続にのみ適用されます。
ECS は、次の種類のアイドル接続タイムアウトをサポートしています:
-
確立された TCP 接続のタイムアウト期間:
ESTABLISHED状態のアイドル TCP 接続のタイムアウト期間です。この期間を超えてデータが送受信されない場合、接続はアイドル状態と見なされます。接続は、ルーターやファイアウォールなどのネットワークデバイス、またはオペレーティングシステムによって閉じられる場合があります。単位:秒。-
最小値:30。最大値:910。デフォルト値:910。
-
有効な値:30、60、80、100、200、300、500、700、910。
-
-
TCP 待機およびクローズのタイムアウト期間:
TIME_WAITまたはCLOSED状態の TCP 接続のタイムアウト期間です。TCP 接続を閉じるには、4 ウェイハンドシェイクが必要です。一方のエンドポイントが FIN フラグを送信して送信データがないことを示した後、もう一方のエンドポイントからの ACK を待機します。ACK が受信されない場合、TCP 待機およびクローズのタイムアウト期間が開始されます。単位:秒。-
有効な値:3~15。
-
デフォルト値:3。
説明ECS インスタンスが NLB または CLB インスタンスと連携して動作する場合、
TIME_WAIT状態の TCP 接続のデフォルトのタイムアウト期間は 15 秒です。 有効な値は 3 から 15 までの整数です。
-
-
UDP フローのタイムアウト期間:UDP フローに設定されるタイムアウト期間です。UDP フローは、リアルタイムビデオストリームのパケットなど、関連する一連の UDP パケットです。この期間内に新しい UDP パケットが送受信されない場合、フローが終了したり、例外が発生したりする可能性があります。単位:秒。
-
最小値:10。最大値:100。
-
デフォルト値:30。
説明ECS インスタンスが NLB または CLB インスタンスと連携して動作する場合、UDP フローのデフォルトのタイムアウト期間は 100 秒です。
-
有効な値:10、20、30、60、80、100。
-
手順
ENI の作成時に接続タイムアウト期間を指定するか、既存の ENI で変更できます。
ENI 作成時のアイドル接続タイムアウト期間の指定
CreateNetworkInterface API を呼び出して ENI を作成し、ConnectionTrackingConfiguration パラメーターセットで TcpEstablishedTimeout、TcpClosedAndTimeWaitTimeout、UdpTimeout を指定することもできます。
ECS コンソール - ENI に移動します。
上部メニューで、対象リソースのリージョンとリソースグループを選択します。
-
Create an ENI をクリックします。
-
[セッションタイムアウト期間] セクションで、各接続タイプのタイムアウト期間を指定します。
セッションタイムアウト期間には、次の設定が含まれます:
-
確立された TCP 接続のタイムアウト期間:デフォルト値:910 秒
-
TCP 待機およびクローズのタイムアウト期間:デフォルト値:3 秒
-
UDP フローのタイムアウト期間:デフォルト値:30 秒
-
既存 ENI のアイドル接続タイムアウト期間の指定
-
ModifyNetworkInterfaceAttribute API を呼び出して ENI 属性を変更し、ConnectionTrackingConfiguration パラメーターセットで TcpEstablishedTimeout、TcpClosedAndTimeWaitTimeout、UdpTimeout を指定することもできます。
-
ENI の接続タイムアウト期間を照会するには、DescribeNetworkInterfaceAttribute API を呼び出し、Attribute を connectionTrackingConfiguration に設定します。
ECS コンソール - ENI に移動します。
上部メニューで、対象リソースのリージョンとリソースグループを選択します。
-
ENI ID をクリックして、ENI の詳細ページに移動します。
-
[セッションタイムアウト期間] セクションで、[確立された TCP 接続のタイムアウト期間]、[TCP 待機およびクローズのタイムアウト期間]、[UDP フローのタイムアウト期間]の値を確認します。パラメーターの横にある
アイコンをクリックして、値を変更します。