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じゃダメなのか! そんなことを思いながら渋々マスタ/スレーブレプリケーション構成を作るために頑張った俺かわいい。

書籍の概要(俺のパート)

grasysでは企業向けにスケールできる環境をGCPで作ってみようという話になりまして、その時の構成と構築手法がこの書籍の最後の方に記述されています。

詳しい内容は書籍を購入してみてくださいね!

書籍名:これがマストドンだ!(Amazonのページにリンクしています)

マストドンのインスタンスは簡単に構築できますが、スケールを意識した構成のヒントとなると思います。これから立てる人も、立てちゃった人も要チェックや!

おまけ: Amazon予約ページでカテゴリ1位に!

2017/04/26 16:00の時点で1位になったので記念撮影しましたw

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