本投稿は、メタップスアドベントカレンダー18日目のエントリー記事です。
概要
以下で @fumiken さんが開発されたFargate接続ツールを紹介されています。
メインのPythonのツールについてはこの記事の内容をご参照ください。
ツールを利用するための事前準備は README をご参照ください。
本記事では、このPythonプログラムをラッピングしたシェルスクリプトを作成したのでそのご紹介をします。
解説
シェルスクリプトは以下のものになります。
まずは、
fargatessh
のみで実行します。
usageが表示されます。
$ fargatessh
usage:
fargatessh [OPTION]...
-p AWS_PROFILE(require)
-c CLUSTER_NAME
-s SERVICE_NAME
-t CONTAINER_NAME
-f FORCE_LOGIN
ex) fargatessh -p profile -c cluster -s service -t app
AWS_PROFILE は必須指定です。
AWS_PROFILE を指定して
fargatessh -p testprofile
で実行してみます。
ここで、aws sso を利用している場合は、認証しているか判定されます。
未認証の場合は、ブラウザが開くので、aws sso の認証を行います。
fargatessh -p testprofile
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.ap-northeast-1.amazonaws.com/
Then enter the code:
XXXX-XXXX
以降はconnect_to_fargate.pyの動作でクラスター、サービス等を順番に選択していきます。
Successfully logged into Start URL: https://organization.awsapps.com/start
処理を開始します
[?] 接続先が存在するクラスター名を選択してください:
❯ default
project-a-claster
利用事例
クラスター名のみが分かっているがクラスター内のサービス名が分からないといった場合は
fargatessh -p testprofile -c project-a-claster
のように実行すると、サービス名以降を選択する形になります。
頻繁にログインするfargateの場合は、すべてのオプションを指定することで、タスク名のみ選択してログインできます。
ログイン確認不要な場合は -f (force login)
のオプションを付けておくとよいでしょう。
fargatessh -p testprofile -c project-a-claster -s project-a-service -f -t app
$ fargatessh -p testprofile -c project-a-claster -s project-a-service -f -t app
処理を開始します
[?] 接続先が存在するタスク名を選択してください:
❯ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
タスク名: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
以下のFargateに接続します
----------------------------------------
クラスター名: project-a-claster
サービス名: project-a-service
タスク名: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
コンテナ名: app
----------------------------------------
Fargateにログインします
The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.
Starting session with SessionId: ecs-execute-command-xxxxxxxxxxxxxxxxxxxxxxxxxx
root@ip-10-254-1-254:/# <------ログイン成功
補足
fargate接続後、vimの操作をする場合は、以下の記事も参考になるかと思いますので、ご参照ください。