AWS System Manager セッションマネージャーを利用してEC2インスタンスにシェルアクセスする時に楽したい
AWS System Manager セッションマネージャーを利用してEC2インスタンスにシェルアクセスする時に楽したい : 昨日は @cfiken による TensorFlow で学習したモデルのグラフを tf.train.import_meta_graph でロードする でした。 とても素晴らしい内容でしたね! まだ、見てない方がいらしたらどうぞ!!! では、本題に入ります。 AWS System Manager セッションマネージャー インスタンスへアクセスをする時に使っているのが下記です。 $ aws ssm start-session --target instance-id 毎度、同じインスタンスへアクセスするのでしたら気にならないのですが別のインスタンスへアクセスする時もあります。 その都度、 aws ec2 describe-instances を利用してインスタンスIDを調べるのは面倒だったのでjqとpecoを使用して簡単にインスタンスへアクセスが出来るようにshellを作成しました。 作成したやつ #!/bin/sh PROFILE='' if [ $1 ]; then PROFILE="--profile $1" fi ID=`aws ec2 describe-instances $PROFILE | \ jq -r '.[][].Instances[] | [.InstanceId, [.Tags[] | select(.Key == "Name").Value][]] | @tsv' | \ column -t | \ peco | perl -pe 's/\s.*//'` aws ssm start-session --target $ID $PROFILE やっていること まず、 aws ec2 describe-instances でインスタンスの情報を取得します。 次にjqを使ってインスタンスIDとタグのNameをtsvで吐きます。 1 その結果をpecoに渡してサーチできるよ...