Neon は中身が標準の Postgres のまま、サーバーの面倒を手放せるサービスです。目玉は本番のコピーを瞬時に作るブランチで、壊しても本番は無傷です。
- 組織からテーブルまで 6 段の入れ子で整理する
- 使わない間は処理が自動で眠り、その分の課金が止まる
- PR ごとの使い捨て検証環境も一瞬で用意できる
Neon の中はどんな入れ物でできているのか
NeonDB(Neon)はクラウド上で動く Postgres のサービスで、SQL もツールも従来のまま使えます。ブランチの身軽さの土台は、その入れ物の重ね方にあります。まず外側の組織から内側のテーブルまで、入れ子を順にたどりましょう。
各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。
この図をテキストで読む
構成図「NeonDBの入れ子ツリー — 組織からテーブルまで」。ブロック11個、つながり10本。 【ブロック】 - 組織: 5slab(会社・チーム) - プロジェクト: universal(アプリ1つ) - ブランチ: production(本番) - ブランチ: preview / pr-123 - データベース: neondb - スキーマ: public(既定) - スキーマ: website(自前) - テーブル: customers - テーブル: orders - データベース: app_logs(別用途・空) - プロジェクト: another-app(別アプリ・空) 【流れ】 - 外側の入れ物から内側へたどる: 組織 → プロジェクト → ブランチ → データベース → スキーマ → テーブル
ブランチはこう使う
- 本番のコピーで試して、用済みは捨てる。PR ごとに繰り返せます。
各ステップをクリックすると、その内容の説明がここに表示されます。
この図をテキストで読む
ステップ図「ブランチを使った開発の流れ」。5ステップ。 【手順】(順番に) 1. 本番ブランチ(production) — 本物のデータ 2. ブランチを作成(瞬時にコピー) — 数秒 3. 自由に試す(壊してOK) — 本番に影響なし 4. 良ければ本番へ(変更を取り込む) — 確認後 5. 用済みは破棄(削除) — コストも止まる 補足: 本番のコピーで試して、用済みは捨てる。PR ごとに繰り返せます。 【流れ】 - ブランチ開発のひとめぐり: 本番ブランチ → ブランチを作成 → 自由に試す → 良ければ本番へ → 用済みは破棄
用途で「どの単位で分けるか」を選ぶ
各セルをクリックすると、その意味や詳しい説明がここに表示されます。
この図をテキストで読む
比較表。4列 × 5行。 【列】 1. スキーマ(同じDB内) 2. データベース(同じブランチ内) 3. ブランチ(本番のコピー) 4. プロジェクト(丸ごと独立) 【比較】(観点ごとに) ■ 隔離の強さ - スキーマ: ゆるい - データベース: 中くらい - ブランチ: 強い - プロジェクト: 最強 ■ compute・storage - スキーマ: どちらも共有 - データベース: どちらも共有 / 同じブランチ - ブランチ: storage は差分共有 / compute は別 - プロジェクト: どちらも完全に別 ■ またいで検索 - スキーマ: できる - データベース: ふつうしない - ブランチ: 別環境=不可 - プロジェクト: 不可 ■ 費用への影響 - スキーマ: ほぼ増えない / ほぼ無料 - データベース: ほぼ増えない / ほぼ無料 - ブランチ: 差分課金+稼働compute / 中 - プロジェクト: まるごと別計上 / 高い ■ 向いている場面 - スキーマ: 横断集計・接続をまとめたい - データベース: アプリ単位で中身を分けたい - ブランチ: 本番を壊さず試す・PRプレビュー - プロジェクト: 顧客ごとに課金・地域も分離 【観点】 - 費用を抑えて分ける: スキーマ / データベース - しっかり分離する: ブランチ / プロジェクト
料金体系(Neon 公式プラン)
各セルをクリックすると、その意味や詳しい説明がここに表示されます。
この図をテキストで読む
比較表。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
アプリと開発者、それぞれのつなぎ方
- 1
アプリのつなぎ方
接続情報はシークレット管理から読み込み、アプリ専用の最小権限ロールで繋ぎます。多数の接続をさばくため、ホスト名に -pooler を付けたプール接続が基本です。
- 2
開発者のつなぎ方
psql や GUI などの標準クライアントで、開発者ごとに最小権限のロールを払い出して繋ぎます。試すのは本番のコピーである自分用ブランチの上です。
- 3
自動停止との付き合い方
眠りから覚めるとき一瞬のコールドスタートがあり、接続が切れることもあります。アプリ側に再接続・リトライを用意すると安定します。
迷ったら「隔離の強さ」で選ぶ
ゆるく分けて横断もしたいならスキーマ、中身を完全に分けたいならデータベース、独立した実験場が欲しいならブランチ、課金や地域まで分けたいならプロジェクト。外側の入れ物ほど隔離が強く、内側ほど身軽に分けられます。
押さえておきたい用語
- サーバーレスPostgres
- サーバーの管理を抱えず、使った分だけ払う形で使える Postgres。中身は通常の Postgres なので SQL やツールはそのまま使える。
- コピーオンライト
- コピー時に中身を複製せず「変えたところだけ」を記録する方式。ブランチ作成が一瞬・低コストになる理由。
- scale to zero(自動停止)
- アクセスが無い間は処理部分を自動停止して料金もゼロにし、次のアクセスで素早く再開する仕組み。
- プロジェクト / データベース / スキーマ
- 入れ子の単位。プロジェクト>ブランチ>データベース(用途ごとの箱)>スキーマ(テーブルの引き出し)>テーブルの順で内側へ。
- PITR(特定時点復元)
- 「○月○日の○時の状態」のように、過去のある時点へデータベースを巻き戻せる機能。誤操作からの復旧に使える。
- 接続文字列
- DB の住所+認証情報をまとめた文字列。Neon は公開エンドポイント宛に必ず SSL で繋ぎ、コードに直書きせずシークレット管理から渡す(だから VPN や踏み台も不要)。
- プール接続(pooler)/ 直結
- ホスト名に -pooler を付けると内蔵の接続プール(PgBouncer)経由になり、多数の接続をさばける。マイグレーション等の一部は直結を使う。
ここから先へ
この解説とつながりのあるページ