Amazon S3とは、99.999999999%の堅牢性を誇示する事実上一度データを預けると消えることのないデータストレージです。バックアップはシステムの健全な運用を行ううえで、非常に大切な作業ですが、HDDが飛んだり、データを誤って消してしまったり、データベースのバージョンアップで単純にデータをレストアするのが難しくなったり、、とどこまでいっても心配が絶えません。
つまり、「安心するためにバックアップするけど、きちんとバックアップしたデータが機能するかどうか心配。。」といった、心理的矛盾がつきまといます。これを解消するためにはバックアップ先の堅牢性を担保することと、データベースシステムの仕様に左右されないフォーマットでのバックアップだと考えました。
そこで登場するのが「django-s3-backup」です。githubにて公開していますのでご覧下さい。
このアプリの特徴は以下の通りです:
- manage.pyサブコマンド(backup, restore)の提供
- DB仕様に左右されない汎用フォーマットJSON形式によるS3へのバックアップ
- 並列アップロードによる高速化(python27+)
- 巨大テーブルのサポート
- DjangoがサポートするDBMS/NoSQLのサポート
- Postresql, MySQL, Oracle, SQLite, MongoDB, SimpleDB, CouchDB etc...(NoSQLは要django-nonrel)
- マイグレーションツールとしての利用も可能
- トランザクションのサポート
- メモリ効率を意識したJSONストリームencoder/decoder機能
ライセンスは「MITライセンス」ですので、みなさんいろいろと使ってみて下さい。
また、より使えるものにするために協力者も募集中です。
ご要望・ご協力をお待ちしております。
次回は、使い方について解説します。