DatabaseS3Backup というツールを作った
はじめに
データベースのデータを S3 にバックアップするツールを作った。PHP! PHP! PHP!
一日に一回くらいバックアップを取っておけばもし心が壊れてしまいそうな諸問題が起きたとしても昨日のデータが S3 あるからまあいいかという気分になれる。心の余裕は大事。マンキンでも言ってた。
使い方
まず必要なライブラリを composer でインストールする。
$ cd libraray/composer $ composer.phar install
次に configs ディレクトリに入ってる設定ファイルをごにょごにょする。orig ファイルをコピーして設定ファイルを作る。
$ cp configs/aws.ini.orig configs/aws.ini $ cp configs/database.ini.orig configs/database.ini
設定ファイル aws.ini
AWS キーと保存先のバケット名を指定する。下記のように。特に難しいことはない。
key=aws_key secret=aws_secret_key bucket=backup-bucket
設定ファイル database.ini
MySQL への接続設定を指定する。下記のように。特に難しいことはない。
databases 配列にはバックアップを取りたいテーブル名を記述する。バックアップの必要がないテーブルは記述をしなければいいだけ。
user=root password=root databases[]=table1 databases[]=table2
boot ファイルを動かす
$ ./boot
直下に data ディレクトリが生成される。そこに一時バックアップファイルが保存されて最終的に aws.ini で指定した S3 バケットにバックアップファイルが転送される。転送後一時ファイルは削除されるので安心。S3 に送ったバックアップは S3 の機能で時限式に Glacier へアーカイブするとか出来るからそういうのやると良い感じになる。
新しいサーバ立ててデータベース構築し始めたときもこれ落として cron で回しとけばとりあえずのバックアップは出来るっていう自分なりのお手頃感出せたと思う。