5
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無料枠だとDBに利用期間制限あるから、Neon無料枠を導入してみる

Posted at

はじめに

お疲れ様です。プログラミング学習中のくろちゃんです。
今回はタイトルの通り、renderの無料枠だとDBをずっと使えないということが判明したため、Neonの無料枠でDBを保存しようという話です。
学校の大先輩がNeonってのもあるよって教えてくれたため調べてみました。
別のことでアプリをわちゃわちゃさせてしまっているのでまだ実装できていませんが、これをみて実装するつもりでまとめていきます。

Neon とは

クラウド上で使えるサーバーレスPostgreSQLデータベースです。
簡単にいうと、PostgreSQL互換のクラウドDBでアプリから普通のPostgreSQLと同じ感覚で使えるが、運用面がとても楽になっています。

特徴

1.サーバーレス
・従来のPostgreSQLではDBサーバーを立てる必要があったが、Neonは自動でコンピュート(データベースの処理部分)を起動・停止
・データ自体は常に保持される

2.コンピュートとストレージの分離
・書き込み、読み込みの負荷は「Computeノード」が担当
・データはストレージ層に保存されるため、スナップショットやバックアップが容易

3.Branching
・DBのコピーを瞬時に作成可能
・本番DBを壊さずに、開発/テストができる

4.接続管理
・プール型接続(Connection Pooler)が標準
・アプリは複数同時接続でも安定して利用可能
・無料プランでは同時接続数が制限される

5.永続ストレージ
・データはクラウド上に常に保存され、アプリやComputeが落ちても消えない

6.保存期間
・基本的には無制限

導入方

1.NeonでDB作成
Neon公式 にてアカウント作成
・「New Profect」をクリックしてプロジェクト作成
・「branch」を作成
・「Connection Pooling URL」をコピー

2.Rails側の設定
Gemfileにpgを入れる

gem 'pg', '~> 1.6'
bundle install

config/database.ymlを書き換え

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  url: <%= ENV['DATABASE_URL'] %>

development:
  <<: *default

production:
  <<: *default

3.RenderでRailsアプリを作成
・renderアカウントを作成
・アプリを作成し、git hubにpush しておいてください
・Build Command(render 管理画面)

bundle install && rails db:migrate

・Start Command(render 管理画面)

bundle exec rails server -p 10000 -b 0.0.0.0

4.環境変数にDB URLを設定
NeonでDBを作成の時にコピーしたURLをDATABASE_URLの欄にペースト

5.マイグレーション

rails db:migrate RAILS_ENV=production

まとめ

以上でNeon DBに保存できるようになり、renderだけ使っていた時のような利用期間制限がなくなります。
初学者には有料の壁は大きいと思いますので、ぜひやってみましょう!

最後に

自分だけでは辿り着けない知識もたくさんあります。
qiitaの記事を検索せずに追ってみるのよし、 xの投稿やはてなブログ等を漁るのもよし。
最高の先輩を持つのはもっとよしです。
コミュニケーション大事ですね。
ただ、今回の場合は私のコミュニケーションというよりは大先輩の大良心のおかげです。
コミュニケーション少し苦手という方にこちらから歩み寄れる人になりたいものです。

5
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
5
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?