はんドンクラブ 運営ブログ

Mastodonインスタンス「handon.club」の運営ブログです。コラムなど,Mastodonに関する一般的な記事も投稿予定です。

インスタンスの振り返り(1/2:歴史で振り返る)

Mastodonインスタンス管理人,handon.clubのはんです。今年もお世話になりました。

2018年ももう終わりと言うことで,handon.clubについて,今年の振り返り記事を書きたいと思います。とはいっても,handon.club 自体は2017年から運営していますが,過去こういった振り返り記事は書いたことがありません。そこで,せっかくの機会ということで,handon.club 立ち上げ以後の運営を振り返った記事を書くことにしたいと思います。

ただし,書きたいことが多すぎてボリューミーになってしまいました。そこで,またまた2部制(前半・後半)とさせていただこうと思います。まずはhandon.clubの歴史について,私が覚えている範囲のことを書いてみようと思います。別途アップロード予定の後半の記事では,「データで振り返るhandon.club」として,もう少し定性的な評価を行ってみようと思います。

はじめに

この記事では,handon.clubというインスタンスの技術的な話と,handon.clubユーザによって形成されているコミュニティの話,両方を記載しています。

以下を読んで頂く前にお伝えしたいのは,コミュニティの雰囲気や話題に関する話は,あくまで「LTLを見ている1ユーザとしての感想」である,ということです。私の存じ上げない方がクローズドで会話されている場合もあります(実際にそういう事例がいくつかあることは知っています)。そういったトゥートについて,私は残念ながら見ることができませんので,私の観測範囲(※言葉が古い)での出来事だとご理解下さい。

まとめます。この記事では,技術的な話は「handon.clubの管理者」としての振り返りをしていますが,コミュニティの話についてはそうではありません。あくまで「handon.clubの一人のユーザ」としての振り返りである,としてご理解頂ければと思います。

2017/4/14 インスタンスの立ち上げ

完全にノリでインスタンスを立ち上げました。当初は自分専用の「おひとりさまインスタンス」にするつもりでしたが,公開してみたところ「使いたい」と言って頂いた方が多かったため,アカウント登録を受け付けました。この当時は,ここまでの規模に成長するとは思っておらず,サーバー構成もかなり適当でした。

2017/10/22 カスタム絵文字対応

少なくともhandon.clubに限れば,Mastodon自身の新機能追加にともなうアップデートのうち最も影響が大きかったのは,カスタム絵文字に対応した2.0へのアップデートだと思います。Mastodon界隈としても,他のインスタンスとの差別化が出来ずに居るなか,カスタム絵文字対応は差別化のため大きな要素となりました。

あまりに登録してある絵文字が多すぎると自分の使いたい絵文字を探すのが大変になってしまいますので,最近のhandon.clubでは,カスタム絵文字を大幅に整理し,クライアントからもWebからもできるだけ簡単にカスタム絵文字が探せるよう工夫しています。また,最近は絵文字の追加はユーザから要望があった場合のみにしています。場合によっては,利用頻度の少ない絵文字は削除したり,リネームを行っています。検索機能がもっと使いやすくなるとよいだけの話なのですが,当面はこういう地道な対応を続けていく予定です。

2018/4/2 初めての大規模障害

ソフトウェアのバグとオペレーションミスが重なり,丸1日サーバーを停止させました。思えばこれが,今までに一番大きな障害です。この障害発生時,データの消失リスクがあったため,とてもヒヤッとしたのをよく覚えています。この障害を契機に,データのバックアップを始めました。現在,トゥートやアカウント情報などの重要な情報は厳重なバックアップを行うようにしましたので,例えば東京が全て壊滅するくらいではデータは消えないようにしているつもりです。

なお,今年発生した障害は以下の通りです。皆様にはご迷惑をおかけし,申し訳ありません。今後,上記のバックアップに加え,監視体制強化(=障害発生時にすぐ気づけるようにすること)にも取り組んでいきたいと思います。

# 発生日付 発生期間 原因 再発防止策
1 2018/4/2 24h程度 ソフトウェアバグ 検証環境の確立
2 2018/9/26 1h程度 さくらVPS 計画メンテナンス通知の見落とし メールチェックの徹底
3 2018/10/28 0.5h程度 さくらVPS 障害 (リスク許容)
4 2018/10/29 0.5h程度 さくらVPS 障害 (リスク許容)

少し話は変わりますが,2017年4月のMastodon第一次ブーム直後,他のインスタンス管理者が「データを消失させた」という事故をよく聞きました。jp鯖も何度もデータのリセットを行っていましたよね。handon.clubでは,こうならないよう細心の注意を払っていました。その甲斐もあり,立ち上げ当初からのすべてのトゥート・全投稿画像を欠けることなく保持しています。一応これは,数少ない自慢です。

2018/8 ユーザの大規模増加

今年のhandon.club,ましてやMastodonの歴史を振り返るにあたり,忘れてはならないのはイベントは2018年8月でしょう。TwitterAPI変更により,Userstreamが段階的に廃止され,またサードパーティクライアントも閉め出されるのではないかという懸念も後押しして,第二次Mastodonブームが勃発しました。

handon.clubも例外ではなく,このときに非常に多くのユーザが登録して頂きました。以下に示しているのは当時の負荷グラフで,緑の線がsidekiqと呼ばれる重要なプロセスが処理した仕事の量を表しています。8月に大幅に上昇していることが分かるかと思います。

f:id:highemerly:20181231012038p:plain
負荷グラフ(sidekiq)

当時のhandon.clubは,一時的に高負荷になり,加えて軽い攻撃を受けていました。また,あまりのユーザ急増に耐えられず,新規ユーザ登録を数日中止したこともありました。当面はしのいでいましたが,この完全解決のために,前々より検討していた大容量のハイスペックサーバへの移転を決意しました。

また,私感ではありますが,この頃から,他のインスタンスとhandon.clubの間で「雰囲気の差」ができてたように思っています。これまでは他のインスタンスと同じような会話が多かったのですが,「LTL(ローカルタイムライン)の話題」と「FTL(連合タイムライン)の話題」に明らかな差が出てきたように思います。最初のきっかけは何だったのでしょうね。もしかしてヤクルトかな?

2018/9 サーバ移転

ユーザの皆さんは意識していないと思いますが,はんドンクラブは2018/9にかなり大規模なメンテナンスを行いました。このメンテナンスではスケールアップ(=たくさんのユーザを収容できるようにすること)を目的に,ハイスペックサーバへ環境を移行するという作業を実施しました。つまり,全く別のサーバに,全く別の構成で,全てのデータを移行したのです。

この作業は非常に大変でした。特に苦労したのは,(1) 新しいサーバでの各種パラメータのチューニング,および(2)画像の移行でした。

前者は,できるだけ少ないリソースでスケールするサーバを構築するための努力を指します。実際にやっていることは,様々な設定ファイルのパラメータのチューニングです。やらなくても動くので,これはもはやエンジニアとしての意地みたいなものですね。

ただこの作業は,私にとって本当に勉強になりました。また,結果として,サーバもかなり安定動作するようになりました。

ちなみに,実は今でも,日々の細かなチューニングは続けています。最近では,データベース周りのパフォーマンスが少し改善したはずです(ユーザは気づかないレベルだと思いますが・・・)。引き続き安定運用に努めたいと思います。

後者は,データ量の多い画像データを,効率的かつ確実に移行する手立てを考える作業です。このためにAWSに検証サーバをたくさん立て,何度か移行の試験をしたのを覚えています。仕事でしか作ったことのなかった「手順書」も作成しました・・・。

2018/9 サーバのカンパ集め

前節で説明したとおり,9月にはハイスペックサーバへの移行を行いました。ただ,問題があります。スペックが高いということは,費用も高いということです。解決に向け非常に悩みましたが,皆さんからfantia経由でカンパを集めることにしました。その為に電気通信事業者の届出も行いました。

fantia.jp

実際には,私の想定を上回る額のカンパを頂いており,みなさんには感謝しかありません。。大変助かっています。fantiaで頂いたカンパは全てサーバ運営費用として活用しており,おかげで私の負担額はかなり少なくすんでいます。繰り返しですが,本当にありがとうございます。

なお,カンパは決して強制ではありませんので,無理なく続けていただければと思います。お金を払っていないから使ってはいけないということも決してありませんので,皆さん是非,たくさんサーバをいじめてあげて下さい(また頑張ってチューニングしないといけないのですが・・・)。

電気通信事業者については以下の記事もあわせてご参照下さい。

handon.hatenablog.jp

より細かいhandon.clubの歴史一覧

単純なバグ追加のアップデート等はこの記載から除外しています。

日付 分類 出来事
2017年4月14日 handon handon.club開設、v1.2、ユーザ30名弱でスタート
2017年4月22日 一般 初めてのアップデート。他インスタンスでのデータ消失事故が多発
2017年5月 一般 mastodon.daily問題の多発
2017年9月17日 handon 機能追加アップデート(v1.6: activitypubへの対応)
2017年10月22日 handon 機能追加アップデート(v2.0: カスタム絵文字機能の追加)、カスタム絵文字会話が広がる
2017年12月16日 handon 機能追加アップデート(v2.1: リスト機能)、このころからアップデート時のダウンタイムを気にし始めた
2018年4月2日 handon 初の大規模障害、丸1日サーバ停止
2018年2月 handon 初めてオフ会を観測(※管理人目線)
2018年5月 handon 1ヶ月程度新規のリモートフォローが出来なかった問題を対処、このころからアップデート後のテストを強化
2018年7月 handon 初めてのスパム垢を観測、以後急増する
2018年8月 一般 TwitterでのUserstream廃止、Mastodonユーザ急増
2018年8月16日 handon 登録者数100名を突破
2018年8月17日 handon ユーザ数急増のため緊急メンテを実施、新規ユーザ登録を受け付けられなくなる
2018年8月21日 handon 新規ユーザ登録受け付け再開
2018年8月26日 handon 大規模メンテ、6時間程度停止。画像サーバをスケールアップ。
2018年8月31日 handon 初の公式オフ会(?)
2019年8月末 一般 jp鯖、1回目の閉鎖騒動。その契機か、handon.clubのアカウント登録が増える
2018年9月1日 handon 届出電気通信事業者として手続き完了、カンパを集め始める
2018年9月2日 handon 利用規約を書いた
2018年9月頃 handon LTLに変化、handon.club 限定の話題が多くなった印象 (※管理人目線)
2018年9月5日 handon リソース増強のための大規模メンテ、2時間停止。GMO→さくらへサーバを移管
2018年9月5日 handon 機能追加アップデート(v2.5: ユーザプロフページの大幅変更)
2018年9月24日 handon IPv6アクセスに対応
2018年9月 一般 jp鯖、2回目の閉鎖騒動。10月よりきぼうソフトへ移管することが発表
2018年9月26日 handon 大規模障害、1時間程度サーバ停止。その後トゥート時間がずれる問題が発生
2018年10月 一般 Pawooアプリの開発終了が発表
2018年10月27日 handon 完全招待制へ移行
2018年10月27日 handon 初の大規模オフ会(しゃぶしゃぶ)
2018年10月28日 handon 大規模障害、30分程度サーバ停止。さくらインターネットの障害
2018年12月6日 handon 公式マスコットキャラ(ドン美ちゃん)の誕生

おわりに

ここまででも大分長いですね。。 後半記事にもご期待下さい。