« ^ »

AWS System Managerのセッションマネージャーとawscliを用いてFargateのコンテナとのセッションを開始する

所要時間: 約 2分

セッションマネージャーを用いて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$

接続ができた。