2020年05月24日

【Mastodon】昨日「LIBERA S2」をメンテして思ったこと

LIBERA S2

 昨日、私が分散型SNSのプラットフォーム「Mastodon」を用いて運営しているリベラル(自由主義者)専用コミュニティ「LIBERA S2」において、サーバOSからの再インストールを含むメンテナンスをおこない、無事完了致しました。

 ご協力いただいた皆様、ありがとうございました。

 サーバOSの再インストールを含むメンテナンス、何度もおこなっているのですが、何度やっても慣れませんね。

 昨日のメンテナンスは、Mastodon本体プログラムのバージョンアップとは無関係で、2週間ほど前におこなったバージョンアップ作業以降に生じていた不具合の解消のためのものでした。具体的には、タイムライン(特に連合タイムラインとローカルタイムライン)のストリーミングが機能していなかったというものです。結局原因はわからず。しかし、現行最新バージョンのv3.1.4適用後に発生したことだけは間違いありません。

 昨日のメンテナンスでおこなった作業の流れは、次のような感じでした。

  1. データベースおよび設定ファイルのバックアップ (※ メディアは外部ストレージを使っているためバックアップ対象外)
  2. サーバOSの再インストールとサーバ初期設定 (※ さくらのVPSのスタートアップスクリプトを使うため、この時点でMastodonもインストールされる)
  3. Mastodonの最新化
  4. LIBERA S2」の設定とテーマの復元
  5. LIBERA S2」のデータベースの復元

 そのうち、意外に手こずったのは、データベースの復元でした。

 「LIBERA S2」に限らず、Mastodonではデータベースエンジンに「PostgreSQL」が採用されています。

 PostgreSQLでは、データベースのダンプをテキストファイルに保存することができます。

 当然ながら、データベースの中身が大きくなるとダンプファイルも肥大化してゆきます。

 昨日メンテナンス直前の時点(2020年5月23日・13:00過ぎ)で取得したダンプファイルは、4GB以上もありました。

 2年以上も運営していれば、いくらアクティヴ・ユーザ数の少ない「LIBERA S2」でも、これぐらい大きくなるのかもしれませんが、実は肥大化の原因は明らかで、「LIBERA S2」に設置しているニュースbotアカウント「LIBERA News 2」が毎日数十件のニュース記事を投稿しているためです。これは私の観測している限りでは、私自身を含む全アクティヴ・ユーザの中でもダントツに投稿数も投稿頻度も高くなっています。

 参考までに、「LIBERA News 2」の運用を開始し、旧ニュースbotアカウント「LIBERA News」(初代)のアカウントとデータを消去してからまだ日が浅い、2019年11月時点でのダンプファイルの容量と比べてみると、昨日時点でのダンプファイルの半分強ほどの容量しかありません。「LIBERA S2」の運営開始が2018年3月11日ですので、いくらユーザ数そのものも増えているとはいっても、ニュースbotが占めているデータ量の大きさがよくわかります。

 残念ながら、現時点では、Mastodonにおいて、特定のアカウントを停止(凍結と言ったほうがわかりやすいかな)せずに、そのアカウントのトゥートを一括削除する方法は存在しないようです。そのうち実装されるだろうと思って高をくくっていたのですが、そのもくろみは見事に破綻してしまいました。

 一応、ニュースbotの運用を今のような態勢で続けても直ちに問題が出ないようにすべく、VPSのストレージの容量を増加させているのですが、このままでは、ストレージが足りなくなる前にバックアップファイルの取得が困難になってしまいます。

 まだ検討段階で決定事項ではないのですが、ニュースbotのアカウントを「LIBERA S2」から切り離し、別のサーバをMastodonの「ホワイトリストモード」を使って設置してそちらで新たにニュースbotを運営する、ということも考えています。しかし、サーバの費用がこちらの持ち出しになってしまうことのほか、以前Mastodonのバージョンがv3.0.1あたりだった時代に一度「ホワイトリストモード」の設置を試みたものの想定どおりに動作せずに実運用を諦めたということもあり、重い腰が上がらない状況です。

 しばらく様子を見ながら、ニュースbotの扱いについては考えてゆこうと思います。

posted by Telmina at 12:33| Comment(0) | Mastodon
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。