NeonDB

Gitのように「ブランチ」できる、使った分だけのデータベース

この記事の要約

Neon は中身が標準の Postgres のまま、サーバーの面倒を手放せるサービスです。目玉は本番のコピーを瞬時に作るブランチで、壊しても本番は無傷です。

  • 組織からテーブルまで 6 段の入れ子で整理する
  • 使わない間は処理が自動で眠り、その分の課金が止まる
  • PR ごとの使い捨て検証環境も一瞬で用意できる

Neon の中はどんな入れ物でできているのか

NeonDB(Neon)はクラウド上で動く Postgres のサービスで、SQL もツールも従来のまま使えます。ブランチの身軽さの土台は、その入れ物の重ね方にあります。まず外側の組織から内側のテーブルまで、入れ子を順にたどりましょう。

組織
5slab(会社・チーム)
プロジェクト
universal(アプリ1つ)
ブランチ
production(本番)
ブランチ
preview / pr-123
データベース
neondb
スキーマ
public(既定)
スキーマ
website(自前)
テーブル
customers
テーブル
orders
データベース
app_logs(別用途・空)
プロジェクト
another-app(別アプリ・空)

各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。

この図をテキストで読む

構成図「NeonDBの入れ子ツリー — 組織からテーブルまで」。ブロック11個、つながり10本。 【ブロック】 - 組織: 5slab(会社・チーム) - プロジェクト: universal(アプリ1つ) - ブランチ: production(本番) - ブランチ: preview / pr-123 - データベース: neondb - スキーマ: public(既定) - スキーマ: website(自前) - テーブル: customers - テーブル: orders - データベース: app_logs(別用途・空) - プロジェクト: another-app(別アプリ・空) 【流れ】 - 外側の入れ物から内側へたどる: 組織 → プロジェクト → ブランチ → データベース → スキーマ → テーブル

ブランチはこう使う

  1. 本番のコピーで試して、用済みは捨てる。PR ごとに繰り返せます。

各ステップをクリックすると、その内容の説明がここに表示されます。

この図をテキストで読む

ステップ図「ブランチを使った開発の流れ」。5ステップ。 【手順】(順番に) 1. 本番ブランチ(production) — 本物のデータ 2. ブランチを作成(瞬時にコピー) — 数秒 3. 自由に試す(壊してOK) — 本番に影響なし 4. 良ければ本番へ(変更を取り込む) — 確認後 5. 用済みは破棄(削除) — コストも止まる 補足: 本番のコピーで試して、用済みは捨てる。PR ごとに繰り返せます。 【流れ】 - ブランチ開発のひとめぐり: 本番ブランチ → ブランチを作成 → 自由に試す → 良ければ本番へ → 用済みは破棄

Neon の目玉『ブランチ』の一巡を、5 つの段取りで見ます。

用途で「どの単位で分けるか」を選ぶ

くらべる観点
隔離の強さ
ゆるい
中くらい
強い
最強
compute・storage
共有のしかた
どちらも共有
どちらも共有
同じブランチ
storage は差分共有
compute は別
どちらも完全に別
またいで検索
できる
ふつうしない
別環境=不可
不可
費用への影響
向いている場面
横断集計・接続をまとめたい
アプリ単位で中身を分けたい
本番を壊さず試す・PRプレビュー
顧客ごとに課金・地域も分離

各セルをクリックすると、その意味や詳しい説明がここに表示されます。

この図をテキストで読む

比較表。4列 × 5行。 【列】 1. スキーマ(同じDB内) 2. データベース(同じブランチ内) 3. ブランチ(本番のコピー) 4. プロジェクト(丸ごと独立) 【比較】(観点ごとに) ■ 隔離の強さ - スキーマ: ゆるい - データベース: 中くらい - ブランチ: 強い - プロジェクト: 最強 ■ compute・storage - スキーマ: どちらも共有 - データベース: どちらも共有 / 同じブランチ - ブランチ: storage は差分共有 / compute は別 - プロジェクト: どちらも完全に別 ■ またいで検索 - スキーマ: できる - データベース: ふつうしない - ブランチ: 別環境=不可 - プロジェクト: 不可 ■ 費用への影響 - スキーマ: ほぼ増えない / ほぼ無料 - データベース: ほぼ増えない / ほぼ無料 - ブランチ: 差分課金+稼働compute / 中 - プロジェクト: まるごと別計上 / 高い ■ 向いている場面 - スキーマ: 横断集計・接続をまとめたい - データベース: アプリ単位で中身を分けたい - ブランチ: 本番を壊さず試す・PRプレビュー - プロジェクト: 顧客ごとに課金・地域も分離 【観点】 - 費用を抑えて分ける: スキーマ / データベース - しっかり分離する: ブランチ / プロジェクト

左ほど軽く共有して安く、右ほど強く隔離して高くなります。

料金体系(Neon 公式プラン)

課金項目
月額
$0
従量
最低なし
従量
最低なし
compute
CU時間
100 CU時間
/プロジェクト 込み
$0.106
/ CU時間
$0.222
/ CU時間
ストレージ
0.5 GB
/プロジェクト 込み
$0.35
/ GB月
$0.35
/ GB月
含まれるブランチ
10
/プロジェクト
10
/プロジェクト
25
/プロジェクト
超過ブランチ
不可
$1.50
/ブランチ月
$1.50
/ブランチ月
履歴(PITR)窓
6 時間
1GBまで
最大 7 日
最大 30 日
履歴の料金
無料
$0.20
/ GB月
$0.20
/ GB月
プロジェクト数
100
100
1,000
要相談で増
ネットワーク転送
5 GB 込み
500 GB込み
→ $0.10/GB
500 GB込み
→ $0.10/GB
scale to zero
5 分後
固定
無効化できる
1分〜常時
可変

各セルをクリックすると、その意味や詳しい説明がここに表示されます。

この図をテキストで読む

比較表。3列 × 10行。 【列】 1. Free($0 / 月) 2. Launch(従量・最低なし)〔おすすめ〕 3. Scale(本番・大規模) 【比較】(観点ごとに) ■ 月額 - Free: $0 - Launch: 従量 / 最低なし - Scale: 従量 / 最低なし ■ compute - Free: 100 CU時間 / /プロジェクト 込み - Launch: $0.106 / / CU時間 - Scale: $0.222 / / CU時間 ■ ストレージ - Free: 0.5 GB / /プロジェクト 込み - Launch: $0.35 / / GB月 - Scale: $0.35 / / GB月 ■ 含まれるブランチ - Free: 10 / /プロジェクト - Launch: 10 / /プロジェクト - Scale: 25 / /プロジェクト ■ 超過ブランチ - Free: — / 不可 - Launch: $1.50 / /ブランチ月 - Scale: $1.50 / /ブランチ月 ■ 履歴(PITR)窓 - Free: 6 時間 / 1GBまで - Launch: 最大 7 日 - Scale: 最大 30 日 ■ 履歴の料金 - Free: 無料 - Launch: $0.20 / / GB月 - Scale: $0.20 / / GB月 ■ プロジェクト数 - Free: 100 - Launch: 100 - Scale: 1,000 / 要相談で増 ■ ネットワーク転送 - Free: 5 GB 込み - Launch: 500 GB込み / → $0.10/GB - Scale: 500 GB込み / → $0.10/GB ■ scale to zero - Free: 5 分後 / 固定 - Launch: 無効化できる - Scale: 1分〜常時 / 可変 【観点】 - まず無料で試す: Free - 本番で使う: Launch / Scale

compute は使った分・storage は停止中も課金(2026年6月時点)。

アプリと開発者、それぞれのつなぎ方

  1. 1

    アプリのつなぎ方

    接続情報はシークレット管理から読み込み、アプリ専用の最小権限ロールで繋ぎます。多数の接続をさばくため、ホスト名に -pooler を付けたプール接続が基本です。

  2. 2

    開発者のつなぎ方

    psql や GUI などの標準クライアントで、開発者ごとに最小権限のロールを払い出して繋ぎます。試すのは本番のコピーである自分用ブランチの上です。

  3. 3

    自動停止との付き合い方

    眠りから覚めるとき一瞬のコールドスタートがあり、接続が切れることもあります。アプリ側に再接続・リトライを用意すると安定します。

迷ったら「隔離の強さ」で選ぶ

ゆるく分けて横断もしたいならスキーマ、中身を完全に分けたいならデータベース、独立した実験場が欲しいならブランチ、課金や地域まで分けたいならプロジェクト。外側の入れ物ほど隔離が強く、内側ほど身軽に分けられます。

押さえておきたい用語

サーバーレスPostgres
サーバーの管理を抱えず、使った分だけ払う形で使える Postgres。中身は通常の Postgres なので SQL やツールはそのまま使える。
ブランチ
本番のコピーを瞬時に作れる、Git のブランチのような単位。本番を壊さず試したり、PR ごとの使い捨て検証環境を用意したりできる。
この用語の解説を読む
コピーオンライト
コピー時に中身を複製せず「変えたところだけ」を記録する方式。ブランチ作成が一瞬・低コストになる理由。
scale to zero(自動停止)
アクセスが無い間は処理部分を自動停止して料金もゼロにし、次のアクセスで素早く再開する仕組み。
プロジェクト / データベース / スキーマ
入れ子の単位。プロジェクト>ブランチ>データベース(用途ごとの箱)>スキーマ(テーブルの引き出し)>テーブルの順で内側へ。
PITR(特定時点復元)
「○月○日の○時の状態」のように、過去のある時点へデータベースを巻き戻せる機能。誤操作からの復旧に使える。
接続文字列
DB の住所+認証情報をまとめた文字列。Neon は公開エンドポイント宛に必ず SSL で繋ぎ、コードに直書きせずシークレット管理から渡す(だから VPN や踏み台も不要)。
プール接続(pooler)/ 直結
ホスト名に -pooler を付けると内蔵の接続プール(PgBouncer)経由になり、多数の接続をさばける。マイグレーション等の一部は直結を使う。

ここから先へ

この解説とつながりのあるページ

データベースの歩き方』の歩き方 3/6 歩目次は「Neon vs Supabase