【第1回】誰でもできる!自宅で始める分散型SNSサーバー構築 ─── 分散型SNSとは何か?【Misskey】

この記事は、 KENTEM TechBlog アドベントカレンダー2024 9日目、12月9日の記事です。

みなさんこんにちは! KENTEM第二開発部でフロントエンドを担当しているO・Aと申します😺

この記事では、一般家庭の要らなくなったPCを活用して、自宅で分散型SNS(Misskey)サーバーを構築する方法を、12/9~12/13の5日間に分けて、毎日丁寧に解説していきます。

シリーズ目次

  1. 第1回:分散型SNSとは何か? ←本記事 tech.kentem.jp
  2. 第2回:Ubuntuの環境構築手順 tech.kentem.jp
  3. 第3回:ドメイン取得とCloudflare Tunnelの設定 tech.kentem.jp
  4. 第4回:Misskeyのインストール tech.kentem.jp
  5. 最終回:Misskeyのセキュリティ対策、バックアップ方法、パフォーマンス向上、機能追加 tech.kentem.jp

今回は第1回:分散型SNSとは何か?です。



概要(成果物の最終形)

さて、言葉だけではイメージがつかみにくいと思います。

まず、サーバー構築できたMisskeyの完成画面からお見せします。

ホーム画面

投稿フォーム

プロフィール

通知一覧

投稿検索

投稿の通報

メール配信機能(アカウントの有効化など)


また、PWA(ウェブサイトをスマホアプリのように使える技術)に対応しているので、スマホアプリのように使うことができます。

アプリ化

スマホからのTL

投稿フォーム

プッシュ通知対応

このように、非常にモダンなSNSを、あなたも自宅から提供することができます!


そして何よりも特徴的なのは、このSNSは他の人が運営しているSNSとも相互に繋がれるという点です!

「分散型SNS」という言葉を聞いたことがあるでしょうか?

X(旧Twitter)やInstagramのような従来型のSNSとは異なり、分散型SNSは誰もが自由にサーバーを立ち上げ、独自のコミュニティを運営できる新しい形のソーシャルメディアです。

その中でも、日本発の分散型SNSプラットフォームである「Misskey」は、使いやすさと豊富な機能で注目を集めています。


本シリーズでは、シリーズ目次で述べた5つのステップで、誰でも簡単に自宅でMisskeyサーバーを構築する方法を解説していきます。

自分の理想とするSNSを作り上げる楽しさを、一緒に体験していきましょう!

それでは、まずは分散型SNSの基本的な概念から見ていきましょう。



まず、「分散型SNS」とは一体何なのか?

おことわり

本稿での「SNS(ソーシャル・ネットワーキング・サービス)」とは、総務省の情報通信白書*1 及び通信利用動向調査報告書*2に基づき、「利用者がインターネット上で情報を発信し、コミュニケーションするサービス」と定めます。

その中でも本稿では「マイクロブログSNS」*3と呼ばれる分類について取り扱います。

マイクロブログ型のSNSとは、短い投稿(140字〜500字程度)を中心としたSNSのことで、主なインタラクション機能として、

  • リポスト/リブログ(他者の投稿の再共有)機能
  • いいね/お気に入り機能
  • リプライ(返信)機能

を持つものであり、具体的なサービス例として、X(旧Twitter)*4、Instagram*5、FaceBook*6などを取り扱うものとします。


はじめに

皆さんは日頃からX(旧Twitter)やInstagram、FaceBookなどのSNSを使用されているのではないでしょうか?

総務省の情報通信白書によると、世界のソーシャルメディア利用者数は、2023年の49億人から2028年には60億5,000万人に増加すると予測されており*7、個人やビジネスでのコミュニケーション手段としてのSNSの重要性は一層高まっていくと考えられます。

上で例示した従来のSNSには、一つの企業が、そのサービスを利用する全てのユーザーのデータやシステムを管理する仕組みである特徴があります。これを「中央集権型」*8と呼びます。

しかし、中央集権型のSNSには、運営企業の方針変更や経営状況により、サービス全体が突然大きく変更・終了するリスクがあります。(例:Xの買収後の大幅な仕様変更など) また、運営企業が定めた単一のルールに全ユーザーが従う必要があり、コンテンツの削除や、タイムラインの表示順位や、AI学習などが企業の判断で一方的に決定されます。

一方で、近年注目を集めている技術が「分散型SNS」です。

分散型SNSとは、単一の企業や組織によって管理されるのではなく、世界中の無数の個人や組織が管理権限を持つサーバー(インスタンスとも呼ばれる)が、相互に連携して形成されるソーシャルネットワークです。

出典:Why ActivityPub is the future*9

分散型SNSの仕組みは、電子メールのシステムによく例えられます。*10 Gmailを使用するユーザーでも、Yahoo!メールやOutlookなど、異なるメールサービスのユーザーとも問題なくメールをやり取りできます。

それと同様に、分散型SNSでは異なるサーバーのユーザー同士が交流できることを目的としています。

分散型SNSでは、サーバー管理者を自由に選べるため、信頼できる運営者のもとでサービスを利用できます。各サーバーが独自のルールを設定可能であり、不適切なサーバーとの連携を拒否することも可能です。

当然、自分でサーバーを立ち上げることもできます。

つまり......、分散型SNSは、1つの会社がすべてを管理するのではなく、ユーザーが好きなサーバーを選んで参加できるシステムなのです。

各コミュニティが自分たちのルールを決められ、それぞれの個性を保ちながら共存できます。

これは、インターネットが元々目指していた「開放性」と「自由」*11という考え方を実現する技術だと言えます。


分散型SNSの高まり

分散型SNSは、近年急速な発展と注目を見せている技術の一つです。

その成長の背景には、近年のプライバシーへの関心の高まりや、大手SNSプラットフォームの急激なアルゴリズム変更*12、広告展開*13、ポリシーの変更*14、ユーザーが投稿したデータのAI学習など*15への懸念の高まりが関連付けられます。

例えば、代表的な分散型SNSの1つである「Mastodon」*16は、イーロン・マスク氏によるTwitter買収後の2022年10月から11月にかけて、月間アクティブユーザー数が約30万人から約230万人に急増しました。*17

2024/11/17現在、Mastodonの登録ユーザー数は1500万人を超え、*1810000以上のサーバーが稼働しています。

同じく分散型SNSの1つである「Bluesky」についても、2024年11月中にBlueskyアプリのユーザーは300%増加し、デイリーアクティブユーザーは350万人に到達している*19と報道されました。

また、Science誌によると、X(旧Twitter)からBlueskyに科学者が大量に移動していると述べられています。*20

既にX(旧Twitter)で多くの影響力を持つ科学者がBlueskyに移行すると影響力を失うのでは?と思いそうですが、Shashi Shekharらが発表した論文によると、他のSNSで影響力を持つ人がBlueskyに移行しても、その影響力は確立されている*21ということが明らかになっています。

また、ACM Digital Library検索統計によると、分散型SNSに関する研究論文の発表数が前5年間と比較して約2.3倍に増加している*22ことが確認できます。

2024年9月には、分散型SNSの中核を担う技術である「ActivityPub」についてのO'Reilly本*23も出版されました。

ActivityPub by Evan Prodromou

分散型SNSは単なる一時的なトレンドではなく、ソーシャルメディアの新しい選択肢として確実に成長していると言えます。

また、SNSサーバーを立ち上げつつ、外部と接続しないという手法を取ることで、自社のインフラだけで社内SNSとしても使えるかもしれません。

少し文脈は異なりますが、例えばGMOペポパのSUZURIは、公式コミュニティを分散型SNSソフトウェア「Misskey」を使ったサーバー上に立てています。*24

misskey.suzuri.jp

企業アカウントを分散型SNSのネットワーク内に置く企業も増えています。*25


分散型SNSを実現する技術の中核、ActivityPub

分散型SNSの世界では、異なるサーバー間でユーザーの活動を共有し、相互に通信する必要があります。

この課題を解決する重要な技術基盤として、ActivityPubが主に採用されています。*26

ActivityPubは、W3C(World Wide Web Consortium)によって2018年に標準化された通信プロトコル*27であり、分散型SNSの相互運用性を実現する中核技術として機能しています。 ActivityPubの最も重要な役割は、異なるサーバー間でのユーザー活動の共有を可能にすることです。

ActivityPub非対応SNS

ActivityPub非対応SNSは相互に独立しており、異なるサービスとはやり取り(投稿の閲覧、返信、フォロー、いいねなど)できません。


ActivityPub対応SNS

ActivityPubに対応してるサーバーにおいては、あるサーバーのユーザーが別のサーバーのユーザーをフォローしたり、投稿を閲覧したり、リアクションを送ったりすることができます。

これにより、ユーザーデータの移行が容易になり、特定のプラットフォームに縛られることなく、自由にサービスを選択できるようになりました。

さらに、各サーバーが独自のルールや機能を実装できる柔軟性も確保されています。

ActivityPubに対応しているSNSの集合を「Fediverse(フェディバース)」と呼ぶこともあります。

(注:ActivityPub以外のプロトコルを使用している分散型ソフトウェアも一部存在します(主にBluesky)。

それをFediverseに含むかどうかは議論の余地があります*28が、本稿では含まないものとして取り扱います。)


代表的な分散型SNSソフトウェア

Mastodon

joinmastodon.org

最も普及している分散型SNSソフトウェアの一つです。

TwitterライクなUIで、投稿は「ポスト」と呼ばれます。

(以前は「トゥート」という呼び名でしたが、2021年4月22日に作られたプルリクエストにおいて『Post』に変更することが説明・宣言されました。)

世界的にはmastodon.social*29が、日本ではmstdn.jp*30が最も有名なインスタンスです。

Misskey

misskey-hub.net

日本発の分散型SNSソフトウェアで、独自の機能や美しいUI、豊富なリアクションで注目されています。

2024年11月、総ユーザー数は100万人を突破しました。*31

2024/11/06 00:00 〜 2024/11/13 00:00にかけたねとらぼのアンケート*32において、Misskeyは5119票中2112票を獲得し、Blueskyなどの著名SNSに大差をつけて第1位に選ばれました。

最大規模かつ最も有名なインスタンスはMisskey.ioで、Misskeyを開発したしゅいろ氏*33が活動しているのもこのインスタンスです。

なお、本シリーズで採択した技術スタックもこちらのMisskeyとなっております。

💡技術選定の理由

Misskeyは日本発のプロジェクトであるため、日本語ユーザーにとって使いやすい設計になっていることが挙げられます。 UIが直感的で、カスタマイズ性が高く、ユーザー一人一人が好みの使用環境を作り出せます。 また、リアクション機能が豊富で、絵文字を自由に追加でき、コミュニケーションの幅が広がります。

1つの投稿(「ノート」と呼ばれる)あたりの文字数制限も3000字と緩く、より詳細な情報共有が可能です。

技術面では、モダンな技術スタック(Node.js、Vue.js、TypeScript)を採用しており*34、開発者にとって参加しやすいプロジェクトとなっています。

(KENTEMのフロントエンド開発でも、ReactやTypeScriptといったモダンな技術スタックを採用しているので、馴染み深いということもあります!)

tech.kentem.jp

さらに、オープンソースプロジェクトとして活発に開発が続けられており、新機能の追加やバグ修正が頻繁に行われています。

コミュニティのサポートも充実しており、運用面での問題解決がしやすい環境が整っていると言えるでしょう。

以上の理由から、日本語圏で分散型SNSをサーバー構築するうえで、Misskeyは最適な選択の一つだと判断し、採択しています。

筆者もMisskeyプロジェクトを大応援しております!

Bluesky

bsky.app

X(旧Twitter)の元CEOであるジャック・ドーシー氏が支援する分散型SNSソフトウェアです。

2023年2月にベータ版がリリースされ、TwitterライクなUIと使い勝手の良さで注目を集めています。

X(旧Twitter)でのエコーチェンバーによる政治的分断や、不安を煽るコンテンツの拡散により、ジャーナリストや公共の議論を重視するユーザーがX離れしてBlueskyに移行する傾向にあるようです。*35

特に直近の米大統領選挙によって劇的な増加を見せており、米大統領選挙(11月5日)から11月15日までの10日間で、Blueskyアプリの利用が519%増加しているという統計があります。11月22日時点のBlueskyのユーザー数は2160万人に達しています。*36

また、X(旧Twitter)が投稿をAI学習に利用することを利用規約に明文化した*37ため、日本ではイラストレーターなどを中心に不安の声が広がっています。

これに対して、Blueskyが「投稿をAIのトレーニングに利用することはない」と表明した*38こともあり、日本のクリエイティブ層でも移行の流れが生まれています。

⚠ Blueskyは分散型SNSではありますが、ActivityPubではなく、独自のプロトコル「AT Protocol」を採用しています。

このため、「分散型SNSではあるもののFediverseには含まれない」というややこしさを覚えるSNSでもあります。

(一応、プロキシサーバーを立てることで繋がることは可能ではあります。)

以下の記事では、BlueskyがActivityPubを採用しなかった理由*39について深く考察しており、ここではその理由を

  • ActivityPubにはグローバルビューがないため、プラットフォーム上のすべてのアクティビティを見ることが困難である
  • ActivityPubにはアカウントポータビリティがないため、ユーザーはアカウントを別のサーバーに簡単に移動できない
  • ActivityPubにはスケーラビリティがないため、大量のユーザーに対応することが困難である

の3つであると述べています。

おまけ. Threads

www.threads.net

Meta社が2023年7月にリリースしたSNSです。

Instagramのアカウントと連携して利用できます。

リリース時期にX(旧Twitter)が厳しいAPI規制を敷いた事情も重なって、Twitterからの移行先として世界的に大きな注目を集めました。*40

2023年12月にActivityPubへの対応を開始し、Fediverseの一員となりました。

これにより、Mastodonなどの他のFediverse参加SNSとの相互運用が可能になります。

しかし、ThreadsはFediverseに参加してはいるものの、Meta社による中央集権型のアーキテクチャを採用しており、分散型SNSではありません。

これもまたややこしいですね。


分散型SNSの課題

では分散型SNSは完全に中央集権型SNSの代替になりえるのか?というと、現状、いくつかの課題に直面しています。*41

まず、開発・運営面において、表面的には分散型を標榜しながらも、実質的には中央集権的な構造から逃れられないという矛盾があります。

例えばMisskeyでは「Misskey.io*42」という大規模サーバー(インスタンス)を基準に、Mastodonではmastodon.socialを基準に開発が進められており、小規模インスタンス向けの機能は負荷軽減のために廃止されていく傾向にあります。

また、技術面での非効率性も大きな課題です。

分散型SNSでは投稿が全てのインスタンスに配送される仕組みのため、人類が持つデータ量が爆発的に増加していきます。

特に画像や動画などの大容量ファイルが全サーバーに複製されることで、システムリソースの無駄が生じ、その持続可能性に疑問が投げかけられています。

さらに深刻な問題として、一度投稿されたデータをインターネットから削除することが実質的に非常に難しいという特徴があります。

投稿が複数のサーバーに分散保存される仕組みのため、例えば、どこかの悪意のあるサーバーが削除リクエストのみをブロックする可能性もありえます。

一度上げてしまった個人情報をインターネット上から完全に削除する手段がないということです。

(ただしこれは分散型SNSに限った話ではなく、インターネット全般に言えることでもありますね。)


まとめ

分散型SNSは、インターネットの根本的な価値である「開放性」と「自由」を体現する新しいソーシャルメディアの形として、着実に成長を続けています。

先に上げた課題は依然として残りますが、AI学習やプライバシーへの関心の高まりや、大手プラットフォームへの依存度を下げたいというユーザーのニーズを背景に、その重要性は今後さらに増していくと考えられます。

特に日本では、Misskeyの急速な成長に見られるように、分散型SNSへの関心が高まっています。

今後は、より多くのユーザーが自身のニーズに合わせて、従来型SNSと分散型SNSを使い分けていく時代が訪れるかもしれません。

次世代のソーシャルメディアの形として、分散型SNSの技術の発展から目が離せません。


本シリーズの意義と新規性は?

ここまでお付き合いいただきありがとうございました。

本記事で「分散型SNSとはなにか?」が少しでもご理解いただけますと幸いです。


しかし.......いざ分散型SNSを自分で構築する上で、インターネット上の様々な記事が参考になりますが、現状そこには問題点が2つあります。

  • 1つ目は金銭面です。

現在、インターネット上に公開されている分散型SNSサーバー開設記事においては、多くの場合VPSを使用していたり、既存のSNS構築サービス(XServer SNSなど)*43を利用して解説しています。

しかし、やはりサーバーをレンタルする以上、月額料金がかかってしまい、持続可能性に欠けます。

  • 2つ目は、それらの解説記事を自宅のPCに置き換えて読もうとしても、現代の一般家庭においてはポート開放が難しくなっているという点です。

自宅でサーバーを公開しようとすると「ポート開放」が必要になりますが、最近の自宅向けインターネット環境では、セキュリティ対策の強化やIPv4アドレスの枯渇対策として、従来のようなポート開放ができないことが往々にしてあります。(私もそうでした)

特に、ISPから提供される最新のルーターではポート開放機能自体が制限されていたり、キャリアグレードNAT(CGNAT)の採用により技術的にポート開放が実現できないケースが増えてきています。

従来のNATでは、1つの家庭に1つのグローバルIPアドレスが割り当てられていました


しかしCGNATの環境では、ISPのCGNATが間に挟まり、1つのグローバルIPアドレスを複数の家庭で共有されます


本シリーズでは、それらの問題点に対する解決策(ネタバレ:Cloudflare Tunnel)を提示した上で、誰でも簡単に自宅でMisskeyサーバーを構築する方法を解説していきます。

できる限り全ての手順でスクリーンショットを付けています。コンピュータサイエンスに関する特別な知識は必要ありません!

必要なものは、

  • USBメモリ
  • 要らなくなったPC(メモリ4GB以上が好ましい)
  • 100円(←ドメイン代)/年を支払えるプリペイド/デビッド/クレジットカード

のみです。

このシリーズを参考に、誰でも今すぐに自分だけのSNSを立ち上げることができます。

前提知識が身についたところで、次回からは実際に手を動かして、土台となるUbuntuのインストールから始めていきます。

ではまた明日お会いしましょう!


おわりに

最後まで読んでいただいた方に向けて、KENTEMの採用情報のご紹介です👇
KENTEMでは、様々な拠点でエンジニアを大募集しています!

・ICTの力で、建設業の「3K」を解決し、働く人に安心安全を届けたい。

・ KENTEMユーザーの現場の方々が、残業規制内に仕事が終わるようにして、18時には家族で食卓を囲めるようにしたい。

・建設業を支えることで、社会全体を「さまざまなリスクに強い安心・安全な場所」に変えていきたい。

このような理念を掲げて我々は働いております。

建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください!😺
recruit.kentem.jp career.kentem.jp


脚注

*1:総務省の情報通信白書

*2:通信利用動向調査報告書

*3:IT用語辞典 - ミニブログ 【マイクロブログ】 microblogging

*4:X(旧Twitter)

*5:Instagram

*6:FaceBook

*7:総務省の情報通信白書における世界のソーシャルメディア利用者数の増加予測

*8:分散型SNSとは?メリットとデメリット、有名な4つのSNSを紹介

*9:Why ActivityPub is the future

*10:【企画 / マロ雑談】Misskeyはいいぞ!関係者をお招きして語ろう【Vtuber / 村上さん】

*11:インターネット・コミュニティとデモクラシー ─インターネット・コミュニティの「植民地化」をめぐって─

*12:「イーロン・マスクがTwitterアルゴリズムを変更してから怒りと敵意に満ちたツイートの表示が増加した」と研究者が発表

*13:X(旧Twitter)に配信されている Google 広告の背景と現状

*14:「超最悪な改悪」「ブロックの意味ない」 X(Twitter)が間もなくブロック機能変更 ブロックしても投稿見られる変更に批判

*15:11月15日からXが規約変更。AI学習への対抗策はあるのか調べてみた!

*16:「Mastodon」

*17:Mastodonのアクティブユーザー数が250万に到達、イーロン・マスクのTwitterから逃げる人々がさらに増加していることが判明

*18:@mastodonusercount@mastodon.social

*19:2024年11月中にBlueskyアプリのユーザーは300%増加し、デイリーアクティブユーザーは350万人に到達している

*20:Like ‘old Twitter’: The scientific community finds a new home on Bluesky

*21:User Migration across Multiple Social Media Platforms

*22:ACM Digital Library検索統計によると、分散型SNSに関する研究論文の発表数が前5年間と比較して約2.3倍に増加している

*23:ActivityPub

*24:SUZURI倶楽部

*25:次世代SNS「Mastodon」とは?企業アカウントとの親和性をチェック!

*26:フェディバース (Fediverse) ことはじめ

*27:ActivityPub W3C Recommendation 23 January 2018

*28:@syuilo 「AP以外のプロトコルを使用する分散型ソフトウェアをFediverseに含むかどうかは意見が分かれているイメージ」

*29:mastodon.social

*30:mstdn.jp

*31:fedidb.org

*32:「X(旧Twitter)からの移住先」にしたいSNSはどれ?【人気投票実施中】

*33:しゅいろ氏

*34:Misskeyの技術スタック

*35:探し求めた居場所は「Bluesky」にあった--拡散より人重視のSNSよ永遠なれ

*36:Bluesky Sees Greatest Sustained Growth So Far in the US and UK

*37:11月15日からXが規約変更。XのAI学習への回避(設定方法)策とは?

*38:BlueskyがX(旧Twitter)とは異なり「投稿をAIのトレーニングに利用することはない」と表明

*39:BlueskyがActivityPubを採用しなかった3つの理由

*40:「Twitter(X)離れ」が加速?移行を検討する人は4カ月で1.5倍。新SNS「Threads」も候補に

*41:目指すのは「オタク向けmixi」「平成のインターネット」……? ユーザー爆増の純日本産SNS『Misskey』開発・運営インタビュー

*42:Misskey.io

*43:XServer SNS