GCPでマストドンを構築する書籍を書きました!

こんにちは! 今回は技術ネタじゃなくて書籍の執筆活動をしたので、執筆活動の経験と宣伝をしますw
書籍を執筆することになった経緯
弊社代表が突然(いつも突然ですが。。。)
「マストドンの本誰か書かない?」
と言ってきたので、そろそろ本でも描くか!という軽いノリでマストドンの構築から執筆までを引き受けることになりました。
マストドン初心者だけどGCPでシステム作るのは得意だぜ!
マストドンはオープンソースでGitHubのProduction-guilde.mdを読めば、誰でも構成できる状態となっています。 とりあえずスケールできる構成にしたかったので、フロントにLBを置いてDBとRedisわけて〜みたいな感じで構成図を書いて作りました。
メディアファイルの扱いがめんどい
ユーザのトゥートでアップロードされるメディアファイルの扱いがちょっと面倒(なぜならまだマストドンがGCSに対応してないから!)で、CloudCDN使ったりinotifywait使ったりしてGCSにあげたりしてみたんだけどうまくいかなかった。 結局メディアファイルは分散ファイルシステム使って配信するのがバランス良さそうだな〜ということで解決したんですけどね。
Redisの分散
マストドンってトゥートとかmail送信とかをsidekiqっていうRubyの非同期プロセッサに渡して処理しているんですけど、バックエンドにはRedisを使っています。 残念ながらまだマストドンはRedisの分散のことまで考えていないみたい(コンフィグみただけだけどw)。なのでまだうまいこと分散できないシステムになりました。
DB PostgreSQLなの!?
まじかよ、確かにPostgreSQLも立派なソリューションだけど、なんでなんだ!MySQLじゃダメなのか! そんなことを思いながら渋々マスタ/スレーブレプリケーション構成を作るために頑張った俺かわいい。
おまけ: Amazon予約ページでカテゴリ1位に!
2017/04/26 16:00の時点で1位になったので記念撮影しましたw

ではみなさん、楽しいマストドンライフを!

