52万ユーザーを支える!misskey.ioのインフラ構築と運用秘話

詳細情報

集会名 ITインフラ集会
日時 2024年05月25日 22:00 - 23:00
テーマ 52万人を支えるインフラの秘密
発表者 村上さん
発表資料

驚異の成長を支えるmisskey.ioのインフラとは?

VRChatの「ITインフラ集会」で、株式会社MisskeyHQの村上さんが発表した「52万人を支えるインフラの秘密」。misskey.ioは、爆発的にユーザーが増加し、200万円/月のサーバー費用がかかるほど成長しているSNSです。その舞台裏を支えるインフラの設計、運用、そして課題解決について、具体的な事例を交えて解説していきます。

misskey.ioとは?急成長を遂げるSNS

misskey.ioは、村上さんが運営する、イラストや創作活動に特化したSNSです。2021年10月にサービス開始、2024年5月時点で52万人ものユーザーが利用しています。イラストレーターやクリエイターを中心に人気が高く、スケブとの連携など、ユーザーにとって魅力的な機能も充実させています。

misskey.ioのインフラ構成:ベアメタル、クラウド、CDNを駆使!

misskey.ioのインフラは、かなりユニークな構成になっています。

  • ベアメタルサーバー:4台導入。高性能なCPUと大容量メモリを搭載し、キャッシュデータベースやPostgreSQLのインデックスキャッシュに活用。
  • Redis:2台導入。シングルスレッドの特性を活かし、コア数を増やして、複数のプロセスで処理を分散。
  • クラウドコンテナサービス:IDCフロンティアの「クラウドコンテナ」を利用。Kubernetesベースで、自動化された環境を実現。
  • CDN・ワーカー・ストレージ:CloudflareのCDN、Workers、R2を活用。セキュリティとパフォーマンスの向上に貢献。

misskey.ioは、ベアメタルサーバーとクラウドコンテナを組み合わせ、それぞれの特徴を活かしたハイブリッドな構成を採用しているのが特徴です。

失敗から学んだ!インフラ移行の軌跡

misskey.ioのインフラは、最初から今の形だったわけではありません。村上さんは、過去の経験から得た教訓を踏まえ、最適な構成へと進化させてきました。

激安クラウド「Vultr」の苦い経験

当初、コスト削減のために「Vultr」という激安クラウドサービスを採用したものの、ネットワークの不安定さやメンテナンスの頻発、ディスクの故障など、様々なトラブルに見舞われました。

  • 不安定なネットワーク:L3ブリッジの不具合により、パケットロスが発生。
  • ディスクの故障:ベアメタルサーバーのディスクが複数回故障。
  • IPアドレスの重複:ベアメタルサーバーのIPアドレスが重複する問題が発生。

IDCフロンティアへの移行:安定性とサポート体制の向上

これらの経験から、村上さんはIDCフロンティアへの移行を決断しました。

IDCフロンティアに移行したメリット

  • 安定したネットワーク:ネットワークの安定性が向上。
  • 手厚いサポート体制:充実したサポート体制が整っている。
  • コストの最適化:適切な価格設定でコストパフォーマンスが向上。

一方、IDCフロンティアには、管理画面がベアメタルとクラウドで分離していたり、ベアメタルの初期設定が複雑だったりするといった課題もありました。

misskey.ioならではの工夫:スケーラビリティとスパム対策

misskey.ioは、ユーザー数の急増に対応するために、独自の工夫を凝らしています。

ユーザーに応じたスケーリング

misskey.ioでは、タイムライン、投稿、ファイルアップロード、検索など、機能ごとにエンドポイントを分離し、それぞれにワーカーを割り当てることで、負荷を分散しています。これにより、ユーザー数が増加しても、必要な部分だけリソースを増加させることが可能になり、柔軟なスケーリングを実現しています。

スパム対策の強化

海外からのスパムや不正アクセスを防ぐため、misskey.ioでは様々な対策を実施しています。

  • 海外からのアクセス制限:海外からのアクセスを制限。
  • VPNのブロック:VPNゲートウェイの活用により、VPNからのアクセスをブロック。
  • ブラックリスト:IPアドレスやユーザーエージェントなどのブラックリストを活用。

今後の課題:データベースとスパム対策の進化

misskey.ioは、ユーザー増加に伴い、新たな課題にも直面しています。

  • データベース容量の増加:データベースの容量が逼迫。
  • Redisの処理能力:Redisの処理能力が限界に近づいている。
  • タイムラインの表示速度:タイムラインの表示速度の改善が必要。
  • ポジティブな投稿の優先表示:ポジティブな投稿を優先的に表示する仕組みの検討。

まとめ

misskey.ioは、52万人のユーザーを抱えるまでに成長したSNSですが、その裏には、村上さんの創意工夫と試行錯誤が詰まっています。激安クラウドの失敗から学び、安定したインフラ環境を構築し、ユーザーの急増に対応するための独自のスケーラビリティやスパム対策を実現しています。今後の課題も残っていますが、misskey.ioはユーザーにとってより快適で安全なサービスを目指し、進化を続けていくことでしょう。