まともに起動

Publish date: Mar 14, 2020
Tags: mastodon Tech

ようやく、まともにマストドンを起動して動かすことができたので
作業ログをここに残します。
感動を通り越して若干うんざりです😢

経緯

EC2上にdocker-compose で SNS の運用をしていましたが、CPU使用率が100%のまま下がらない状態が続いているため EC2 のローカルへ移行することにしました。 まずは CPU をなんとかする。

条件

今後のTODO

懸念点

など、諸々の問題を抱えながらも一つ一つ潰して、構築を済ませることができました!とても勉強になりました。

以下、CPU をなんとかした作業ログです。

swapの設定

まず、swapの設定をしました。
以前やったことがあったので その時のblog を参考に、そのままコピペでいけました。

Docker上の不要なファイルをローカルに移動

  1. ubuntu ユーザーの ~/ 直下に dump を移動
  2. ファイルの権限変える chmod
  3. scp -i ~/.ssh/**.pem *****@3.***.6.***:/home/ubuntu/dump-latest.sql.gz /Users/a_ishizuka/tmp/

■ CPUQuota の設定

CPU の張り付きを防ぐために、CPUQuota の設定をして CPU 使用率の制限を行いました。
コントロールグループの変更 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

cd /etc/systemd/system
vim mastodon-sidekiq.service
[Service]
CPUQuota=20%

serviceコマンドで起動

$ service mastodon-sidekiq start
$ service mastodon-streaming start
$ sercive mastodon-web start

Postgresの権限

ブラウザで開いたら
HTTP ERROR 500

アプリケーションにまでは到達しているけれども..
原因を探るために
journalctl コマンドを打ったあと、ブラウザにアクセスしてみる。

$ journalctl -f
Mar 14 07:59:08 ip-172-31-35-77 bundle[13608]: [dfe98d74-fa3c-4814-b923-951e77ec5cc9] method=GET path=/about format=html controller=AboutController action=show status=500 error='ActionView::Template::Error: PG::InsufficientPrivilege: ERROR:  permission denied for relation site_uploads

Postgresの権限周りでerrorしているっぽい。
DBに繋げて再現してみる。

$ psql -U mastodon mastodon_production
mastodon_production=> \d
mastodon_production=> SELECT * FROM site_uploads limit 1;
ERROR:  permission denied for relation site_uploads

権限が足りていないみたいなので
mastodonユーザーに権限を与えます。

ロールにテーブルやビューなどに対する権限を追加する(GRANT)

GRANT 権限 ON 対象 IN SCHEMA public TO 誰に

$ sudo su postgres
$ psql mastodon_production
mastodon_production=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO mastodon;
GRANT

「実行したい場所に移動してから」
と、いうのがミソでした。

表示されるようになりました。
様子を見つつチューニングしていきたいです。