Fargateで稼働しているコンテナは、SSMサービスを利用して
ログインすることができる。
ハマってしまったので、備忘録を記載。
ECSのタスクロール用のポリシーを作成:
新たにロールを作成:
①ユースケースの検索窓に「Elastic Container Service」を入力後、「Elastic Container Service Task」を選択
②許可ポリシーに上記で作ったポリシーを指定する
タスク定義の更新を行う:
以下のタスクロールの追加を忘れずに!!
作成済みのサービスの停止 > サービスの再作成を行う
->これを行わないと以下のエラーになるので、注意!!
🔸SSMのインストール:
インストール手順①
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
インストール手順②
unzip sessionmanager-bundle.zip
インストール手順③
sudo ./sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin
重要:
cloudshellの場合、再起動を行うこと!!(コマンドが有効化されないようなので)
以下、実施する;
session-manager-plugin
注意:
タイミングで、以下のエラーが出てしまいハマることがあった(Cloud Shellの場合)
->何回か、CloudShellの再起動したり、ECSサービスの再起動など(新しいデプロイの強制などの操作を含め)
を行いやっと改善したりでハマりやすい!
-bash: /usr/local/bin/session-manager-plugin: cannot execute binary file: Exec format error
ECSExecを有効化:
aws ecs update-service --region ap-northeast-1 --cluster クラスタ名 --service サービス名 --enable-execute-command
以下、サービスの更新を行う(多分。実施した方がよい手順)
以下、新しいデプロイの強制にする(多分。実施した方がよい手順)
コンテナにログインする:
aws ecs execute-command --cluster クラスタ名 --container コンテナ名 --task タスクID --command "/bin/sh" --interactive
以下、コンテナにログインした様子(2)