🐦
ECS Execを使ってみました
エラーにはまってECS(fargate)で起動しているコンテナ内に入るために、ECS Execを利用してみました。
AWS公式
IAMアクセス許可
まずタスクロールに必要なSSMアクセス許可を追加します。
自分はタスクロールにecsTaskExecutionRoleを指定していましたので、こちらにAmazonSSMFullAccess ポリシーをアタッチしました。
Session Manager pluginのインストール
続いて、ECS Execを利用するにはSession Manager pluginのインストールが必要です。
下記のAWSの公式からmacOS用にインストールコマンドを実行したのですが、
sudo: yum: command not found となりインストールできませんでした。
色々と調べてみたのですが、最終的にはHomeBrewのbrewコマンドでインストールすることができました。
Execの有効化
事前準備が完了したらExecを有効化していきます。
ターミナル
aws ecs update-service --cluster クラスター名 --service サービス名 --enable-execute-command
有効化できたか確認
ターミナル
aws ecs describe-tasks --cluster クラスター名 --tasks タスクID | grep enableExecuteCommand
"enableExecuteCommand": true, と表示されれば有効化OK。
※すでにタスクが存在している場合、タスクを再起動して設定を反映させる必要があります。
Exec接続
ターミナル
aws ecs execute-command --cluster クラスター名 \
--task タスクARN \
--container コンテナ名 \
--interactive \
--command "/bin/sh" \
こちらでECS内のコンテナと対話型シェルセッションが開始します。
ボリューム設定でかなりはまってしまって、コンテナ内のディレクトリ構成を調べたかったので利用しましたが、色々と調べられたのでとても便利でした。
Discussion