本番のwebサーバー等を適当に選んでsshしたいときがあったのでshellを書きました。
概要
aws-cli
,peco
,awk
に依存
webサーバーについているtag
Name(webB,webC)で絞り込む
web稼働しているやつでも絞り込む(state=running)
iam role等でdescribe-instancesが実行できるようにしておく必要あり
instance-idとprivate-ipを表示しているが、private-ipだけでいい、見た目の問題
.bashrc
# .bashrcに書き込めば使えるはず
function webssh () {
host=$(aws ec2 describe-instances --filters "Name=tag-value,Values=webB,webC" "Name=tag-key,Values=Name" "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]" --output text | peco | awk '{print $2}' | xargs -n 1)
ssh -i ~/.ssh/hoge.pem $host
}
aws-cli部分
aws ec2 describe-instances \
--filters \
"Name=tag-value,Values=webB,webC" "Name=tag-key,Values=Name"\
"Name=instance-state-name,Values=running"\
--query \
"Reservations[*].Instances[*].[InstanceId,PrivateIpAddress]"
--output text
参考
AWS Cli自分用Tips
AWS CLIのフィルターとクエリーの使い方についてまとめてみた
AWS CLIを使ってEC2インスタンスの情報を取得する