Yづドン運用開始5周年を迎えて

PCGFが運用しているMastodonサーバーであるYづドンが2022年5月3日で5周年を迎えました。紆余曲折しながらも一つのコミュニティとして5年間運用し続けてこれたことについてサーバー民の方々、外からサポートしてくださった鯖缶・エンジニアの方々などYづドンに関わってくれた全てんの人にとても感謝しています。この記事ではYづドンの5年間の歩みを紹介していきたいと思います。

序章:3.nuの開設

2017年3月、日本でMastodonブームが起き、たくさんのユーザーが集まり、たくさんのサーバーが立ち上がりました。そんな中始まった3.nuというサーバーがYづドンを作るきっかけとなりました。
3.nuはナイセンさんこと株式会社アイティオールが運営していたMastodonサーバーで、ナイセンさんのコミュニティであるナイセン団の方々が集まって主にローカルタイムラインでコミュニケーションを行っていたサーバーでした。私は3.nuをきっかけにMastodonというアプリケーションを知り、自分でもサーバーを建てられるのではないかと思い立ったのがきっかけでサーバーの運用を始めました。

DB編

まず、Yづドンの流れをDBの消失とともに見ていきましょう。

一代目DBのYづドン

最初はさくらのVPSで公式ガイドなどに従って自力でサーバーを建てようとしていましたが、Webアプリケーションサーバーの運用経験がなく、Linuxも初心者だった私は挫折してしまいました。そんなとき、当時友人から譲ってもらったさくらのクラウドのクーポンを手にし、さくらのクラウドがMastodonスタートアップスクリプトを提供開始したので、それを利用して運用を開始しました。運用開始当時はサブドメインなしのy-zu.orgで運用していました。
3ヶ月ほど運用していた頃、アップデートを行うために停止したところでMastodonサーバーとして のy-zu.orgの歴史は終わっています。当時、bundle installを行うとcld3が正常にインストールできないという症状がありました。その不具合を解消できずにサーバー代だけがかさんでいく中、私はサーバーの運用を断念することになりました。これが一度目のデータ消失です。

初代データでの最後の投稿

二代目・三代目のYづドン

2017年7月30日、停止していた初代Yづドンを諦め、比較的値段が安いさくらのVPSを使って1からサーバーを立て直すことにしました。ちょっとだけ知識をつけた私はQiita記事を参考にしながら、今度はDockerでサーバーを構築することにしました。ついでにドメインもmstdnをつけて再スタートすることにしました。
当時のMastodonのdocker-compose.ymlはDBの永続化がデフォルトで行われておらず、コメントアウトを取らないと永続化がされない状態でした。それを知らずに私は永続化をせずにコンテナを停止してしまい、見事初期化されてしまいました。再度コンテナを起こし、三代目DBで運用を開始しました。
三代目DBで運用する中、サーバー民も増え、VPSサーバーのHDDプランでは重くて運用が辛くなってきました。そのままファイルを動かしてupすればそのまま引き継げることがDockerの利点だということも当時は知らず、サーバー移動のやり方がわからなかった私は一から再構築するという愚行に出てしまいました。

四代目のYづドン

SSDで安いVPSを提供している海外の事業者を探していたところ、Scalewayという業者に行き着きました。ScalewayではDockerを用いて構築を行いました。ScalewayはSSDで安いというメリットはありますが、プロセッサがAtomであったり、サーバーのリージョンがヨーロッパしか選べないので、Ping値が常に300~500msでとても快適と言える環境ではありませんでした。そんな中DigitalOceanという事業者を見つけ、移動することを決断しました。以前よりは知識をつけた私は周りの手助けを借りながら、Dockerからデータベースを下ろし、DigitalOceanのVMに内容を引き継いだまま移動させることに成功しました。

五代目のYづドン

2018年4月14日深夜、DigitalOceanで安定して運用できており一喜一憂している中、悲劇はおきました。Postgresのアップデートをしようと、深夜に眠い目をこすりながら作業していた私は、バックアップを外に逃がすことを忘れていました。アップデートガイドのなかのOptionの中にあったapt -y purge postgresqlという項目を実行してしまい、/var/lib/postgresをバックアップもろとも消し飛ばしてしまいました。当時スマホからサーバーを操作していた私は頭を抱えたことを覚えています。

六代目のYづドン

2018年4月15日未明、正気を取り戻した私は、Postgresを再インストールし、DBを再作成しました。現在まで運用されているのはこの六代目のYづドンDBです。その後、DigitalOceanからLinodeに移動するなどを経て現在に至ります。

運用VPS・オブジェクトストレージで見るYづドン

つぎに、VPS業者・オブジェクトストレージ別にYづドンの遍歴を辿って見ましょう。

Yづドン本体

Yづドン本体は
さくらのクラウド→さくらのVPS→Scaleway→DigitalOcean→Linode→現在のサーバー(非公開)
という順番を辿っています。
それぞれの事業者・サービスを利用してきての感想などを述べて行こうかなと思っています。

  • さくらのクラウド
    • さくらのクラウドはさくらインターネット株式会社が運用するスケーラブルなクラウドサービスです。スタートアップスクリプトなどが豊富で、Mastodonを始めるきっかけとなったサービスなのでとても感謝しています。
  • さくらのVPS
    • こちらもさくらインターネット株式会社が運用するVPSサービスです。当時はHDDとSSDのプランが選べるようになっており、さくらのクラウドより安価であったので利用するに至りました。ですが、スペックに見合わない運用をしているとIOPS制限がかけられてしまい、迷惑をかけてしまったなと思うところが正直なところです。
  • Scaleway
    • フランスのクラウド事業者です。フランスとアムステルダムにリージョンを持ち、比較的安価にVMを提供しています。ですが、Pingが遠く、日本からアクセスをすると300msから500msくらいかかります。サポートはしっかりしています。
  • DigitalOcean
    • DigitalOceanはアメリカのクラウド事業者で、世界中にサーバーを持っている比較的巨大なベンダーです。日本から一番近いリージョンはシンガポールで、Pingは150msくらいだったと記憶しています。
  • Linode
    • Linodeもアメリカのクラウド事業者で、世界中にサーバーを持っているベンダーです。日本にリージョンがあることからこの事業者を選びました。

オブジェクトストレージ

Yづドンのオブジェクトストレージは
Wasabi→Scaleway→現在のサーバー(非公開)
という順序を辿っています。

  • Wasabi
    • Wasabiは安価で通信の従量課金が無いオブジェクトストレージでMastodonのおおくのサーバーから支持されているサービスです。ですが私が利用していた当時はとても安定しているとはいえず、よく落ちたり接続できなくなったりしていました。現在ではNTT Arenaが日本リージョンを提供するなど変わってきているのかもしれません。
  • Scaleway
    • Scalewayのオブジェクトストレージは75GBまでの利用なら通信もストレージ代も無料という太っ腹サービスを行っています。遠いですが、これは当時お金が無かった私にはとてもありがたいサービスでした。

5年間鯖缶を経験して

5年間、とても色々なことがありました。5年前はサーバーを触ったことがなかった私は今はサーバーを触るアルバイトをしており、インフラエンジニアを目指して就職活動をしています。最近になってYづドンに集まってきてくれた人もいれば今はYづドンから離れて活躍する人もたくさんいます。私はYづドンに関わってくれたすべての人に感謝しています。
5年間、コミュニティの運営者として、技術的なサーバー管理者として、たくさん学んだことがあります。その一部を紹介したいと思います。

人を大事にするということ。管理者が元気で居ること。

私はコミュニティ運営者として学んだことで一番大きなことは人を大事にするということです。あのときもっと人をあのときの意見を大事にしておけばもっと温かいコミュニティを作れたのではないか、あのときユーザー数を数としてではなく一人の利用者として意識していればよかったなど、後悔や反省は山のようにありますが、それをこれからの良いコミュニケーションの場としてのYづドンの運用に役立てていきたいと思っています。
次に大事だと思ったのが管理者が元気でいることであると思います。必ずとはいえませんが、管理者がアクティブなコミュニティほど元気に生きているように感じます。いきいきしたコミュニティ運営のためにも元気な鯖缶として今後とも運用をしていきたいと思っています。

コマンドの意味をしっかりと理解すること。万全なときにサーバーに触れること。

コマンドの意味を理解せず、コピペでデータベース消失をさせた私がいます。趣味でやっているサービスとはいえ、周りのサーバー、利用者に迷惑をかけたことについてはとても反省しています。
基礎中の基礎ですが、サーバーの操作を行うときはしっかりと計画を立て、そのコマンドを実行するとどのようなアクションを起こすのかをしっかり理解して行うことが大事だなと身をもって感じます。
眠いときにサーバー操作を行ってデータベースを飛ばしました。計画を立て、調子が悪いときや思い立ったときに重要なメンテナンスをしないこと、要は無理をしないサーバー運用が大事だと思いました。

おわりに

しつこいかもしれませんが5周年を迎えることができたのは技術面・コミュニティ面問わずYづドンに関わってくださったすべての人のおかげです。これからも続いていくYづドンをどうぞよろしくお願いします!