Tech Sketch Bucket of Technical Chips by TIS Inc.

Amandaを使ってバックアップ(Amazon S3編)

Pocket

Amanda試用レポートの第4回目は、クラウドへのバックアップ機能のご紹介です。
Amandaは無料のコミュニティ版でもAmazon S3へのデータ保存に対応しており、HDDやテープへのバックアップと同じ操作でバックアップ/リカバリが可能です。


Amazon S3へ保存してみよう

完成イメージ

S3backup_image.png

バックアップサーバのHDDにいったんバックアップデータをため込んでから、S3へ保存するので、保存中に接続が切れてもHDD上にデータが残る仕組みになっています。

amanda.confの設定

S3への接続に必要なアクセスキー IDとシークレットアクセスキーのペアを確認しておきましょう。AWS Management Console右上のユーザ名→Security Credentials→アクセス証明書の「アクセスキー」タブで確認できます。
ここではアクセスキー ID:ACCESS_KEY_ID、シークレットアクセスキー:SECRET_ACCESS_KEY、バックアップ先のバケット名:amandabackup.example.comとします。

参考: How To:Backup to Amazon S3
設定サンプルをコピーして、たたき台にします。

$ cp /var/lib/amanda/template.d/amanda-S3.conf /etc/amanda/S3/amanda.conf

編集が必要なのは「define changer my_s3 {~}」の中です。

バケット名にピリオドを含んだ名前にしている場合、注意が必要です。Amandaのver3.3.0より前のバージョンを使用している場合、tpchangerにサブドメインを含んだ名前は設定できないため、ピリオドを含まない名前に設定する必要があります。ver3.3.0以降であれば、S3_SUBDOMAINプロパティにサブドメイン部分を設定して使うことが出来ます。
今回使用するバケット名「amandabackup.example.com」では、下記のように設定します。

ピリオドを含まないバケット名であればS3_SUBDOMAIN設定は不要です。

amanda-client.conf

前回までの記事ではtapedev設定部分はamanda.confのtpchanger設定値をコピーして使用していましたが、同じように

としていると、リカバリ時に「No Amazon access key specified」エラーとなってしまいました。amanda-client.confにはアクセスキーなどを設定する項目は存在しないので、amanda.conf内のchanger定義で設定したS3への接続情報を利用するためには、changer定義名「my_s3」を設定するのが正しいようです。

バックアップしてみた

バックアップ、リカバリ手順は前回までと特に変わりません。

下図は2回バックアップ取得後、ブラウザからバケットの中を確認した結果です。

S3backup_result.png

何か保存されているのが確認できました。HDDへのバックアップ時のようにスロットごとにフォルダに入るというわけではないようです。

S3への書込みを非同期的に行う

S3への保存はデータの転送にインターネットを経由する以上、大量データをバックアップするとなるとどうしても時間がかかってしまう欠点があります。転送の早い社内のサーバに保存が完了した時点で処理を完了させ、時間のかかるS3へのデータ転送は非同期処理とすることで日々のバックアップ時間が安定し、バッチジョブに組み込みやすくなります。

S3backup_delay_image.png

ここでサーバ上のバックアップデータの保存場所となるのはホールディングディスクと呼ばれるテープ書込み前のデータが一時的に保存されるディレクトリです。

amanda.conf

ポイントになるのはtpchanger設定を空文字にしておくことです。こうすると書き込むべきテープ情報が見つからず、holdingdiskに設定したディレクトリにバックアップデータを蓄積します。

たまったデータをS3に一気に書き込むには「 amflush 」コマンドを使用します。

 # sudo -u amandabackup amflush -b S3 -o tpchanger="my_s3"

-o オプションで設定の上書きが可能なので、ここで一時的にtpchanger設定をS3への書込み用に変更します。コマンド自体はすぐに完了し、バックグラウンドで書込み処理が実行されます。書き込みが完了すると通知メールが届き、書込みの完了したバックアップファイルはホールディングディスクから削除されます。

ホールディングディスクに保存されている状態のバックアップファイルも問題なくリカバリ可能です。amanda-client.confの設定変更の必要はありません。

まとめ

エンタープライズ版のオプションとしてでなく、基本機能としてS3に対応しているバックアップツールというのはかなり希少な存在なのではないでしょうか。データの転送に時間がかかってしまうため、バックアップ/復元はオンプレミスでの構築と比較するとどうしても長時間となりますが、いざというときの備えとしてS3の可用性の高さは大きな魅力です。バックアップ対象もバックアップサーバもAWS上で構築しているならば速度に問題はありませんが、その場合EBSのスナップショットを使うなどしたほうが簡単かもしれません。

おわりに

以上、4回にわたってAmandaの機能をちょっとずつつまみ食いしてみました。
記事で紹介したバックアップ方式のカスタマイズ以外にもバックアップ時の振舞いのグラフ化など、まだ試せていない機能が山ほどあり、実に多芸です。シンプルに使えばとことんシンプル、やろうと思えばとことんカスタマイズできるので、なかなか遊び甲斐(?)のあるツールではないでしょうか。

エンジニア採用中!私たちと一緒に働いてみませんか?