WALとGlacier Deep Archive
大学生の頃から自宅にHPの小さなサーバを設置していて、今もその上でいくつかのサービスが動いています。現在広く公開されているサービスの代表例は
Matrixのホームサーバで、過去には
Pleromaや
Plumeのインスタンスを公開していたこともあります。Fediverseのインスタンスを自前の資源で提供することは、単なる金銭的・時間的なコストの節約や振り替えのためだけではなく、Fediverseの理念に照らして非常に重要な意味を持つものです。
さて、自宅サーバ上のデータはZFS(RAID-Z)上である程度冗長化されていますが、同時に複数台が故障すれば流石に耐えられません(過去、HDD1台の故障から交換・復旧した経験はあります)。そのため、これまでは重要なデータの一部を暗号化して無限ドライブにバックアップしていました。しかし、サービス縮小にあたってこのまま置いておくのが難しい大きなデータ群がいくつか出てきたというわけです。
このサーバでバックアップしたいデータは、以下のような性質を持っています。
- 一定期間ごとに継続的に書き込まれる
- 一度書き込まれたデータは頻繁に更新されない
- 一度書き込まれたデータは頻繁に参照されない
- 長期にわたって保持する必要がある
現時点で、データの総量は700GB程度です。無限ドライブと同じ使い勝手がよければ、Google DriveやDropboxなどの個人向けクラウドストレージに置くこともできますが、1200円/TB/月程度となかなか手痛い維持費が発生してしまいます。普段遣いしているSyncにはまだ1TB以上の余裕がありますが、セキュリティを強く重視したサービスなので、サーバにAPIクライアントをインストールしたり、自動的にバックアップする用途には向いていません。
ここまでに挙げたクラウドストレージは、いずれも頻繁に参照・更新されることを前提としており、ある程度迅速な参照・更新への保証が料金に含まれていると考えるのが自然です。オブジェクトストレージサービスの
Wasabiは650円/TB/月程度で、頻繁に更新しない場合はこれらに比べて安価ですが、APIアクセスやデータ転送に従量課金しないことを大きな特徴として挙げており、まだ頻繁に参照されないという性質を活かしきれません。
そこで、
Amazon S3 Glacier Deep Archiveを採用することにしました。ストレージ自体は110円/TB/月程度の低価格で利用できますが、取り出しには開始まで12~24時間かかり、取り出す容量に応じてさらに10000円/TB程度の料金がかかるため、一般的なクラウドストレージとはかなり性質が異なります。また、最低でも180日はデータを保持しなければならないという最小ストレージ期間が定められており、同じデータが頻繁に更新されるような使い方には向いていません。いくつか落とし穴はありますが、今回の目的には合っています。