okochangの馬鹿でありがとう

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

RDSの自動停止、自動起動スクリプトを作ってみた(修正編)

f:id:okochang:20120503170729p:plain

以前、RDS(MySQL)を擬似的にSTOP/STARTする(実際の動作は再作成)というスクリプトを作成したのですが、一つ手順が足りていなかったのでアップデートをしたいと思います。
古いスクリプトでは以下の手順でSTOP/STARTを実現していました。

1. 指定したRDSの状態をチェック
2. 起動している場合はファイナルスナップショットを作成して、RDSを削除
3. 停止している場合はスナップショットから起動
4. RDS起動後にセキュリティグループとパラメータグループを付け替え

しかし、こちらのリンクにある通りRDSはパラメータグループを付け替えた場合は再起動が必要です。
というわけで修正したスクリプトではセキュリティグループとパラメータグループを変更した後に再起動をする手順を追加しています。
Ruby1.8.7とright_aws3.0.4で動作確認をしています

せっかくなのでスクリプトの動作も少し変更し、以下のように変更しています。

  1. 指定したRDSの状態をチェック
  2. 停止している場合はスナップショットから起動
  3. RDS起動後にセキュリティグループとパラメータグループを付け替え
  4. RDSインスタンスの再起動
  5. 起動に使用したファイナルスナップショットを削除
  6. 1.でRDSが起動していた場合はファイナルスナップショットを作成して、RDSを削除

私のスクリプトはともかく、RDSのパラメータグループを付け替えた場合は再起動が必要であると覚えておいた方が良さそうです:-)