Lazuli

らずり

DatabaseS3Backup というツールを作った

はじめに

データベースのデータを S3 にバックアップするツールを作った。PHP! PHP! PHP!
一日に一回くらいバックアップを取っておけばもし心が壊れてしまいそうな諸問題が起きたとしても昨日のデータが S3 あるからまあいいかという気分になれる。心の余裕は大事。マンキンでも言ってた。

app2641/DatabaseS3Backup · GitHub

使い方

まず必要なライブラリを 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 で回しとけばとりあえずのバックアップは出来るっていう自分なりのお手頃感出せたと思う。