NATインスタンスが単一障害点だから…って無言のプレッシャーかけられてるエンジニア、多いと思います!
ということでNATサーバーを切り替えるスクリプト作りました。
NATインスタンスにIAM_Roleを適用してから使うといいと思います!
#!/bin/sh #====================================================== # NATインスタンスを自分に切り替えるスクリプト #====================================================== #====================================================== # 概要 #------------------------------------------------------ # 特定のルーティングテーブルのアウトバウンド(0.0.0.0/0) # を、「シェルを実行しているインスタンス」へ切り替える # スクリプトです #====================================================== # つかいかた #------------------------------------------------------ # 1 - 待機側のインスタンスが、稼働側のインスタンスを死活 # 監視する(実装して下さい) # 2 - 死亡が確認されたらこのシェルを実行してください #====================================================== # 前準備 #------------------------------------------------------ # VPC => RouteTable で、「NATサーバーを通過するRouteTableID」 # を調べる。NATインスタンスのいるRouteTableIDではないので # 注意。下のCHANGE_RTBに記載する #------------------------------------------------------ CHANGE_RTB="[ここを書き換える]" #====================================================== # リージョンを宣言 ------------------------------------ export AWS_DEFAULT_REGION=`curl --connect-timeout 3 -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/.$//g'` MY_ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id` echo "=================================" echo " CHANGE RouteTable..." echo "=================================" echo " Current Setting => " `ec2-describe-route-tables ${CHANGE_RTB} --region ${AWS_DEFAULT_REGION} | grep 0.0.0.0` echo "---------------------------------" echo " CHANGE RouteTable => ${CHANGE_RTB} / MyInstance-ID => ${MY_ID}" echo "---------------------------------" ec2-replace-route ${CHANGE_RTB} --region ${AWS_DEFAULT_REGION} -i ${MY_ID} -r 0.0.0.0/0 echo " Done!!" echo " Current Setting => " `ec2-describe-route-tables ${CHANGE_RTB} --region ${AWS_DEFAULT_REGION} | grep 0.0.0.0` echo "================================="
0 件のコメント:
コメントを投稿