ECSサービスにおけるシャットダウン〜コンテナの入れ替えのライフサイクル
https://gyazo.com/cb475d581247147d54e3a22d1a89fe28
AWS ECS で、リクエストを受け付けている・クライアントとの接続のあるコンテナが、シャットダウンし次世代のタスクに入れ替わる間に何が起きているか まとめると
1. ECSがタスクをALBのターゲットグループから外す
2. ALBのターゲットはdraining状態になり、新規のリクエストはこのターゲットには転送されなくなる 4.1 ↑の後8秒程度でALBは既存の接続を切る
自身でDescribeTargetHealthWithContextを定期的に呼び、状態がdrainingになったら、 (長めに設定した)deregistration delay以下でマージンをとり設定した期間の間に少しずつwebsocket接続を切断 コンテナ内のアプリケーションから AWS SDK API を使ってdraining状態を判定というのはポータブルではないがそうせざるを得ない泥臭さがあっていい