---
title: "GCPでマストドンを構築する書籍を書きました！ | grasys blog"
url: "https://blog.grasys.io/post/dokuma/gcpdemastodon/"
description: "こんにちは！ 今回は技術ネタじゃなくて書籍の執筆活動をしたので、執筆活動の経験と宣伝をしますw 書籍を執筆することになった経緯 弊社代表が突然（いつも突然ですが。。。） 「マストドンの本誰か書かない？」 と言ってきたので、そろそろ本でも描くか！という軽いノリでマストドンの構築から執筆までを引き受けることになりました。…"
---

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

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[dokuma](/authors/dokuma/)
-   公開日：2017年4月26日
-   カテゴリー：[Inside grasys](/categories/inside-grasys/)
-   タグ：[#mastodon](/tags/mastodon/)

![GCPでマストドンを構築する書籍を書きました！](/_astro/og-image.DDSiu2Ny_XHpDd.webp)

こんにちは！ 今回は技術ネタじゃなくて書籍の執筆活動をしたので、執筆活動の経験と宣伝をしますw

## 書籍を執筆することになった経緯

弊社代表が突然（いつも突然ですが。。。）

「マストドンの本誰か書かない？」

と言ってきたので、そろそろ本でも描くか！という軽いノリでマストドンの構築から執筆までを引き受けることになりました。

## マストドン初心者だけどGCPでシステム作るのは得意だぜ！

マストドンはオープンソースでGitHubの[Production-guilde.md](https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md)を読めば、誰でも構成できる状態となっています。 とりあえずスケールできる構成にしたかったので、フロントにLBを置いてDBとRedisわけて〜みたいな感じで構成図を書いて作りました。

## メディアファイルの扱いがめんどい

ユーザのトゥートでアップロードされるメディアファイルの扱いがちょっと面倒(なぜならまだマストドンがGCSに対応してないから！)で、CloudCDN使ったりinotifywait使ったりしてGCSにあげたりしてみたんだけどうまくいかなかった。 結局メディアファイルは分散ファイルシステム使って配信するのがバランス良さそうだな〜ということで解決したんですけどね。

## Redisの分散

マストドンってトゥートとかmail送信とかを[sidekiq](https://github.com/mperham/sidekiq)っていうRubyの非同期プロセッサに渡して処理しているんですけど、バックエンドにはRedisを使っています。 残念ながらまだマストドンはRedisの分散のことまで考えていないみたい(コンフィグみただけだけどw)。なのでまだうまいこと分散できないシステムになりました。

## DB PostgreSQLなの！？

まじかよ、確かにPostgreSQLも立派なソリューションだけど、なんでなんだ！MySQLじゃダメなのか！ そんなことを思いながら渋々マスタ/スレーブレプリケーション構成を作るために頑張った俺かわいい。

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

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

![おまけ: Amazon予約ページでカテゴリ1位にの画面](/_astro/01-S__26320910-1024x616-6a7992ba.B50odbci_1DxrWO.webp)

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

## この記事を書いた人

[![](/_astro/noicon.CTHOhNiB_Z24aAgM.webp)](/authors/dokuma/)

### [dokuma](/authors/dokuma/)

dokumaのプロフィールと執筆記事をご覧いただけます。

[プロフィールと記事一覧](/authors/dokuma/)