スナップショットを取るだけならEC2のコマンドラインツールですぐに出来るけれども、際限なくスナップショットが増えてしまうのは困る。
そこで古いスナップショットを自動で削除しつつ新しいスナップショットを作成してくれるツールが必要になる。
Rubyスクリプトはいくつか見つけた。
code.rock: Amazon EBSとRightAwsを使って自動バックアップ環境を構築する
実践で使えるEBSスナップショット取得スクリプト - よかろうもん!
EBSのスナップショットを定期的に作成するスクリプト - こせきの技術日記
oko_changのインフラ日誌: EBSボリュームのスナップショットを自動作成する(right_aws)
シェルスクリプトもあった。
Amazon EBSのスナップショット(バックアップ)を取得しつつ世代管理も行うスクリプト - RX-7乗りの適当な日々
Pythonスクリプトもあった。
AmazonEC2/S3の便利スクリプトのまとめ | スターワン::ブログ
でもそれだけのためにRubyやPythonをインストールしたり、Cygwinをセットアップしたりするのはちょっと避けたかった。
クラウド管理用のWebサービスも試して見た。
RightScale や CloudWorks など。
RightScaleはUIが複雑過ぎて断念。CloudWorksは無料版だと世代管理は出来なさそう。
要件を満たすものがなかなか見つからないので、結局 AWS SDK for .NET を使って自分で作ってみる事にした。
Ec2EbsSnap - GitHub
実行可能ファイルはこちら (.NET Framework 3.5以上が必要)