Amazon S3をバックアップストレージとして使おう
S3は、その信頼性の高さからバックアップ用のストレージとして最適なサービスです。また、S3は各種言語用のライブラリがそろっているので、自分で簡単にアプリケーションを作ることができます。
そこで今回は、Rubyを使って簡単なバックアップアプリケーションを作ってみましょう。
なお、各種言語用のライブラリの情報もAWSトップページから入手できます。
Rubyライブラリaws-s3の導入
RubyからS3を操作するライブラリは複数用意されていますが、今回は「aws-s3」を使ってみます。
aws-s3はRubyGemsで提供されていますので、gemコマンドでインストールします。
バケット一覧の取得
まずは練習として、バケット一覧を取得するコードを書いてみます(リスト1)。AWS::S3::Base.establish_connectionを使って、Access Key IdとSecret Access Keyを設定しています。
AWS::S3::Service.bucketsでバケット一覧が取得できるので、それを表示してみます。
ファイル一覧の取得
もう一つ練習として、指定したバケットのファイル一覧を取得するコードを書いてみます(リスト2)。
このように、非常に直感的にS3の情報を扱うことができます。
ファイルの保存
ではいよいよバックアップアプリケーションを作りましょう。
S3へのファイルの保存も簡単です。S3Objectクラスを通じてファイル名とバケット名を指定すると、ファイルがアップロードされます。
リスト3は、対象ディレクトリをtarコマンドで圧縮したあと、S3Objectクラスを通じてS3へファイルを送るバックアップソフトです。20行程度の短いスクリプトですが、これを定期的に走らせることで、大事なデータをS3に保存することができます。
このスクリプトを実行してみましょう。ちょっと時間が経つと、バックアップ後のファイル名が表示されます。
これが実際に保存されているか、S3Foxで確認してみましょう(図10)。ちゃんとファイルができていますね。これをダウンロードして解凍すると、バックアップで指定した内容が保存されています。
バックアップメディアの管理は難しいものですが、S3を使うと、手軽に低価格で安全性の高いバックアップを行えます。安全なバックアップ環境が見つかっていない方はぜひ試してみてください。