fediverseと自宅サーバと私

1.9K Views

December 16, 23

スライド概要

第0回 #FediLUG での発表資料です。
個別にこれから掘り下げて発表していく内容をウォークスルーする形で発表させていただきました。

profile-image

長野県から湧いたITエンジニアのようなもの。生水。このアカウントで展開される主義主張は全て個人の見解です。SR400/ZD11S乗り。科甲'12/ISUCON6 1st student/ICTSC6 3rd/ISUCON13 132nd ActivityPub: @[email protected]

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

fediverseと 自宅サーバと私 ふぉの • 2023年 12 月 16 日

2.

リージョン? 自己紹介 長野県岡谷市, 塩尻市 茨城県つくば市 ● ● 趣味 ● ● ● ● 自宅サーバー運用(2008年〜) バイク(2018年〜) 器楽(Vn, Pf 幼少期〜直近ご無沙汰) 国内旅行(2013年〜) 運用しているAP対応実装 ● ● mastodon(2018年10月〜) ma.fono.jp Concurrent(2023年9月〜) con.fono.jp

3.

fediverseにハマるまで

4.

fediverseにハマるまで(1/2) アップローダー運用 ● 当時のサイト https://blog.0day.jp/2011/06/fonojp.html ● ● テキストBBSなどで画像や ファイルを添付するために使 うもの PerlのSnUploaderでPerlを 学び、Rubyで書き直すに 至った 色々あった 色々 ● 悪い動画サイトの配信元にさ れたり ● マルウェア上げられたり、や ばそうところから問い合わせ があったり ● こういうのにかまけけてたら IT系のキャリア以外無理に なったり

5.

fediverseにハマるまで(2/2) UserStreamが廃止に https://forest.watch.impress.co.jp/docs/news/1138187.html 2018年8月のことで、ここまで来ると懐かしいですね Mastodonが話題に ● 開発者として楽しくない 気に食わない ● アップローダの関係あり Rubyは多少 ● 諸事情あってTwitterアカウ ントを転生していた ● docker-composeですぐ 導入できた ● 良くも悪くも自由かつ自分の 責任で残せる投稿するシス テムが欲しくなる fediverseに産声を上げたオタク

6.

fediverseと現実

7.

fediverseと現実(マクロ) 実際分散できてない ● 大規模サーバーでは通報欄が空になることはほぼない ● ● AP実装毎に内部で独自のリア クション手法がある インスタンス内部でのコミュニ ケーションが多い 各位が思う「分散」の方向性と 解像度がバラバラ 規制やスタンス モデレーションの問題 ● ● ● ● 二次元年少NSFWはキリスト教 圏でアウト 政治的コンテンツを嫌って来た人 もいる為CW or 投稿禁止 不誠実な運用・扇動を行うサー バー管理人 単純なモデレーションコスト に押しつぶされる問題

8.

fediverseと現実(ミクロ&個人) コミュニティは 引っ越せない 私はどこに「居る」んだ? 多重生活 ● 耐えられなくて去る人が ● 相似なコミュニティはできた ● ことごとく定着率が悪い ● 最終的に慣れる ● これはAP実装のないSNSす べてに言える ● 見るタイムラインは5つ ● アカウントが散らかる 意外と多い

9.

向き合ったもの

10.

向き合ったもの(1/3) サーバ運用 YAMAHA RTX1210 Cisco Catalyst 2960G-8TC-L (C2960S-24TC-Lは煩かった) SilverStone RM筐体は4柱化したらレール固定予定(ushiku) ThermalTakeタワーはそのまま(ushiku-another) ネットワーク運用 ● 2008-9年頃から運用 ● 同じく ● 基本的に2017年前後から全 てdocker-compose ● IPv4 over IPv6 IPsecで 3拠点相互接続 ● 最近2拠点3ノードでdocker swarm ● IPAMで利用者にアドレスを 貸せる環境を構築中 ● mastodonを2拠点2ノードに 無駄に負荷分散 奇跡的にアクセスランプの瞬間で撮影できたので採用

11.

向き合ったもの(2/3) fono09/ttRelay 特定のタグ付けてmastodon に投稿するとXに中継するや つ ● 開発中の分散型SNS ● 実運用 Issue/小PR出し ● 「多重生活」に対する一つの 答え ● 「多重生活」に対するもう 一つの答え ● APIv2の変更で死んでいた ● ドキュメンテーション ● このスライド駆動で直した: 直 した差分 ● ttRelayは左から右のように中継される totegamma/concurrent totegamma/concurrent-square ● がっつりPRはまだ

12.

向き合ったもの(3/3) mastodon/mastodon ● ● ● 実質名刺だろこれ ほぼおひとりさまながら 2018年からの長期運用 負荷の捌け方的には アクティブユーザーが5倍増 えても余裕なはず DBのバックアップ、通報対応 など基礎的な運用 かんなすきー ● misskeyのインスタンス ● 一時期自宅サーバーで 運用してインフラ担当 ● 色々あって外部の 有償のVPSへ移行

13.

得たもの

14.

得たもの(1/2) mastodon/mastodon バックアップなどを行い、ものぐさでありつつも、 確実に動かし続ける技術/スタンス 変な気を起こさないの大事 ポスグレに向き合う時間 バックアップは確実に fono09/ttRelay 血迷って生のJavaScriptで書き始めて、ヒイヒイ言いながらケアレスな自 分が設計などの知見を駆使してなんとか実装し続けられる体を保つ技術 (TypeScript書けよという批判は受け付けます)

15.

得たもの(2/2) かんなすきー ダウン回数でのSLO的な合意をし、その基準を達せなかったので ホスティングをやめるという失敗経験 ハードウェアRAID構成の断念、可用性とモニタリングの重要性 鯖缶としてサ終以外で運用を明示的に断念するのはこれが初めて totegamma/concurrent 設計思想への共感で触り始めたOSS いち運用者としてのフィードバック、ドキュメント整備という形での「コードを あまり書かない」形から入る経験 https://github.com/totegamma/co ncurrent-world/wiki/Concurrent%E5%8E%9F%E5%85%B8

16.

利用も運用も実装も コミュニティ運営も 公序良俗に反しない全てが fediverseへの貢献! (だと思っている)

17.

今後やること

18.

今後やること(1/2) 3拠点4ノード化 A, B, Cの3拠点があるがノードがあるのはA, Bの拠点だけ Cはネットワーク的には繋がっているがルータ以外特に何もない 分散ミドルウェア再検討 docker-compose運用の延長線上でdocker swarmを使っている 現状のユースケースでギリギリという感覚 このままでいけるなら突っ張るのもあり 10Gノード間増速(やった) 拠点Bは賃貸なのでアップリンクは諦めるが、オブジェクトストレージ配備 する前に物理的に隣接する2ノード間でやっておきたい

19.

今後やること(2/2) Goのコードベースに本格的に貢献する 諸々の文脈でGo言語は触っているが、最近あまり触っていないのでやる 気の問題(仕事で触っている人はつよい) ポスグレ周りを分散させる バックアップを取っているもののシングルノードなので、 多分本気でアクセスが来ると真っ先に詰まるのはポスグレ 自分のインスタンスの客集めが先では? misskeyとフォーク周り そこらのインスタンスを建ててみる。 思い立ったときに一気にやるやつ

20.

気になっていること 遠隔配置の3-5台構成とk8s オンプレミスでk8s運用している人の場合どういうk8sを試す以外にどのよ うな狙い、メリットやユースケース、逆にどのような辛みがあるかは気に なっている 自宅用オブジェクトストレージの選定 MinIO, Cephとかが候補に上がってくるが、実運用しているオブジェクトス トレージの例があれば MinIOのMultiNode, MultiDriveのオンプレ用の構成をdocker swarmに 乗っける形で運用を始めた