IDCFが個人利用出来なくなるとのことでASWへの移行作業メモ
特に有益な情報はないです。

なんでAWSにしたかというと、まぁ少し触ったことがあるから。
GCPも考えたけど、触ったことないので除外。

2017年4月に立てたときはIDCFの500円サーバ使ってたみたいだけど、めっちゃ人増えてすぐスケールしましt


・マネージドは RDS(postgreSQL) ElastiCache を利用

基本的に自分で管理することは減らしたい
RDSをdb.t2.small にしてしまったけど、db.t3.small のほうがよかったんかな。まぁいいか・・・


・WebやStreamingのインスタンスは1つ。 t3.medium。

今までは t3.small クラスのインスタンスを3つ使ってて、1つにDBとかRedisとか入れてたんだけど、そのへんを外出しにしたので今は1つだけ。
個人の趣味だからスケールしとく必要もないし、複数台にするとアップデートとかめんどくさいんだYO。
CUP使用率とか見てる感じだと、t3.small でもいけそう感はある。でも medium だとやっぱ早い気はする。
人減ったら変えよう。
今回はOSを Ubuntu にしました。Ubuntuで運用するの初めてだぜ。とはいえ特に意味はない。
今までは99%Debian。
AmazonLinuxでもよかったけど、MastodonのドキュメントがDebian系前提で書かれてるのでやめといた。


・AWS ElasticSearchは面倒そう

相性が悪いというか、そもそもMastodon側ではローカルで自分で立てて使うのを想定してるのでデフォルトでは設定出来ない。
少しconfig以下をいじってあがいて見たけど、手を入れるべきところが多すぎそうだったからやめた。
IAM設定するところまではいいんだけど、その後の認証周りのライブラリがなにかに依存してるのか動いてくんない。
別にインスタンス作ってそこで独立で動かすか、Webのとこに同居させるか考え中。


・postgreSQLのデータの引っ越し

RDSに mastodon ユーザ作って mastodon_production DB作る。前はこの辺Mastodonのドキュメントにあったのに、今はコマンドでやるようになってて手動でやろうとすると少し手間ではある。普段使わないから覚えてないYO
pg_dump で SQL形式でやる方法だと pgsql コマンドに放り込む方法が使えなかったので

pg_dump -O -Fc mastodon_production > filename 

でアーカイブ形式にして、pg_restore で戻す感じ。
でも少しエラーは出る。とりあえず大丈夫そうだから放置。

移行時にMastodonのバージョンも上げたので、リストアして migration しておしまい。
ずいぶんバージョンアップをせずに放置してたのもあって、migration に30分くらいかかった。


・S3、CloudFront

前から使ってるのでそのまま。


・忘れたこととか

ulimit デフォルトのままだった。手元のメモに ulimit って書いてあるのに忘れるとは・・・
open_files がデフォルトで 1024 だと多分足りない。

nginx の worker_connections をデフォルト(768だっけ)のままにしててエラー出まくってしまった。なお今は4096。Streaming で 1人あたり3本くらい使うから、ゴールデンタイムだと700セットくらい繋ぎに来ててそりゃ足りないわ。

Mastodon に同梱されてる nginx のファイル、SSL証明書のとこの行がコメントになっててしばらく気づかなかった(´・ω・`) 



なお月々のお支払いはトータルで2万超える模様。
とはいえ、支援してくださる方々が結構いらっしゃるので安心してリソース使えます(そこか!
ありがたいことです・・・


あと、どうでもいいんだけど CloudWatch のダッシュボードのタイムゾーン変更できるんだね。気づかなかった(´・ω・`)

cloudwatch