😎

ECS-Execコマンドでコンテナログインする際のスニペット

に公開

ECS Execコマンドを実行してコンテナログインする際に、コンソール画面からタスクIDを確認してコマンド指定するのが面倒なため、スニペットを記載する。

  • AS-IS:
    • コンソール画面から実行中のタスクIDを確認して、aws ecs execute-commandにタスクIDを指定して実行する
  • TO-BE:
    • AWS CLIでタスクIDを取得して、aws ecs execute-commandにタスクIDを指定して実行する

スニペットは以下の通り:

CLUSTER_NAME="xxx"
SERVICE_NAME="xxx"
CONTAINER_NAME="xxx"

# タスクARN取得
TASK_ARN=$(aws ecs list-tasks --cluster $CLUSTER_NAME --service-name $SERVICE_NAME --desired-status RUNNING --query 'taskArns[0]' --output text)
# ECS Exec実行
aws ecs execute-command --cluster $CLUSTER_NAME --task $TASK_ARN --container $CONTAINER_NAME --command "/bin/bash" --interactive

補足

スクリプトを実行する前に、以下の値を設定する必要がある:

  • CLUSTER_NAME: ECSクラスター名
  • SERVICE_NAME: ECSサービス名
  • CONTANER_NAME: ECSコンテナ名

CLUSTER_NAMESERVICE_NAMEは、以下のコンソール画面のパンくずから確認する。

CONTAINER_NAMEはコンテナのタスクから確認する。

Discussion