aws ecs execute-command
を使うとECSで動いているコンテナのシェルを操作できるんだけど実行にはタスクIDを取得する必要がある。
そのタスクIDはAWSの管理画面かaws ecs describe-tasks
で確認できるんだけどいちいち確認してターミナルにコピペするのが面倒なんでこうやって👇コマンドを繋げて確認すると割と楽でした。
TASKARN=`aws ecs list-tasks \ --cluster {対象クラスタの名前を指定} \ --service-name {対象サービスの名前を指定}\ | jq -r '.taskArns[0]' TASKID=`aws ecs describe-tasks \ --cluster {対象クラスタの名前を指定} \ --tasks $TASKARN \ | jq -r '.tasks[0].containers[0].runtimeId' \ | awk -F '-' '{print $1}'` aws ecs execute-command \ --cluster {対象クラスタの名前を指定} \ --task $TASKID \ --container {対象サービスの名前を指定} \ --interactive \ --command "/bin/sh"