ハンモックでRelax
こんにちは、すぎもとです。
NemakiWare のデータベース CouchDB を Amazon S3 にバックアップするツールを作りました。 Tsuridoko という名前で同梱されています。
吊床というのはハンモックのことです。夏の季語です。CouchDB 周りのライブラリは寝具などを中心にしているので、Amazon と関係ある寝具はなんか無いかなと思ってしらべてみるとアマゾン川を下る船ではハンモックで寝るようなので、ちょうどいい名前だと思って採用しました。
まあ、中身は単純で CouchDB のファイルもしくはダンプファイルを S3 にあげるだけです。直接ファイルを指定した場合はファイルそのもの、URL を指定するとネットワーク越しにダンプして S3 に送り込みます。よくよく考えるとCouchDB にしか依存してないので NemakiWare とくっつけておく必要もなく、別プロジェクトに切り出してサブモジュールにしても良いかもしれません。しかしまあ、CouchDBはなんか適当にバックアップしても壊れないですね(言い方が悪い)。ソフトウェア的に不整合が起きることはありますが、再度やり直せば整合性が保てるようになるのでこれはこれでいいんだろうな。仕組みを考えればそうかという感じはしますが、 RDB やってた身としてはこの適当バックアップはびっくりです(言い方)。
今回使った Amazon SDK の S3 関連のライブラリは、URL を切り替えると S3 互換の別のストレージも指定できるようなので Open Stack Swift とか Riak S2 とかにもバックアップできるのは面白いですね。
今回はバックアップ先ですが、 NemakIWare のバックエンドとなるストレージを CouchDB ではなく直接 S3 にする仕組みとかもアリなんじゃ無いかと思ってたりしました。Riak にも繋がるのってちょっと魅力的じゃないですか。時間が合ったらやってみたいんですけどね。
いやほんとに、互換性があるコトって素晴らしいですね。S3 の REST API がオブジェクトストレージの標準規格になってくれると良いですね(まあ、なりつつある感じはします)