LoginSignup
0
0

More than 5 years have passed since last update.

aws上でオートスケールするインスタンスのどれか一つにアクセスする

Last updated at Posted at 2016-04-11

ec2インスタンスすぐ死ぬ

aws上でしばしばauto scalingするアプリケーションを開発していると、先ほどまでsshしていたインスタンスがいつの間にか死んでいたりします。
設定をちょくちょく変えながら試行錯誤している場合などは開発環境ですらそうで、ロードバランサーの口のほうでは22番を開けていないので、いちいち手と脳でリバースプロキシするのが結構面倒でした。
そこで、その環境内のどのインスタンスでもいいから繋ぎたいというときのため、タグで探して一番上にでてくるインスタンスにsshするシェルを書きました。

動作環境

yosemite
ansible 1.9.4
ansible ec2

中身

TAG_NAME=$1

HOSTNAME=$(ec2.py --list | grep -A 1 \"tag_Name_$TAG_NAME\" | grep ec2)

IP_PART=$(echo $HOSTNAME | sed 's/^.*_\([0-9]\{1,3\}_[0-9]\{1,3\}_[0-9]\{1,3\}_[0-9]\{1,3\}\).*$/\1/' | sed 's/_/-/g')

ssh ec2-user@ec2-$IP_PART.ap-northeast-1.compute.amazonaws.com ${@:2}

リージョンは割り切りました。

使い方

bash_profileなど普段使うものの設定ファイルに下記を追加

function essh() { ~/path/to/this/script.sh "$@" ;}
PATH="$PATH:~/path/to/ansible/inventory"

そして

 essh tag_fuga_piyo {-i 必要なら}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0