Misskey競プロ鯖をサーバレス化しようとした話
はじめに
今は、EC2とAuroraで運用しているMisskey競プロ鯖をサーバレス化しようとしていました。 AuroraのServerlessの最小キャパシティが0になったので、 Aurora のサーバレス化をしてみました。 そのついでに Redis も別で ElastiCache で建ててサーバレス化、EC2も辞めて Fargate で動かすことにしました。
Auroraのサーバレス化
Aurora のサーバレス化をしようと思ったのですが、 PostgreSQL 14.9 を使用していて対応していませんでした。 そこで、とりあえず Aurora のアップデートを行いました。 Misskey競プロ鯖20秒くらいアクセスできなくなってしましました…。
アップデートしたあと、Aurora のサーバレス化を行いました。 Aurora のサーバレス化は、Aurora のクラスターの設定で最小を0にして、インスタンスを Serverless に変更するだけでした。
ElastiCacheサーバレスの追加
ElastiCache を使っていなかったので、サーバレスの Redis を追加しました。 これを 2024/11/27 の 21:50 頃に行っていたので、その間 Misskey競プロ鯖はダウンしていました。 流石に良くないですね!
何分かのダウンを経て、ElastiCache に接続できるようになりました。
Fargateへの移行
EC2 から Fargate な ECS に移行しようとしました。 しかし、 ECS に建ててみると Misskey が起動しない…。
なんか Redis に接続できないエラーがずっと出ていて、困っていました。 VPC 変えてみたりと色々やっていたら、なんだかんだ動くようになりました。
最後の調整で謎のエラーが出て「まだダメなの!???」となったんですが、Misskeyが出しているエラーで一応無視しても問題ない物でした。 そんな感じで、一旦 misskey2.kyoupro.com ができました。 タイミングを見て、 misskey.kyoupro.com に付け替えて、元の EC2 は消そうかなと思います。
まとめ
これで、DB・キャシュ、アプリケーション全てサーバレス化できました。 サーバレス化してコストが下がるかとかは試算してないんですが、面白かったのでOKです。