セッションマネージャーを用いてCLIで接続できるか確認してみる。
既にFargateのクラスタ、タスクなどが設定/起動されセッションマネージャー の一覧にインスタンスが登録されていることを前提とする。
接続開始。
bash-5.1$ aws ssm start-session --target mi-00000000000000000 SessionManagerPlugin is not found. Please refer to SessionManager Documentation here: http://docs.aws.amazon.com/console/systems-manager/session-manager-plugin-not-found
pluginが入っていないため失敗している。 ドキュメントのURLを表示してくるのでそれを確認する。
https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-troubleshooting.html#plugin-not-found
実際のインストール方法はこっちに記載があった。
https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
macOSを使っているので、手順に従いmacOS用の手順でインストールする。
zipファイルをダウンロードする。
bash-5.1$ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3457k 100 3457k 0 0 693k 0 0:00:04 0:00:04 --:--:-- 759k
zipファイルを解凍する。
bash-5.1$ unzip sessionmanager-bundle.zip Archive: sessionmanager-bundle.zip creating: sessionmanager-bundle/ inflating: sessionmanager-bundle/install extracting: sessionmanager-bundle/VERSION inflating: sessionmanager-bundle/LICENSE creating: sessionmanager-bundle/bin/ inflating: sessionmanager-bundle/bin/session-manager-plugin inflating: sessionmanager-bundle/seelog.xml.template
sessionmanager-bundle/install を確認する。
中身はPythonで書かれていて usr/local/sessionmanagerplugin にインストールし
その後 /usr/local/bin 配下にシンボリックリンクを配置する仕組みのようだ。
/usr/local 配下へのファイル操作を行うならsudoが必要。
bash-5.1$ cd sessionmanager-bundle bash-5.1$ sudo python3 install Password: Creating install directories: /usr/local/sessionmanagerplugin/bin Creating Symlink from /usr/local/sessionmanagerplugin/bin/session-manager-plugin to /usr/local/bin/session-manager-plugin Installation successful!
インストールが完了した。installを実行するときにはinstallと同じディレク トリにカレントワーキングディレクトリを移動しておく。そうしないとインス トールに失敗する。
接続を試みる。
bash-5.1$ aws ssm start-session --target mi-0fd9724837609de1b
Starting session with SessionId: username-00000000000000
$ ls
bin dev etc imagedefinitions.json lib64 mnt proc run srv tmp var
boot entrypoint.sh home lib media opt root sbin sys usr
$ cat entrypoint.sh
#!/usr/bin/env bash
# Environment variables required:
# - AWAS_REGION
# - AWAS_SSM_ACTIVATION_CODE
# - AWAS_SSM_ACTIVATION_ID
set -e
set -x
mkdir -p /etc/amazon/ssm
touch /etc/amazon/ssm/seelog.xml
amazon-ssm-agent -register -code "${AWS_SSM_ACTIVATION_CODE}" -id "${AWS_SSM_ACTIVATION_ID}" -region "${AWS_REGION}" -y
nohup amazon-ssm-agent > /dev/null &
exec "$@"
$ exit
Exiting session with sessionId: username-00000000000000.
bash-5.1$
接続ができた。