趣味開発のRailsアプリケーションをHerokuからRenderへ移行しました

このブログシステムのバックエンドは簡素なRailsアプリケーションをHerokuへデプロイして動かしていたのですが、Herokuは昨年に無料枠がなくなりました。それまでHeroku PostgresのMiniで月5ドルだけだったのが、アプリケーションサーバーの無料枠がなくなって、追加で7ドルかかるようになりました。

今回はコスト削減を目的として、同様の使い勝手で低コストのPaaSだと言われているRenderへ、このアプリケーションを移行してみました。

Renderの価格

この記事の執筆時点(2023/01/14)では、アプリケーションサーバーもPostgreSQLも無料枠があります。ただ、PostgreSQLのほうは無料で使えるのは作成後90日間だけで、あくまでもお試しプランのようです。Freeの次に安いStarterプランだと月7ドルです。

設定

ポチポチと画面から設定していきます。

ウェブサーバー

ダッシュボードの画面から、「New Web Service」をクリック。

ダッシュボード画面

私のアプリケーションはGitHubでソースコードを管理しているので、GitHubアカウントと接続します。

GitHubアカウントとの接続

今回デプロイするアプリケーションのみの権限を許可しました。Renderの画面に戻ってくると、権限を許可したアプリケーションのリポジトリ名が表示されているので、その横の「Connect」というボタンをクリックします。

リポジトリ名の横の「Connect」というボタンをクリックする

接続ができると、設定項目が出てきます。リポジトリの内容からRubyのプロジェクトだということを察してデフォルトの値が入っています。

デプロイ設定

環境変数などを設定して、「Create Web service」をクリックすると、デプロイが始まりました。

PostgreSQL

PostgreSQLも同様に、画面からぽちぽちで設定できました。

HerokuからRenderへのデータ移行

こちらにドキュメントがありました。ありがたや。

今回はデータさえインポートできれば良いので、こちらのページのデータ移行の部分のみ参照して、設定しました。

カスタムドメインの設定

いまはAPIへのリクエストは記事更新したりしないと飛ばないようになっているので、ダウンタイム発生しても特に問題はありません。なので、ざくっと変更してしまいます。ドメインはVercelで管理しているので、そちらでCNAMEを更新して、Render側でもカスタムドメインの設定をしました。

Heroku側のアプリケーション削除

しばらく動かして、問題ないことを確認できたのでHeroku側のアプリケーションは削除しました。

コストbefore/after

  • before: 12ドル/月
  • after: 7ドル/月(最初の3ヶ月は0ドル)

ということで、5ドル安くなりました。

もちろん無料枠の制限はあるものの、私のブログデータの読み書き程度なら十分なのではと思っています。制限の詳細は以下に書かれていました。

参考リンク