rails,mastdon

さくらでmastodonを立ち上げたときの構成

More than 1 year has passed since last update.

mastodon を立ち上げるのには超便利なさくらクラウド。ウィザードに従って起動すると、すごく楽なんだけど、どういう構成で起動したかが分かりにくい。

何もしないでもインストールから起動まで終わってしまうので、今どういう構成なのかを追いかけてみる。

まずは、起動時のTOPコマンドがこれ。

SS 2017-04-23 18.43.37.png

Railsはpumaで起動している

unicorn じゃなくてpumaね。プロセスじゃなくて、スレッドで並列処理するからいいらしい。ポート3000で起動している。

rubyは 2.4.1

インストールスクリプトでは、rbenvで2.4.1が入ってる。

sidekiq でRedisの何かしてるっぽい

Redisで何かしらの非同期処理をしてるっぽいのだが、何をしているかはまだ良くわかってない。

postgresはローカルに立ってしまってる

これちょっと厄介。一台構成なので仕方ないけど、WebとDBが一台に共存すると、スコーンと負荷が高まる。WebとDBで同じメモリを奪いあってガツーンと止まる。さくらクラウドにはAmazonRDSみたいなアプライアンスサービスあるからそっちに持っていった方がいいかも(これは試算してみての話)。

ただ、DBはちょこっとメンテ時間があれば、ユーザ影響なく移管しやすいものではあるので、あとで引っ越しって手もある。

nodeで参照系のAPIをさばいているっぽい

元々nodeが必要なのは分かるが、何をしているかがまだ良くわからない。nginxの設定をみると

/api/v1/streaming

というパスがあってそれはrailsとは別のところにproxy_passしている。たぶんそれがnodeのやつ。nodeはポート4000でexpressフレームワーク。WebSocketsでも通信してるみたい。APIのget系をnodeでやってて、更新系の処理はなさそう。Railsでログインやら更新やらをやって、参照頻度の多いところはnodeという組み合わせ。 かっこいー。

sslはletsencrypt

nginxのconfをみるかぎり、letsencryptを使っているもよう。自動更新が機能しているかどうかはまだ分からない。

画像はローカルにおいているっぽい

画像がWebサーバーローカルに置いてるので、すぐに容量が足りなくなるし、静的なでかいファイルを配信する機能と、Rubyが動くサーバが共存しているってのもわざわざボトルネックを作ってるようなもの。マストドンには、画像をAmazonS3に配置する機能があるので、それを使えばOK。

オブジェクトストレージは、さくらクラウドにもその機能があるので、そっちを使うのも手かも知れないけど、S3自体のコスパは悪くないので、無理にS3もどきを使う必要はなさそう。

一旦そんなところで。