簡単に作れそうだったので、GKE を使って自分専用のマストドンインスタンスを立ててみました。 せっかくなのでその構成を紹介します。
マストドンとは
Twitter っぽいサービスで、サーバを持ってさえいれば誰もが好きにインスタンスを立てられるのが特徴です。
今猛烈に流行っていて、大きなインスタンスだと7万人くらい登録しているようです。『おいでよ パクツイの森 #パク森』の半分近くもありますね。すごい。
mstdn.okumin.com のアーキテクチャ
mstdn.okumin.com は Google Cloud Platform 上に構築しました。
マストドンは主に次のコンポーネントから成り立っています。
- Web フロント(Rails)
- ストリーミング API(Node.js)
- バックグラウンドプロセス(sidekiq)
- Redis
- PostgreSQL
PostgreSQL には、Google Cloud SQL を使用し、アイコンや投稿画像は S3 互換 API を使って Google Cloud Storage へ保存、それ以外はすべて、Google Container Engine(マネージド Kubernetes) 上で、といった具合の構成となっています。
感想
面倒な部分をマネージドサービスに押し付けられたのが大きいですが、割りと手軽にリリースできました。 マストドンはドキュメントがしっかりしており、Dockerfile も用意されているので、至れり尽くせりな感じです。
登録制限をかけたりお一人様用のシングルユーザーモードで起動したりすることもできるので、ドメインを持っている人はインスタンスを立てると特別な気持ちになれると思います。 来たるマストドン時代に備えてフォロワーを蓄えて置きたいので、アカウントをお持ちの方は https://mstdn.okumin.com/@okumin をフォローしてくださると嬉しいです。
マストドン on GCP に関してはかなりの知見がたまったので、聞きたいことがある方は Twitter か マストドン へ気軽にお問い合わせください。