6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Render PostgreSQL無料枠が切れてからNeonへ乗り換える手順

Last updated at Posted at 2025-12-26

概要

Render.comでデプロイしたRailsアプリにおいて、
RenderのPostgre無料枠(1ヶ月)が期限切れとなったため、
Neon(PostgreSQL)へ移行しました。

本記事では、

  • 無料枠期限切れ時の挙動
  • データがない状態での移行手順
  • Render側で必要な設定変更
    についてまとめます。

注記
⚠️ Renderでデプロイ済みのアプリにおいて、DBサーバーのみを移行したい人向け
⚠️ 今回は開発中でDB接続済みですが機能未実装でDB未使用だったため、ダンプ作業等は行っていません。必要に応じて調べてください

環境

  • Ruby on Rails
  • Render.com(Web Service)
  • Render Postgre(Free → Expired)
  • Neon(PostgreSQL)

発生した事象

RenderのDB無料枠は作成から約1ヶ月で期限切れになります。
放置していたら、1ヶ月を超過しました。

期限切れ後、連携したGitHubのリモートリポジトリを編集するとデプロイエラー。
RenderのWebサービス側の「Events」ページに、「Deploy failed」を確認。

ログを確認すると、やはりDB接続エラー。

RenderのDBサービス側を確認すると、「expired(期限切れ)」、状態は「suspended(一時停止中)」 となっており、以下の案内が表示されていました(以下翻訳)。

・「データベースの有効期限が切れています。再開するには有料インスタンスにアップグレードしてください」
・「14日以内に有料インスタンスへアップグレードしない場合、データベースとすべてのデータが削除されます」

※Webサービス自体は起動するが、DB接続エラーによりデプロイが失敗する点に注意

移行を決めた理由

  • RenderのDB無料枠は短い(1ヶ月)
  • 期限切れ後は有料化しないと復旧できない
  • 今後も個人開発を続ける予定だった(そして有料化はくるしい)

ということで、今回は Neon(PostgreSQL) に移行することにしました。

※NeonはサーバーレスなPostgresデータベースを提供するDBaaS(Database as a Service)です。東京リージョンはなし。無料枠あり(補足に記載)

移行方針

今回の対応方針は以下です。

  • Neonの無料枠を利用する
  • DBにデータは存在しないため、ダンプは不要
  • Rails側のコード変更は行わない
  • バックエンドサーバーは引き続きRenderを使う

NeonでのDB作成

1.公式サイトにアクセス。

2.「Start for free」をクリック。

3.「Create your free account(アカウント作成)」。※私はGitHub連携

4.Neonの管理画面から新規プロジェクトを作成します。
「New Poject」→ Create project画面で下記設定

  • Project name:my-app-db のように適宜
  • Postgres version:※今回デフォルトまま
  • Cloud service provider:※今回デフォルトまま
  • Region:Singapore
    ※今回はRender(Web Service)にあわせてRegionをシンガポールに

5.Render接続に必要な情報をコピーします。
「Connect」→ psql欄のconnection stringの''内をコピー or 「Copy snippet」でコピペして、''内をコピー

Render側の設定変更

1.Renderの管理画面から、Web Serviceの Environment Variables を開く。

2.「Edit」を選択し、以下の設定を行う。

  • DATABASE_URL:コピーしたNeonのconnection stringの''内で上書き

※今回Rails側の変更特になし
(GEMFILEで'pg'、config/database.ymlを一応確認、デプロイ時に対応済み)

動作確認

環境変数を保存すると、自動で再デプロイが走ります。

以下を確認しました。

  • RenderのログにDB接続エラーが出ていないこと
  • アプリケーションが正常に起動すること
  • Webページが問題なく表示されること

以上をもって、Neonへの移行完了としました。

補足:CU, CU-hour, CU-hours / project

  • CU(Compute Unit)
    =CPUとメモリ量をまとめた データベースの性能サイズを表す単位
    例:1 CU = 1 vCPU + 4GB RAM

  • CU-hour(CU時間)
    =CU × 利用時間(時間)で計算されるリソース使用量の単位
    例:2CUのDBを3時間稼働 → 6CU-hours消費

  • CU-hours / project
    =1プロジェクトあたりのCU-hours月間利用量
    例:100CU-hours/project無料 → 1プロジェクトあたり月100CU-hoursまで無料で利用できる

※CUは「データベースのパワー」、CU-hourは「そのパワーをどれくらいの時間使ったか」を表す指標です。

補足:Neonの無料プラン(2025年12月時点)

100 projects
100 CU-hours per project
0.5 GB per project
Sizes to 2 CU(8 GB RAM)

100プロジェクト、プロジェクトあたり100CU時間、ブランチあたり0.5GBのストレージ、5GBのエグレス(送信)が含まれます。

参考記事・サイト

https://qiita.com/kurochannn/items/778b78e78e0ad994e054
https://qiita.com/Nomukuuun/items/e2de99ed50b40cc27db9
https://qiita.com/tomada/items/8be6e0df7ad74ef59207

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?