はじめに
※ 自分用メモ
awsの無料期間がそろそろ切れそうなので、バックエンドをherokuに移行したお話
移行前
バックエンド
言語・フレームワーク: Ruby、 Ruby on Rails
インフラ: AWS ECS(Fargate)、ECR、Route53(ドメイン取得はお名前.com)、RDS(Mysql)無料枠があるから、Auroraではない、ALB、ACM、S3、EFS
フロントエンド
言語・フレームワーク: React、NextJs
インフラ: バックエンドと同じ
ミドルウェア
webサーバー: Nginx
DB: mysql
移行後
バックエンド
言語・フレームワーク: Ruby、 Ruby on Rails
ミドルウェア: Nginx、mysql
インフラ: heroku、jawsdb、S3
フロントエンド
言語・フレームワーク: React、NextJs
インフラ: vercel、Route53(ドメイン取得はお名前.com)、ACM
バックエンド移行(aws ⇨ heroku)
アプリケーション
自分はm1 macなので↓以下の記事をそのまま実行でok
https://zenn.dev/daku10/articles/m1-heroku-container-trouble-exec-format-error
DB
dbはmysqlを使っていたので、移行後のdbもmysqlを使いたいということでjawsdbというのがherokuのアドオンで簡単に実装できる。
※ 他にもcleardbというのでもmysqlを使えるがmysql8.0が対応していない
jawsは↓この記事が参考になる
https://zenn.dev/junki555/articles/68d2186822d4cf
次にRDSにログインし、ダンプファイルを作成後herokuコマンドでインサート文を流していく
フロントエンド移行(aws ⇨ vercel)
vercelデプロイ
vercelのdomainのAレコードをRoute53のホストゾーンに追記する
所感
ずっと移行がめんどくさくてやっていなかったが、意外とスムーズ(丸1日もかからなかった)に移行ができた。もっと早く移行しとけばaws代が浮いた。herokuは30分リクエストがないとスリープしてしまうので、30分おきに自動アクセスするbotを作ろうと思ったが、スリープしても意外とすぐ起動するのでやらないことにした。
これにて移行完了!!🎉