PORTでもくもく

PORTのもくもく会に行きました。
先月行けなかったので、少し久しぶりな感じでした。
だんだん知り合いが増えてきて、ホーム感増してきたの嬉しいなぁ。

LTをやったので懇親会にも初参戦したよ。
あまり話したことない人とたくさん話せて楽しかったです。

主に趣味鯖上で運用しているSNSの
dumpのcronを書き換えたりsidekiqの設定を変えたりしました。
備忘録を残します。

$ crontab -l 
0 0 * * * docker run --link mastodon_db_1 --volume /opt/backup:/mnt/backup --network mastodon_internal_network postgres:9.6-alpine /bin/sh -c "pg_dump -U postgres -h mastodon_db_1 postgres | gzip -c > /mnt/backup/dump-`date +'%Y-%m-%d'`.sql.gz; exit" > ~/cron.log 2>&1

本当はローカルにdump取りたいの
でもとりあえずdiscfullでEC2が定期的に落ちるのどうにかしたいので

`date +'%Y-%m-%d'`

ここの部分を削除して
dumpファイルが最新のものに上書きされるようにしました。
つまりこうです。

$ crontab -l 
0 0 * * * docker run --link mastodon_db_1 --volume /opt/backup:/mnt/backup --network mastodon_internal_network postgres:9.6-alpine /bin/sh -c "pg_dump -U postgres -h mastodon_db_1 postgres | gzip -c > /mnt/backup/dump.sql.gz; exit" > ~/cron.log 2>&1

これでいったんは大丈夫なはず。
運用し始めて数ヶ月経つけれども、一度もdumpファイルが必要になったことないので
暫定的な対処です。
無料枠でRDSを立ててDBの引越しが済めば
これらのバックアップは必要なくなるし、監視もしやすくなるので
できればそうしたいなぁ。
無料枠が切れたら、またPostgreSQLに戻します!

sidekiqの方は、かなり分からないので
「試しにやってみて期待した挙動と違ったらまた考える」
状態なのですが
config以下にあるsidekiq.ymlを編集して

$ vi config/sidekiq.yml
---
:concurrency: 1
:queues:
[default, 6]
[push, 4]
[mailers, 2]
[pull] 

最初ここは:concurrency: 5だったのだけれども
並列処理しすぎて詰まりすぎているのでは?という懸念があり
一度メンテナンスモードに切り替えて
リクエストを一つずつ処理させるモードに変えてみました。

メンテナンスモード中は管理者画面に入れないので
一晩この設定で試してみたら
明日は通常モードに切り替えて
sidekiqの管理画面からジョブキューのログを見てまた判断したいと思います。

今日はLTの資料を作っていたら思いのほか時間が溶けて
「とりあえず暫定的な対処!」
みたいな感じになってしまった😣
他鯖の影響を受けてリクエスト急増時に
EC2へsshログインしづらくなるのがしんどい。
ラズパイなどにAnsibleを置いて、sshログインなかなか出来なくても
粘り強くログインするまで頑張るAnsibleに設定して
メンテナンスモードへの切り替えだけでも自動化させたいです。

PORTもくもくメンテナンス

PORTのもくもく会へ行ってきました。

おやつタイムに配られたシュークリームアイス😊

ランチタイムも色々と会話できたの楽しかったです。

主にMastodonのバックアップ/メンテナンスやりました。

.

やったこと

– postgreSQLのバックアップ

– GitHubで設定ファイルの保全

– EC2上へメンテナンスページの設置

– メンテナンスの流れ確認(設定ファイルについてなど)

.

postgreSQLのバックアップとったの。

.

第 23章バックアップとリストア

https://www.postgresql.jp/document/8.1/html/backup.html

復習しておこう。

Docker上にバックアップ用のディレクトリを作成して

pg_dumpを実行しました。

.

Nginx設定ファイル内の整理をして

Mastodonの設定ファイルとNginxの設定ファイルを

scpコマンドをつかいDLしてGitHubに保存。

.

EC2インスタンス上にメンテナンスページ用のディレクトリを作成して

GitHub上にメンテナンスページを置いていたので

それをgit cloneしてメンテナンスの準備をしたよ。

.

site-availableにメンテナンス用のNginx設定ファイルを置いて

中の設定ファイルをメンテナンス用に変更したの。

シンボリックリンクを書き換えて、設定ファイルをテストし

忘れずにNginxをリロード。

.

これblog書いていて

下書き保存がうまくいかず

一度ぜんぶ消えてしまったので

もう一度はじめから書き直したの

復習バッチリです!!!

.

帰りは一杯飲んで帰ったよお。

勉強会

PORT勉強会に行ってきました。

ノージャンルもくもく会といったかんじ。

人数も多くて会場も綺麗でLT(発表)もあるし

アクセスも良くて月イチで開催しているの。

とても良い感じだったので継続して参加していきたいです。

.

Mastodonの構築

調べて、レシピをつくって

主にローカル汚すだとか

セキュリティ面でとんでもないレシピになっていないか

わかりそうなひとにチェックをして貰ってから

動くかどうかはコンピューターで答え合わせをする

みたいな感じで、マストドンのほうはわりとゆるゆる出来ていたの。

.

Misskeyマジでそんな余裕ないくらい

まず出回っている情報が少ないので

情報収集がままならず

AWS利用での構築方法を模索しなくてはならなくて

OSが違うだけで、こんなにも大変なのかとおもいました。

構築方法には書かれていないけれども

インストールしなくてはいけないものだとか

ファイルの設定内容についても

どこをどう編集したら良いかわからず。

とりあえず流れをgistにまとめました。

AWS EC2
OS:Amazon Linux release 2
$ -i ~/.ssh/MyKeyPair.pem ec2-user@ec2************
$ sudo yum install https://rpm.nodesource.com/pub_11.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm
$ node -v #バージョンの確認
$ sudo yum install postgresql.x86_64
$ sudo yum install postgresql-server.x86_64
$ sudo amazon-linux-extras install redis4.0
– NodeJS
– PostgreSQL
– Redis
のインストールがここまでで終了
$ sudo service postgresql initdb #DB初期化
$ sudo service postgresql start #起動
$ sudo service redis start #起動
$ sudo useradd -p ****** misskey #misskeyユーザーの作成
$ sudo yum install git #Gitインストール
$ sudo visudo #misskeyユーザーでsudoが使えるよう下記の様に設定
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
misskey ALL=(ALL) ALL
$ cd ~
$ git clone -b master git://github.com/syuilo/misskey.git
$ cd misskey
$ git checkout master
$ exit #g++などの開発ツールを入れるため一度抜ける
$ sudo yum groupinstall "Development Tools"
$ sudo -u misskey -s
$ cd ~
$ cd misskey
$ npm install
$ cp .config/example.yml .config/default.yml
? default.yml を編集する ←わからない
$ NODE_ENV=production npm run build
view raw gistfile1.txt hosted with ❤ by GitHub
[misskey@ip-172-31-41-82 misskey]$ NODE_ENV=production npm run build
> misskey@11.22.0 build /home/misskey/misskey
> webpack && gulp build
yes we can [================== ] 90% (90/100) 46.0s
view raw gistfile2.txt hosted with ❤ by GitHub

でもこれ90%で動いてないの。

残り10%を調べなければいけないの。

.

夜からはみそぴぴデートだよ。

最近どうよ、

から始まって

近況報告しつつも

やっぱりMisskeyの構築のこと色々と聞いてもらった。

なんだかねえ、うまくいかないのよ。

みそぴぴもAWS使っているので

これから一緒に勉強していけたらいいなあ。

一緒に勉強できる仲間ほしいね。