Slide 1

Slide 1 text

自宅サーバでマストドンを立てる hokutodonから学ぶ 自宅サーバでのマストドン構築と運用 2017/6/28 (C) Copyright 1996-2016 SAKURA Internet Inc さくらインターネット株式会社 技術本部 アプリケーショングループ VPSチーム 芦野 光

Slide 2

Slide 2 text

自己紹介 • 芦野 光 • 2016年4⽉ 新卒⼊社 ⼊社2年⽬ • 所属 • 技術本部アプリケーショングループ VPSチーム • 担当業務 • さくらのVPS • Python/Djangoを⽤いたAPI・バックエンド開発 • 社内向けAPIの開発 • 趣味 • ツーリング(普通⾃動⼆輪) • ⾃宅ラック(サーバ) • 今年で10年 • その他 • ICTSCトラブルシューティングコンテスト実⾏委員 2

Slide 3

Slide 3 text

agenda • 本日お話しすること • Mastodonを自宅サーバでの構築・運用のポイント。 • hokutodonを事例にご紹介。 3

Slide 4

Slide 4 text

• 自宅サーバとは 4 自宅サーバまたはホームサーバ(じたくサーバ、Home Server)とは、 主に個人が自宅で趣味または複数台のパソコンを管理として運用する インターネットまたはイントラネット向けのサーバを指す。 (Wikipedia)

Slide 5

Slide 5 text

• hokutodonとは 5 ヨッピーの自宅でマストドンを運営する企画 ※さくらのナレッジ http://knowledge.sakura.ad.jp/other/8752/

Slide 6

Slide 6 text

• hokutodonとは 6 ※さくらのナレッジ http://knowledge.sakura.ad.jp/other/8752/

Slide 7

Slide 7 text

• hokutodonとは 7 ※さくらのナレッジ http://knowledge.sakura.ad.jp/other/8752/

Slide 8

Slide 8 text

• hokutodonとは 8 ※さくらのナレッジ http://knowledge.sakura.ad.jp/other/8752/

Slide 9

Slide 9 text

hokutodonの一連の流れ 事前確認 構築 運用 閉鎖 9

Slide 10

Slide 10 text

事前確認

Slide 11

Slide 11 text

事前確認 • ネットワーク • IPアドレス • そもそも外部からアクセスできるか。 • ルータ • NAPT • 外部からのルータへのアクセスを自宅内のサーバに転送できるか。 • PC(自宅サーバ)のスペック • 性能的に耐えられるか。 11

Slide 12

Slide 12 text

事前確認 • ネットワーク • IPアドレス • 疎通ができた。 • ルータ • 自宅内のPC上のWebサーバへの疎通を確認。 • PC(自宅サーバ)のスペック • CPU:Core i5 / メモリ8G / HDD:2TB 12 事前確認のポイント ・IPアドレスについてプロバイダによって、 1つのグローバルIPアドレスを共有して提供している場合があるので要チェック。 ・HDDの容量は多い方が良いです。(hokutodonでは、1日2GBペースで消費)

Slide 13

Slide 13 text

構築

Slide 14

Slide 14 text

構築 • サーバ • ドメイン取得 • 10分くらいで完了。 • OSインストール • メール送信の設定 • DNSの設定 • 証明書の設定 • Let‘s Encrypt を利用。 • Mastodonインストール • 公式のドキュメントに従ってインストール。 • ネットワーク設定(ルータ) • NAPTの設定 • 外部からのルータへのアクセスを自宅内のサーバに転送する設定。 14

Slide 15

Slide 15 text

構築 • サーバ • OSインストール • メール送信の設定 • DNSの設定 15

Slide 16

Slide 16 text

構築 • OSインストール • 事前にインストールメディアを作成。 16

Slide 17

Slide 17 text

構築 • メール送信の設定 • 自宅サーバからのメール送信 • プロバイダの制限(OB25P)のため送信できない。 • Mailgunを利用。 • 設定(DNS)を確認する機能がある。 • 送信ログなども参照可能。 17

Slide 18

Slide 18 text

構築 • DNSの設定 • DDNSサービスを利用。 • IPアドレスが動的に変わるため、DDNSを利用。 • ドメイン取得元でできるかどうか不明だったため。 • メールのためのDNSレコードの設定 • 設定しないとメールが届かない場合がある。 • SPF(Sender Policy Framework) / DKIM(Domainkeys) 18 構築のポイント ・DDNSサービスを使いましょう。 ドメイン取得元のネームサーバで対応していれば、ベスト。 →ドメイン取得してから DDNSサービスに登録してネームサーバを変更する手間が不要。 ・SPF / DKIMの設定はお忘れなく。 →メールが届かない原因になります。

Slide 19

Slide 19 text

運⽤

Slide 20

Slide 20 text

運用 • hokutodonが満を持して開始 20

Slide 21

Slide 21 text

運用 • hokutodonの舞台裏では • ユーザが増える • 開始10分で200ユーザ 21 0 200 260 454 550 563 650 850 2900 3800 10000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 2017/4/25 19:09 2017/4/25 19:20 2017/4/25 19:24 2017/4/25 19:33 2017/4/25 19:37 2017/4/25 19:39 2017/4/25 19:42 2017/4/25 20:00 2017/4/25 22:48 2017/4/26 12:47 2017/4/28 23:32 登録ユーザ数(管理画面上)

Slide 22

Slide 22 text

運用 • hokutodonの舞台裏では • ユーザが増える • 登録確認メールが送信される • Mailgunの1時間あたりの送信上限数に達する • 確認メールが送信できなくなる 22

Slide 23

Slide 23 text

運用 • hokutodonの舞台裏では • 手動での登録承認作業 23

Slide 24

Slide 24 text

運用 • hokutodonの舞台裏では • リレーサーバを急きょ構築 • さくらのVPS上にPostfixを構築。 • さくらのVPS上のPostfixからメール送信。 24 ポイント ・メール送信サービスの上限数を確認。 ・送信数が多くなることが想定される場合は、プランを変えて送信数の上限数を上げる。 ・メール送信部分だけ、VPS・クラウドを使う手も。

Slide 25

Slide 25 text

運用 • 監視 • Mackerelを利用 • CPU • Load Average、たまに1を超えるぐらい。 • メモリ • 特に足りなくなることはなかった。 • ストレージ(HDD) • 1日に2GB消費。 • ネットワーク • MAX 1.8Mbps • 平常時 500Kbps 25

Slide 26

Slide 26 text

運用 • 監視 • Load Average 26

Slide 27

Slide 27 text

運用 • 監視 • CPU 27

Slide 28

Slide 28 text

運用 • 監視 • メモリ 28

Slide 29

Slide 29 text

運用 • 監視 • ストレージ 29

Slide 30

Slide 30 text

運用 • 監視 • ネットワーク 30

Slide 31

Slide 31 text

閉鎖

Slide 32

Slide 32 text

閉鎖 • hokutodon終了のお知らせ • インスタンスの停止 • データ削除 32

Slide 33

Slide 33 text

閉鎖 • hokutodon終了のお知らせ 33

Slide 34

Slide 34 text

閉鎖 • インスタンスの停止 • 他のインスタンスからの通信が発生している • Mastodonはインスタンス間の通信ができない場合リトライをする • 通信できないとリトライがたまる。 • → 他インスタンスに迷惑をかけることになる。 • 対処:404ページを返してあげる。 • 他のインスタンスにご迷惑をおかけしました。 34

Slide 35

Slide 35 text

閉鎖 • リモートインスタンス間の通信(通常) 35

Slide 36

Slide 36 text

閉鎖 • リモートインスタンス間の通信(障害・閉鎖時) 36

Slide 37

Slide 37 text

閉鎖 • 解決方法 37

Slide 38

Slide 38 text

閉鎖 • データ削除 • 10,000件のメールアドレスなどのユーザ情報。 • 残しておきたくない。 • DBANを使用 • CDブートでHDD上のデータを消去するツール • 削除方式が様々ある。 • 米国国防総省方式 • Gutmann方式 • etc… 38

Slide 39

Slide 39 text

閉鎖 • データ削除 39

Slide 40

Slide 40 text

閉鎖 • 2TBで1日以上かかりました。 40

Slide 41

Slide 41 text

閉鎖 41 閉鎖のポイント ・利用者に事前に閉鎖をお知らせをしましょう。 ・インスタンスの停止をした場合、閉鎖後も404ページを一定期間返すようにしましょう。 (他インスタンスからのリトライ対策) ・ユーザの情報が記録されているので、データ削除を行いましょう。(完全閉鎖する場合)

Slide 42

Slide 42 text

まとめ

Slide 43

Slide 43 text

まとめ • hokutodonのサマリー • 運用期間: 4/25 19:09 〜 4/29 0:42 • ユーザー数: 2,478(管理画面上では約10,000) • トゥート数:29892 • 接続中のインスタンス : 257 43

Slide 44

Slide 44 text

まとめ • 事前確認 • IPアドレスが外から疎通できるものか。 • HDDの容量は足りますか?。 • 構築 • DDNSサービスを使いましょう。 • メール送信サービスの送信上限数を確認。 • 運用 • 不適切なトゥートがないかを確認。 • サーバ / ネットワークの監視(できたら)。 • 閉鎖 • 事前に閉鎖のお知らせを。 • 閉鎖後は404ページを返すように。 • データ削除をお忘れなく。 • Mastodon自体について • 公式のドキュメントを参照 • https://github.com/tootsuite/documentation/tree/master/Running-Mastodon 44

Slide 45

Slide 45 text

まとめ • 自宅サーバを運用するにあたって確認すること (一例) • 家族の同意 • 電気代 • 排熱 • 音 • ネットワーク帯域 • ファシリティ • 設置場所 • 空調 • 電気 • ネットワーク • 耐荷重 45 • キャパシティプランニング • ネットワーク帯域 • ディスク容量 • 可用性 • 保守性 • コスト • 監視 楽しんで運用できることが一番大事!

Slide 46

Slide 46 text

まとめ • 自宅サーバ / ラックの良さ • ネットワーク機器 • LEDがよく光る、ときめきを感じる。 • クラウドの時代だからこそ • クラウドの仕組みを理解する。(H/Wで作られてきたインフラの抽象化) • H/Wへの理解。 • 様々なことができる • 業務では作らない構成を作ってみる。トライアンドエラー • 壊したりループさせても失敗しても大丈夫な環境があることは大事。 • 自己研鑽。 46

Slide 47

Slide 47 text

ご静聴ありがとうございました。 47