ConoHaでMastodonインスタンスを立てた話

「ConoHaでMastodonインスタンスを立てた話」のアイキャッチ画像

このはちゃんは清楚かわいい!ということでこんにちは、でぃぐらてぃーむ(旧かっぱてっく)です。ブレザー服は正義。
今年は遂にソロCDデビューを飾るそうで、このはちゃんの活躍の場が少しずつ広がっていくのを見るのが、ConoHaの1ユーザーとしてすっごく楽しみです。

さて、今回はこのはちゃんの清楚かわいさについて……ではなく、「ConoHaでMastodonインスタンスを立てた話」というテーマで語っていきます。
4月からConoHaのVPS上で「でぃぐら丼。」というインスタンス(サーバー)を運用しており、現在もMastodonのバージョンを随時上げながら運用しています。
運用中心の話になり、技術的な話は少なめになりますが、「こんな環境で動かしているよ!」という参考になれば幸いです。

「でぃぐら丼。」のシステム構成

「でぃぐら丼。」は以下のシステム構成で動いています。実はこのサイトや、依頼のファイルのやり取りに使っているownCloudと同じVPS上で動かしています。
また、ConoHaからのMastodonアプリケーションイメージの提供開始前にセットアップしたこともあり、イメージを使わず自力で構成しています。

  • プラン: 1GBプラン(東京リージョン)
  • OS: Ubuntu Server 16.04
  • メールサーバー: 別途メールアドレス用に契約しているお名前メールを流用
  • LXDによりMastodon部のみコンテナ化、mod_proxy経由でコンテナ内とやり取り

Mastodon自体のアップデートについては、少し前までReleasesのアーカイブを展開してから、新しいバージョンのディレクトリにDB系を移動して……という手段を取っていましたが、2017年12月4日に公式ドキュメントに記載されているGitでのアップデートに切り替えました。

なぜMastodonインスタンスを立てようと思ったのか

流行りに乗りたかったから……という理由も勿論ありますが、それ以上にインスタンスごとにルールを規定できること、ネタバレ防止機能とも言えるコンテンツワーニング機能に魅力を感じたのが大きな理由です。
特にインスタンスごとにルールを規定できることは当時、Twitter含むSNSやコミュニティとの付き合い方に悩んでいた、かつルールを作って運用するのが好きな自分にとって「これはもしや行けるのでは?」と思うほど魅力的でした。
また、例え独自でインスタンスを立ち上げても、リモートフォローという形で他のインスタンスと繋がれることも、インスタンスを立ち上げるのに夢中になるほど興味を持った理由だと、当時を振り返ると思います。

余談ですが、インスタンスが立てたときはちょうどPawoo上でやり取りされるコンテンツが理由で、海外のインスタンスから接続をブロックされた騒動が発生した時期でした。
ブロックした理由を詳しく見て「あー、なるほどね」と思い、かつ今までは最悪の場合、国外の基準で同様の理由でサービスから追い出されてしまうケースもあったことから、納得と同時に分散型のメリットを感じたのを覚えています。
が、その時に世間や(特にある種の)絵師さんの反応などを見て、分散型の難しさも実感したものです(正直今もそこで悩んでいます……)

ConoHaで動かすMastodonってどんな感じなの?

ホストにSSDが採用されていることもあってか、アイコンなどの読み込みで遅いと感じたことはありません。少なくとも僕の感覚だとめちゃ速です。
ConoHa側の仕様などでトラブルが起きたこともなく(逆にストレージをうっかり使い切ったりなど自分起因のミスが非常に多い)、設置から半年経った今でもきちんと動いてくれています。
セットアップもそんなに時間がかからずに終わり、「本当にこれで大丈夫……だよね……?」と不安になったほどです。

もちろんインスタンスの規模などに左右される、いわゆる「個人差があります」な部分にはなりますが、「よし、インスタンスを作ろう」と思った時にサクッと作れて、かつ安定して運用できるのは大きなメリットだと思います。

今後の課題

メモリが足りない

システム構成で書いたとおり、現在使っているVPSは1GBプランです。そのため、「SSHでログインするとメモリ使用量が70%超え」ということがよくあります。
最近のバージョンでは、assets:precompile中にWebpackが途中でメモリ不足を理由にFailedを返すようになってしまいました。
スワップファイルを作成してSwapをそちらに逃がして回避したものの、今後のことを考えるとあまり好ましくないことは事実なので、2GBプランへのアップグレードを検討した方がいいのかも。

publicフォルダ絡みがちょっと面倒

システム構成で書いたとおり、うちのインスタンスはLXD上で動かし、mod_proxyで繋いでいます。それは静的なエラー画面なども載せたpublicフォルダーも同様です。
なのでそのままだと、コンテナが万が一落ちた場合、そのままだとMastodonの静的エラー画面すら出せない状態に陥ってしまいます。
自分はpublicフォルダの必要なファイルを適宜コンテナ外にコピーするという手を取っていますが、効率面で見ると面倒だなとアップデートをかける度に思います……。

タイムライン上でほぼぼっち

一応自分が使うためにセットアップしたこともあり、自分のインスタンスへの新規登録を受け付けていないからというのもあるのですが、やはりTwitterに比べるとまだまだフォローしたい人がMastodonで活動している人が少なく、結果ホームも連合もタイムラインの大部分をbotのトゥートが占めるという事態が起きています。
仕方ないと言えば仕方ないのですが、やはりこれは今後の大きな課題だと思っています……。

かと言って自分以外はうちのインスタンスに入れないんだ!という訳でもなく、知り合いの人(特に同人活動を行なっている人)を誘いたい気持ちもあります。
2.1からリンクによるユーザーの招待機能が実装されて、新規登録を受け付けてない場合のユーザー作成周りが少しやりやすくなりそうなので、ちょっと期待しています。

おわりに

ここまで駆け足でConoHa上でMastodonインスタンスを立ち上げた理由や実際に運用しての感想、そして課題を語ってきました。
やはり大手のインスタンスに参加する人が多くはありますが、自分でインスタンスを立ち上げるのも面白いよ!ということが少しでも伝われば幸いです。

去年3月からサイト関係でかなりConoHaにお世話になっていて、今年そこにMastodonインスタンスが加わったのですが、清楚かわいいだけでない、頼れる相棒だと思います。
今年は(実は昔自分で作ろうと思って断念した)モバイルアプリもリリースされ、これからのConoHaの進化にも期待したいです。

それでは、このはちゃんと一緒に楽しいトゥートライフを!