継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

既存のECS サービスを ALB のマルチターゲットグループ化する時に行った対応メモ✍

タダです.

既存の ECS サービスが ALB のターゲットグループに1つだけ関連付けられて稼働している状況で,もう1つターゲットグループを関連付けて2つのターゲットグループからリクエストを受けられる状態を作りたい時がありました.その時に AWS CLI を使って対応を行ったのですが,どういったフローを経て行ったのかを備忘録としてまとめます.

1. 既存 ECS サービスに2つのターゲットグループを関連付けるコマンド

既存 ECS サービスに2つのターゲットグループを関連付けるコマンドは以下の通りです.これで既存 ECS サービスがマルチターゲットグループ化できます.

$ aws ecs update-service \
  --cluster [ECS クラスター名] \
  --service [ECS サービス名] \
  --load-balancers "targetGroupArn=[ターゲットグループ1 ARN],containerName=[コンテナ名],containerPort=[ポート番号]" \
                   "targetGroupArn=[ターゲットグループ2 ARN],containerName=[コンテナ名],containerPort=[ポート番号]"

2. ECS サービスの新しいデプロイの強制を実行する

マルチターゲットグループのネットワーク設定はできましたが,追加したターゲットグループには ECS タスクがデプロイされてない状態なので Force new deployment(新しいデプロイの強制) を実行して新しいタスクを各マルチターゲットの対象になるようにします.

$ aws ecs update-service \
  --cluster [ECS クラスター名] \
  --service [ECS サービス名] \
  --force-new-deployment

以上でマルチターゲットグループで ECS サービスがリクエストを受けられる状態になりました.

まとめ

既存の ECS サービスを ALB のマルチターゲットグループ化する時に行った AWS CLI のコマンドをまとめました.癖で GUI からやろうとして導線がなくてちょっと戸惑いましたが,AWS CLI で簡単に設定できてよかったです.