rnzoo/ec2sshを作った。
---- 2014/10/19 追記
ec2sshは、rnsshに名称変更して、homebrewでのインストールにも対応しました。
----
前回のエントリでec2listを作りましたが、それを使って、ssh先のec2を絞り込むec2sshを作りました。
reiki4040/rnzoo · GitHub
AWSコンソールでインスタンス情報を確認するのも面倒なので、CLIでインスタンス一覧を取得して、そのままssh先を選択できるようにしました。他にも同じようにpecoを使ってssh先を絞り込む例がありますが、キャッシュしたり、ユーザや鍵を変えて実行できるところまでのは見当たらなかったので、nrzooのec2sshが便利にできてます。
インストール
boto, pecoが必要なのでインストールします。ここの詳細は、それぞれのインストール方法を参考にしてください。
boto/boto · GitHub
pip install boto
# bashrcなど export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY=
peco/peco · GitHub
brew tap peco/peco brew install peco
使い方
-l,-iはsshのオプションと同じです。
ec2ssh -l ec2-user -i ~/.ssh/key
pecoによるインスタンス絞り込み(文字を入れると絞り込めます)
QUERY> instance_name1 X.X.X.A instance_name2 X.X.X.B instance_name3 X.X.X.C web server 1 X.X.X.D web server 2 X.X.X.E
選択するとそのインスタンスに接続します。
user@web server 1 $
インスタンス情報更新
ec2の一覧は、ローカルにキャッシュするので、新しく作ったり、起動したり停止したりした後は、-fオプションをつけて、AWSから再取得します。
ec2ssh -l ec2-user -i ~/.ssh/key -f