okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

EC2のH/W障害時に使うスクリプトのサンプル

幸か不幸かドラクエに心が折れてしまい、前回から半月くらいで更新出来ましたーorz

f:id:okochang:20121001001508p:plain

さて、クラウドと言っても、その後ろではH/Wが稼働していますし、H/Wは故障する事があります。
EC2でもAWSからDegraded Amazon EC2 Instanceという、自分が使っているインスタンスが稼働するマシンでハードウェア障害があったというメールが届くことがあります。
その場合、メールに記載されている通りStop/Start(EBSタイプの場合)して復旧作業をします。
インスタンスが稼働するH/Wを変更させるため
単純にインスタンスのStop/Startするだけであれば問題もないのですが、ハードウェアの障害時はインスタンスのStopに時間がかかるケースがあり、そんな場合は事前に作成したAMIから新しく起動してEIPを付け替えた方が復旧が早かったりします。
CDP的にはFloating IPServer Swappingパターンといったところでしょうか。
そんな訳でインスンタンスに障害があった場合にインスタンスのNameタグを指定して、そこら辺を自動的に実行するスクリプトを書いてみました。
新しいインスタンスを起動する場合は、旧インスタンスと同じSecurityGroupやKeyPairなどで起動させています。

テストした環境は以下の通りです

  • ruby-1.9.2-p290
  • right_aws 3.0.4

ちなみにこのスクリプトをなんとか個人のテスト環境で試そうと思ってるのですが、幸いな事にまだ障害にあっていないので実環境でのテストはしてません。
一応思いつくテストはしたのですが、万が一使う場合はご注意下さい。