Elastic Network Interface (ENI) でアイドル接続のタイムアウト期間を指定して、非アクティブな接続によって占有されているリソースを解放し、接続の枯渇を防ぎます。
ECS インスタンスの接続
接続 (セッション) とは、クライアントをサーバーに接続し、両者間でデータを転送するプロセスのことです。
接続は、送信元 IP アドレス、宛先 IP アドレス、送信元ポート、宛先ポート、プロトコルからなる 5 タプルによって一意に定義されます。Elastic Compute Service (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 をクリックします。
-
[セッションタイムアウト期間] セクションで、各接続タイプのタイムアウト期間を指定します。

既存の ENI でのアイドル接続タイムアウト期間の指定
-
ModifyNetworkInterfaceAttribute API を呼び出して ENI 属性を変更し、ConnectionTrackingConfiguration パラメーターセットで TcpEstablishedTimeout、TcpClosedAndTimeWaitTimeout、UdpTimeout を指定することもできます。
-
ENI の接続タイムアウト期間を照会するには、DescribeNetworkInterfaceAttribute API を呼び出し、Attribute を connectionTrackingConfiguration に設定します。
ECS コンソール - ENI に移動します。
上部メニューで、対象リソースのリージョンとリソースグループを選択します。
-
ENI ID をクリックして、ENI 詳細ページに移動します。
-
[セッションタイムアウト期間] セクションで、[確立された TCP 接続のタイムアウト期間]、[TCP の待機およびクローズのタイムアウト期間]、[UDP フローのタイムアウト期間] の値を確認します。パラメーターの横にある
アイコンをクリックして、その値を変更します。