この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
デプロイタイプが2種類ある、ローリングアップデート(Rolling update)、CodeDeploy
CodeDeployとはECSではなく、CodeDeployで制御を行う。
ECSが制御を行うローリングアップデートについて心得を記載する。
簡単に言うとローリングアップデートとはタスクを1個ずつ新バージョンへ入れ替えというイメージ(実際入れ替え順番が違う)。
最小ヘルス率とはRUNNING数/必要数の比率、デフォルト:100
最大率:RUNNING数/必要数の比率
デフォルト:200
デプロイの差し替え制御は下記です。
RUNNING下限数:必要数の50%(切り上げ)
例:サービスで必要数が 4 タスク、スケジューラは 2 つの新しいタスクを開始する前に、2 つの既存のタスクを停止してクラスターのキャパシティーを解放できます。
RUNNING または PENDING上限数:必要数の200%(切り下げ)
例:サービスで必要数が 4 タスク、スケジューラは 4 つの古いタスクを停止する前に、4 つの新しいタスクを開始できます (クラスターリソースが足りることが前提)
必要数が1の場合、下限数も1となる(1*50%を切り上げ)のでスケジューラは新しいタスクを先に開始し、RUNNING状態になった後、古いタスクを停止します。
もしサーバーのCPU、Memoryが足りないまたは固定ポートマッピングがある場合、新しいタスクが起動できなくなるのでコンテナの差し替えができなくなります。
この時、手動で古いタスクを停止する必要です。
実際の運用で注意すること。