マストドンの自前インスタンスをたった2ユーザーでストレージ不足に追い込んで飛ばした話
いくらなんでも暑すぎるというこのいらだちをぶつける先がなくて風呂の水をひたすらパンチする日々を過ごしています、松井です。
さて、以前にマストドンのお一人様インスタンスを立てたのですが、この度めでたくご臨終しました。
原因はタイトルの通り、ストレージの容量不足になり容量を削減する作業もままならなくなったのが原因です。というか、面倒になっただけなのですが。
インスタンスには2ユーザーしかいなかった上、ほとんど投稿もしていませんでした。それなのになぜ容量不足になったのか。
実は、APIを使って色々と遊ぼうと思って、それようのアカウントを作り、20,000ユーザー近くをフォローしていました。
それもあってか、インスタンスが認識しているユーザー数が30,000を超えたのですね。
そうすると何が起こるかというと、それらのすべてのユーザーのデータを自分のインスタンスにコピーしてくるのです。それによって50GBのストレージが食いつぶされるという。
このあたりが分散システムの弱点というかなんというか。同じデータをあちこちのサーバーで持っているし、常にデータをプッシュしている状態でトラフィックの消費がえげつないことになっています。
こういった仕組なので、インスタンスを立てるにはサーバーのスペックがVPSサービスの最安プランだと相当心もとないことになります。
僕の用途だと、単にユーザーデータを使いたいだけだったのでインスタンスを稼働させておく必要もないかなと思い、これを機にインスタンスを潰しました。
今後は mstdn.jp の API にアクセスして、ユーザーデータをデータベースに保存して使うようにしていくつもりです。
こうしたトラブルに限らず、投稿した内容を削除してもリモートインスタンスに残るというようなこともあることですし、データの保存を分散ストレージにするなどの対策をしていかないと結構厳しいんじゃないかなぁと思ったりしています。
Winny とか今もアップデートされていればちょうどいい保存先になったかもなぁ。
まあ、今なら Storj とか IPFS という選択肢もありますが。
参考
- Storj (https://storj.io/)
- IPFS (https://ipfs.io/)