Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mastodon
Search
Keiji Matsuzaki
April 28, 2017
Technology
0
120
mastodon
mastodonについて話しました
Keiji Matsuzaki
April 28, 2017
Tweet
Share
More Decks by Keiji Matsuzaki
See All by Keiji Matsuzaki
note engineer meetup #3 インフラの現状 / note engineer meetup #3 infra
futoase
4
1.1k
ハマったところ 表参道.rb #44 / into a problem
futoase
0
1.1k
note meetup #2 Electronを利用した10面ディスプレイの操作 / Controll of gaienmae display
futoase
0
760
susumekata
futoase
1
740
freee-wacul-web-app-lt-one
futoase
0
1.9k
Engineer All Hands #5 (freee) 「インフラ」
futoase
0
490
soracom-go
futoase
0
360
AWS Summit Tokyo 2015 freee
futoase
19
20k
freee-shigure-matsuri-20150321
futoase
8
2.1k
Other Decks in Technology
See All in Technology
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
1
630
生成AIでセキュリティ運用を効率化する話
sakaitakeshi
0
220
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
240
AIエージェントの活用に重要な「MCP (Model Context Protocol)」とは何か
masayamoriofficial
0
300
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
19
9.2k
「魔法少女まどか☆マギカ Magia Exedra」の必殺技演出を徹底解剖! -キャラクターの魅力を最大限にファンに届けるためのこだわり-
gree_tech
PRO
0
580
Kubernetes における cgroup driver のしくみ: runwasi の bugfix より
z63d
2
230
Skrub: machine-learning with dataframes
gaelvaroquaux
0
120
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.5k
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
570
[RSJ25] Feasible RAG: Hierarchical Multimodal Retrieval with Feasibility-Aware Embodied Memory for Mobile Manipulation
keio_smilab
PRO
0
110
Featured
See All Featured
Scaling GitHub
holman
463
140k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Side Projects
sachag
455
43k
Building Applications with DynamoDB
mza
96
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
How to Ace a Technical Interview
jacobian
279
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
雑Con #6 Mastodonについて
[email protected]
自己紹介 •
[email protected]
• freee K.K. • ソフトウェアを実装する人 • 給与計算freee
None
mastodon
mastodon概要 • GNU Social compatibleなRails製のSNSサービスを実現するアプリ • fist commit -> 2016年2月
◦ https://github.com/tootsuite/mastodon/tree/9c4856bdb11fc9311ab30a972 24cee3dfaec492f • インスタンスという概念のもと、各ホストがmastodonをサービスとして運用する • インスタンス間の連携も可能
流行り
2017年4月になってから急速に流行りだした • アスキーでmastodon紹介の記事が出る ◦ http://ascii.jp/elem/000/001/465/1465842/ • それを見たぬるかるさんがmstdn.jpを立ち上げ • 4月15日〜ぐらいにTwitter上で拡散、各種メディアで取り上げ •
Dockerfileがgithubリポジトリにホスティングされており、個人で気軽に立ち上げら れるためインスタンスが爆発的に増える • pixivがpawoo.netを立ち上げ • ドワンゴがfriends.nicoを立ち上げ • mstdn.jpの管理者ぬるかるさんがドワンゴに就職決定 ◦ http://www.itmedia.co.jp/news/articles/1704/24/news045.html
技術的な特徴 Specs-and-RFCs-used.mdより OStatus / Salmon / Portable Contacts Atom /
Atom ActivityStreams / Atom Threading PubSubHubbub / Webfinger / Link-based Resource Descriptor Discovery
OStatus 2012年にW3C標準化された技術。幾つかのプロトコルと取り込んだものの総称。 ソーシャルネットでやりとりを行うために制定された。 利用している技術: Atom, Activity Streams, PubSubHubbub, Salmon, Webfinger
PubSubHubbub • 発音しづらい • Google発の技術 • データの送受信で、クライアント・サーバの負荷を軽減するための技術 ◦ 能動的にデータを送信したいクライアントが hub側にPush形式で情報を送信する
◦ データを受け取るサーバは hubからデータを受信する ◦ http://unoh.github.io/2009/08/19/what-is-pubsubhubbub.html • 名前がWebSubに変わるみたい (Draft) ◦ https://w3c.github.io/websub/
Webfinger • https://webfinger.net/ • HTTPを利用し、インターネット上で特定のユーザ情報を返す • RFCで仕様が定義 • Mastodon内での実装 ◦
Gemを利用している (mastodon作者が実装) ◦ Controller
Salmon • http://www.salmon-protocol.org/ • メッセージのやりとりに利用 ◦ フォローする ◦ ブロックする •
Mastodonでの実装例 ◦ Gemを利用している (mastodon作者が作成)
運用面
運用面 • Ruby on Railsアプリ ◦ Rack middleware (puma)を利用して運用する ◦
特に困ることはなかった • 管理すべきプロセスは3つ ◦ Web Application, API用サーバとなるプロセス ◦ SidekiqにてMailer, Push, Pullを処理するジョブキュープロセス ◦ Streamを処理するnodeプロセス ▪ Websocketを利用する ▪ タイムラインの処理を行う ▪ source
試しに立ててみた mstdn.shisaku.tokyo
None
お一人様インスタンスでは • t2.mediumであれば1台で運用可能 ◦ CPU 2core, memory 4GB • 誰かをリモートフォローしないと始まらない
• federation timeline が色々流れてくるけど余裕 • S3にメディアデータを保存する運用にしなければ予算推測しやすそう • Sidekiqプロセスが頻繁にジョブキューを処理するのが気になるが、詰まることはな い • SSL証明書 ◦ 今回はACM使ったが、ちょっと面倒かも • MTA(メールまわり)の設定が面倒だった ◦ mailgunを利用した
雑感 • 本格的な流行りが始まって2週間ほど ◦ 熱量が下がってきたらどうなるのかなという思いはある ◦ 企業が管理しているインスタンスで今後問題が発生したらどう対応していくのかなという思いがある • Twitterの代わりになるか...? ◦
なることはないが細かなコミュニティ運営のためのツールとしてよさそう ◦ 個人が管理しているインスタンスの mastodonがアップグレードされずに放置されていくのが増えて いくとどういう問題が発生するのだろう • 個人運用おすすめ ◦ APIもあるし、モバイルアプリの練習台になる (すでにいくつかのアプリが公開されている) ◦ インフラ運用面のノウハウもたまる • Mastodonの設計がきれいなので参考になる ◦ Ruby on Railsでお仕事している面で大変参考になる
参考資料 • Github mastodon repository • Mastodon instances • Mastodonとその脱中央集権の仕組み
• https://medium.com/@Gargron • gnusocial や mastodon の哲学