dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

Fargate強制再デプロイスクリプト

稀にFargateの基盤の更新で、コンテナが強制再起動される旨の通知がくる。

Your application running on AWS Fargate will automatically be updated soon

コンテナは基本的に落ちることを想定して作るから、基本的に放置して良い。 ただし、事情によっては任意のタイミングで更新したいことがある。 さらにコンテナを扱っているとその数が膨大すぎて手動では対応が手に負えないこともある。

このスクリプトはファイルに記述されたサービスを自動で強制再デプロイする。

ファイル名 update.sh

#!/bin/bash
set -euo pipefail

while read CLUSTER SERVICE; do
    aws ecs update-service --service "$SERVICE" --cluster "$CLUSTER" --force-new-deployment > /dev/null
done < "${1:-/dev/stdin}"

使い方

cat list | ./update.sh

ここでファイルlistは次の方法で取得したものを想定する。

AWS CLIでリソースを一覧取得 - dullwhaleのメモ帳