Lightsail, S3でお一人様Pleromaサーバを構築
Overview
aries@pl.asterism.xyz こちらです。
経緯
- 私の観測範囲でPleromaやその他mastodon以外のAP実装サーバを建てたり建てようとしている人が増えてる!
- 今年2月あたりにdockerを使いPleroma建てたけどdocker使わないバージョンもやってみたかった
- mastodonお一人様サーバの避難所として
今回の構成
-
Lightsail $3.5プラン
- Ubuntu 18.04
- CPU 1core
- RAM 512MB
- ネイティブでインストールしたPleroma
- ネイティブでインストールしたPostgreSQL
- dockerで動かしてるリバースプロキシCaddy(以前dockerでpleroma建てた時の使い回し)
-
S3
- メディア用バケット
- Pleroma設定ファイルから設定
- カスタム絵文字用バケット
- 上記を設定してもローカルディスクに保存してしまうのでrcloneでマウント
- メディア用バケット
PostgreSQLやdockerなどは適当にaptでインストールしてます。
DBのアップデートどうやるのか全然知らないのこわいね。
料金は多分月額$3.7くらい?
$3.5はLightsailの最低プランですが、このサイズだとシステムディスクとして20GBしかありません。
個人的な感想ですがやっぱりSNSは画像などを自由に貼れてこそのもの、みたいな感覚があるのでローカルディスクではなくオブジェクトストレージを使っています。
ガジガジ使う予定がないサーバとはいえここはやっておきたかった。
建て方
公式ドキュメント通りやれば簡単に立ちます。
ただ一点注意するトコロとして、__RAM512MBだとコンパイルできないのでswap設定__だけやっておく必要があります。
mixのオプションにありそうな気もしますが、今回はとりあえず早く建てたいという気持ちが先行したので雑に1GBのswapfileを作成。
使用感
はやい、やすい
早速mstdn.asterism.xyzで使っていたCDNの移行中に役立ってくれました。
Pleromaの運用について
リモートメディア
mastodonではリモートのメディアをローカルにも保存しており、メディアストレージが肥大化してきたらそれらを削除するという機能があります。(こんなの[$./bin/tootctl media remove –days=7 –background])
ですが、Pleromaだとデフォルトの場合リモートのメディアはローカルには保存せず、直接リモートのURLを指しています。
その分連合を組んでるサーバの負荷は上がるので、お一人様ではないPleromaサーバを建てる予定の方はmediaproxyの設定をした方が良いかもしれません。
あるいはお一人様でも1ミリ秒でも快適にすばやく使いたいという方は設定したほうがよいかも。
ローカルメディア
Pleromaでは、アイコンやヘッダ画像を変更しても古い画像はサーバから削除されません。(2019/06/21現在)
https://git.pleroma.social/pleroma/pleroma/merge_requests/1054
merge requestは出ていますが、developブランチにマージされるのはいつになることやら。
これ、そこそこの規模のPleromaサーバの管理者さんはどのように解消しているのですかね?
結構大きいディスクスペース持っていかれると思うのですがうーむ。
利用バージョン, アップデート, バックアップについて
Pleromaはmastodonのようにリリースタグを切っていないようです。
以前dockerで建てた際はdevelopブランチを使ったのですが、今回は一度masterブランチで建てるもmastodon-feにpleroma-tanの画像がないことに気づきdevelopブランチに変更しました。(kawaiiは大事)
また私の場合mastodonではRDSを使っているので自動でバックアップ、アップデートはリリースタグが切られたら適当に手動でという運用をしています。
ですが今回のPleromaの場合、私がそこまで手をかけられるかは分かりません!
ですのでpg_dumpをrcloneでGoogle Driveへ送るスクリプト、Pleroma本体をorigin/developからpullしてアップデートするスクリプトの2つを作成しcrontabで毎朝実行しています。
実行していますといいつつバックアップは今朝動作確認しましたが、アップデートの方はまだ実際の動作確認はしていません。多分行けるでしょヘーキヘーキ!