まともに起動

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

しかしデータは死守できたし
「中にdocker-composeがいるはずのEC2インスタンス(何らかの理由により、まともにsshログインできない/以前の設定ファイルはDocker用のため全部書き直し/バージョン追従していない/DBのバージョンも変わった/dumpデータが途中から明らかに容量が小さい。データ壊れている疑惑/t2.micro縛り/←作業中、カジュアルにCPUが張り付く)」

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

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

CPUの張り付きを防ぐために
CPUQuota の設定をして、CPU使用率の制限を行いました。

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

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

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

ブラウザで開いたら
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

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

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