タダです.
既存の 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 で簡単に設定できてよかったです.