---
title: "Vercel DB（Vercel Storage）とは：Postgres・KV終了後の現行構成とBlob・Global Configの使い分け"
url: "https://www.issoh.co.jp/tech/details/19797/"
published: 2026-11-15
updated: 2026-11-15
categories: ["データベース"]
publisher: "株式会社一創"
---

# Vercel DB（Vercel Storage）とは：Postgres・KV終了後の現行構成とBlob・Global Configの使い分け

「Vercel DB」で検索して出てくる手順の多くは、ダッシュボードの Storage タブから Vercel Postgres を作る画面から始まります。その製品は、もうありません。Vercel Postgres と Vercel KV は2024年12月に Neon と Upstash へ自動移行され、2026年7月には Edge Config も Global Config へ名前を変えました。この記事では2026年11月時点の公式ドキュメントと npm の公開情報をもとに、Vercel Storage の現在の4製品、Marketplace 経由で Postgres を作ってつなぐコード、旧 `@vercel/kv` のコードの書き換え、Blob の料金の見積もり方、そしてこの構成を選ぶ条件と見送る場面を順に扱います。

## まとめ：Vercel DBはBlob・Global Config・Marketplace DBの3系統で選ぶ

現在の Vercel が自前で提供するストレージは、ファイル用の Blob、設定値用の Global Config、関数間で使う Runtime Cache の3つです。リレーショナルDBとキーバリューストアは Vercel の製品ではなく、Marketplace から Neon、Supabase、Prisma Postgres、AWS Aurora Postgres、Upstash などを追加する形に変わりました。接続情報は環境変数として自動で注入され、請求は Vercel 側にまとまります。

実装で先に決めるのは次の3点です。データを置く先（Blob か Global Config か Marketplace DB か）、Marketplace の請求をVercelへ寄せてよいか、関数とDBを同じリージョンに置けるか。旧 Vercel Postgres のコードを持っている場合は、`@vercel/postgres` が npm で非推奨になっている点も合わせて対応します。Vercel そのものの仕組みは[Vercelの仕組みとできることを整理した記事](https://www.issoh.co.jp/tech/details/2964/)にまとめています。

## Postgres・KV提供終了とGlobal Config改称後のStorage構成

かつての Vercel Storage は Postgres・KV・Blob・Edge Config の4製品でした。2026年11月時点で名前と中身がそのまま残っているのは Blob だけです。

### 2024年12月のPostgres・KVのNeon・Upstashへの自動移行

Vercel の[Postgres on Vercel](https://vercel.com/docs/postgres)には「Vercel Postgres is no longer available」とあり、既存のデータベースは2024年12月に Neon へ自動で移されたと書かれています。[Redis on Vercel](https://vercel.com/docs/redis)も同じ構成で、Vercel KV は同月に Upstash Redis へ移りました。

SDK も止まっています。npm registry の情報では、`@vercel/postgres` は2024年9月公開の 0.10.0、`@vercel/kv` は同月の 3.0.0 が最終版で、どちらにも deprecated の表示が付いています。前者のメッセージは Neon の SDK への移行を、後者は Marketplace の Redis 統合を案内する内容です。動いているコードがすぐ止まるわけではありませんが、新規の案件でこの2つを入れる理由はありません。

### Edge ConfigはGlobal Configへ改称されSDKパッケージ名も変更

[Edge Config から Global Config への移行ガイド](https://vercel.com/docs/global-config/migration-guide)によると、ストアそのものは変わらず、名前と周辺の識別子が変わりました。

| 項目   | 旧                     | 新                       |
| ---- | --------------------- | ----------------------- |
| SDK  | `@vercel/edge-config` | `@vercel/global-config` |
| 環境変数 | `EDGE_CONFIG`         | `GLOBAL_CONFIG`         |
| CLI  | `vercel edge-config`  | `vercel global-config`  |

旧名はいずれも引き続き動き、廃止時期は示されていません。注意点は1つで、新しく接続したストアには `GLOBAL_CONFIG` しか作られず、旧SDKは既定で `EDGE_CONFIG` しか読みません。npm では `@vercel/edge-config` 1.5.1 に改名済みの deprecated 表示が付いたため、ストアを追加する前にパッケージを差し替えてください。

### 現行4製品の役割と読み書き速度の違いに基づく公式比較表での用途整理

[Vercel Storage overview](https://vercel.com/docs/storage)は、現行の製品を次の4つに分けています。

| 製品            | 読み取り   | 書き込み   | 用途          |
| ------------- | ------ | ------ | ----------- |
| Blob          | 高速     | ミリ秒    | 画像・動画・PDF   |
| Global Config | 超高速    | 秒単位    | フラグ・転送先     |
| Runtime Cache | リージョン内 | リージョン内 | 一時キャッシュ     |
| Marketplace   | 製品次第   | 製品次第   | RDB・KV・ベクトル |

業務データの正本は Marketplace のDBに置き、Blob と Global Config はその脇を固める役、と割り切ると選択に迷いません。Runtime Cache は TTL とタグで失効させる一時領域で、正本の置き場には向きません。

## Marketplace経由でPostgresを作りNeonの接続コードを動かす手順

ここからは、Next.js の App Router に Postgres をつなぐ流れを、CLI での作成からクエリの実行まで順に追います。製品としての Neon の構成や料金は[Neonの構成と採用判断を扱った記事](https://www.issoh.co.jp/tech/details/16444/)に譲り、ここでは Vercel 側の配線に絞ります。

### vercel install neonでDB作成から.env.localへの取得まで行う

[Storage on Vercel Marketplace](https://vercel.com/docs/marketplace-storage)によると、`vercel install` は統合のインストール、リソースの作成、リンク済みプロジェクトへの接続、`vercel env pull` による `.env.local` への書き出しまでを1コマンドで行います。

```
# プロジェクトをリンクしてから実行する
vercel link
vercel install neon --name app-db -e production -e preview
# 料金プランを選ぶ場合は、まず指定できるIDを確かめる
vercel install neon --help
# 接続し直した後や値を差し替えた後に取り直す
vercel env pull .env.local
```

`-e` を省くと production・preview・development の3環境に接続され、Custom Environment は含まれません。ステージング用のDBを分けたい場合は `--environment staging` のように環境名を渡します。

### Neonの1.2系SDKでSQLを実行するRoute Handlerの実装例

サーバーレス関数から Neon へつなぐなら、HTTP 経由で問い合わせる `@neondatabase/serverless` が素直です。npm の最新は2026年11月13日公開の 1.2.1 で、Node.js 19 以上を要求します。

```
// app/api/posts/route.ts
import { neon } from '@neondatabase/serverless';
import { NextResponse } from 'next/server';

const sql = neon(process.env.DATABASE_URL!);

export async function GET(request: Request) {
  const { searchParams } = new URL(request.url);
  // 件数は1〜100に丸め、数値以外は20件にする
  const raw = Number(searchParams.get('limit') ?? '20');
  const limit = Number.isFinite(raw) ? Math.min(Math.max(raw, 1), 100) : 20;

  // ${} の値はドライバ側でパラメータ化される
  const rows = await sql`SELECT id, title FROM posts ORDER BY id DESC LIMIT ${limit}`;
  return NextResponse.json(rows);
}
```

[Neon serverless driver](https://neon.com/docs/serverless/serverless-driver)の説明では、1.0以降の `neon()` はタグ付きテンプレートとしてしか呼べません。旧来の `sql('SELECT ... $1', [id])` という書き方はエラーになるため、`sql.query()` に置き換えます。途中の結果で分岐する対話型トランザクションが要るときだけ、WebSocket の `Pool` を使ってください。ORM を挟む場合の接続文字列の扱いは[Drizzle ORMの使い方とPrismaとの比較](https://www.issoh.co.jp/tech/details/7939/)が参考になります。

### 注入される環境変数DATABASE\_URLと旧POSTGRES\_系の互換確認

[Neon の Vercel-Managed Integration](https://neon.com/docs/guides/vercel-managed-integration)が入れる主な変数は、プーラー経由の `DATABASE_URL`、直結の `DATABASE_URL_UNPOOLED`、個別値の `PGHOST` などです。旧 Vercel Postgres のテンプレート向けに `POSTGRES_` で始まる変数も後方互換として残ります。

アプリの実行時はプーラー経由、マイグレーションは直結、という割り当てを最初に固定してください。もう1つの落とし穴はプレビュー環境です。プレビュー用ブランチの接続情報はデプロイ時に Webhook で差し込まれ、Vercel の環境変数の画面には表示されません。画面に見えないから本番DBにつながっている、と早合点しないでください。環境ごとの値の分け方は[Vercelの環境変数の設定手順](https://www.issoh.co.jp/tech/details/18580/)で扱っています。

## 旧Vercel KVのコードをUpstash Redisで動かす環境変数と書き換え

KV を使っていたプロジェクトは、ストアがすでに Upstash 側へ移っています。残る作業は SDK の差し替えだけです。

### fromEnvのKV\_REST\_API\_URL参照と旧環境変数名の維持

npm で公開されている `@upstash/redis` 1.41.0 の配布物を確かめると、`Redis.fromEnv()` は `UPSTASH_REDIS_REST_URL` と `UPSTASH_REDIS_REST_TOKEN` に加えて、旧 KV 時代の `KV_REST_API_URL` と `KV_REST_API_TOKEN` も参照します。環境変数の名前を付け替えなくても、SDK だけを入れ替えれば接続できる作りです。

```
// 旧：@vercel/kv（npmで非推奨）
import { kv } from '@vercel/kv';
await kv.set('session:123', { userId: 1 }, { ex: 3600 });

// 新：@upstash/redis（KV_REST_API_URL と KV_REST_API_TOKEN をそのまま読む）
import { Redis } from '@upstash/redis';
const redis = Redis.fromEnv();
await redis.set('session:123', { userId: 1 }, { ex: 3600 });
const session = await redis.get('session:123');
```

`@vercel/kv` は内部で Upstash の SDK を包んでいたため、`set` や `get` の呼び出し方はほぼ同じです。料金や無料枠、レート制限の考え方は[Upstashの料金と使い方の記事](https://www.issoh.co.jp/tech/details/10244/)を参照してください。

### RedisとPostgresのどちらに置くかを決めるデータの寿命の基準

判断の軸は、そのデータが消えたときに業務が止まるかどうかです。セッション、レート制限のカウンタ、ランキングの集計途中の値のように、消えても再計算や再ログインで戻るものは Redis に置きます。注文、契約、請求のように消えたら戻せないものは Postgres に置き、Redis はその読み取りを速くするための写しにとどめます。キーバリューストアの仕組みとRDBとの役割分担は[KVSの仕組みを解説した記事](https://www.issoh.co.jp/tech/details/18062/)で詳しく扱いました。

## Vercel Blobでファイルを保存するコードと料金が増える要因

Blob は Vercel が今も自前で持つ唯一のファイルストレージです。npm の `@vercel/blob` は2026年11月9日公開の 2.9.0 が最新で、Node.js 20 以上を要求します。

### putでprivateストアへ保存するServer Actionと4.5MBの上限

[Server Uploads with Vercel Blob](https://vercel.com/docs/vercel-blob/server-upload)の例を短くすると、次の形になります。ストアは作成時に Private か Public を選び、CLI では `--access` が必須です。

```
// app/upload/actions.ts
'use server';
import { put } from '@vercel/blob';

export async function uploadImage(formData: FormData) {
  const file = formData.get('image') as File;
  // 呼び出し元の認証・認可をここで確かめてから保存する
  const blob = await put(file.name, file, {
    access: 'private',
    addRandomSuffix: true,
  });
  return blob.pathname;
}
```

Vercel Functions のリクエスト本文には4.5MBの上限があります。これを超えるファイルは、ブラウザから直接ストアへ送る[Client Uploads](https://vercel.com/docs/vercel-blob/client-upload)に切り替えてください。認証はプロジェクトに接続したストアなら短命な OIDC トークンで行われ、`BLOB_READ_WRITE_TOKEN` は Vercel の外で動かす場合などの予備という位置づけです。

### Hobbyの無料枠1GBとProの従量単価から月額を見積もる計算

[Vercel Blob Pricing](https://vercel.com/docs/vercel-blob/usage-and-pricing)では、Hobby の無料枠と、料金例に使われている米国東部（iad1）の単価が示されています。単価はリージョン別です。

| 項目         | Hobby無料枠 | iad1の単価       |
| ---------- | -------- | ------------- |
| 保存容量       | 月1GB     | 1GBあたり0.023ドル |
| Simple操作   | 1万回      | 100万回0.40ドル   |
| Advanced操作 | 2,000回   | 100万回5.00ドル   |
| Blob転送     | 10GB     | 1GBあたり0.05ドル  |

10GBを保存し、キャッシュミスの読み取りが100万回、アップロードが10万回、転送が50GBの月なら、0.23＋0.40＋0.50＋2.50で約3.63ドルです。ここにキャッシュミス分の Fast Origin Transfer と CDN リクエストが加わります。費用を押し上げるのは保存量より転送量で、512MBを超えるファイルはキャッシュされず毎回ミスとして数えられます。動画の配信が主目的なら、転送料のかからない[Cloudflare R2の料金とS3互換の範囲](https://www.issoh.co.jp/tech/details/7455/)と比べてから決めてください。Pro の月額に含まれるクレジットの範囲は[Vercel料金の解説記事](https://www.issoh.co.jp/tech/details/8792/)で確かめられます。

## Global Configにフィーチャーフラグを置く設定と書き込み上限の確認

Global Config は、全リージョンへ複製された設定値をDBに問い合わせずに読むための仕組みです。公式の説明では、多くの読み取りが1ミリ秒未満、99%が10ミリ秒以内に返ります。

### CLIでストアを作りgetでフラグを読むコードとGLOBAL\_CONFIG

```
# ストアを作り、初期値を入れる（公式ドキュメントの例）
vercel global-config create flags --items '{"betaUiEnabled":true,"region":"sfo1"}'
npm i @vercel/global-config
```

```
// app/page.tsx（サーバーコンポーネント）
import { get } from '@vercel/global-config';

export default async function Page() {
  // GLOBAL_CONFIG を既定で読み、無ければ EDGE_CONFIG に戻る
  const betaUi = (await get('betaUiEnabled')) === true;
  return betaUi ? <p>新しい画面</p> : <p>従来の画面</p>;
}
```

読み取りは1回の `get` でも `getAll` でも1回と数えられます。複数のキーを使う画面では、`get` を並べず `getAll` で1回にまとめると課金対象の回数が減ります。

### ストア1MB・反映最大10秒の制約から置いてよいデータを判定

[Global Config Limits and pricing](https://vercel.com/docs/global-config/global-config-limits)によると、ストアの上限は全プランで1MB、書き込みの全リージョンへの反映には最大10秒かかります。プロジェクトに接続できるストアは Hobby で1つ、Pro で3つです。料金は Hobby の無料枠を超えると読み取り100万回で3ドル、書き込み100回で1ドルで、Pro の書き込みは1時間あたり100回までに制限されます。

この数字から、置いてよいデータは「頻繁に読まれ、めったに変わらず、10秒遅れても困らない値」に限られます。フラグ、メンテナンス表示の切り替え、転送先URLの一覧は向いています。在庫数やユーザーごとの設定のように書き換えが頻繁なものは、更新の上限にすぐ当たるため Redis か Postgres に置いてください。

## Vercel DBの採用判断：Marketplace統合を選ぶ条件と見送る場面

ここまでの仕様を踏まえ、受託開発の立場から採否の線を引きます。

### 請求をVercelへ一本化したい小規模案件ではMarketplace統合を選ぶ

採用してよいのは、ホスティングとDBの契約主体が同じで、請求書を1本にまとめたい案件です。社内向けの業務ツール、検証段階のプロダクト、運用担当が1〜2名のWebサービスがこれに当たります。DBの作成から環境変数の注入、プレビュー用ブランチの作成までが自動化される利点は、運用の人手が少ないほど効きます。ダッシュボードから SQL を流せるデータブラウザも Neon・Supabase・Prisma Postgres・AWS Aurora Postgres に対応しました。

### 関数とDBを同じ地域に配置できない案件で通信距離を理由に採用を見送る判断

見送るべき場面ははっきりしています。第一に、関数の既定リージョンは米国東部の iad1 で、DB を東京に置いたまま関数を既定のまま動かすと、1クエリごとに太平洋を往復します。公式のベストプラクティスも関数とDBを近くに置くよう求めており、これを揃えられない構成では選ばないでください。第二に、納品後にクライアント名義でDBの契約を持つ必要がある案件です。Marketplace 経由では請求がVercelのチームに紐づくため、契約の切り分けが難しくなります。第三に、専用線や閉域網からDBへつなぐ要件がある案件では、Marketplace に頼らず自前のDBへ手動で接続情報を入れる構成にします。

Supabase を選ぶ場合の結線の細部は[Supabase Vercelデプロイ連携の記事](https://www.issoh.co.jp/tech/details/17066/)に、ホスティング先そのものを比べる場合は[VercelとCloudflare Pagesの違い](https://www.issoh.co.jp/tech/details/18587/)にまとめています。旧 Vercel Postgres からの移行や、既存の業務DBをどのクラウドに置き直すかの判断は、[データベース設計・移行支援](https://www.issoh.co.jp/service/system/database/)でスキーマ設計とあわせてご相談いただけます。

## よくある質問

Vercel DB について検索の多い疑問に、2026年11月時点の公式情報で答えます。

### Vercel DBは無料で使えますか？

Vercel 自身の Blob と Global Config は Hobby プランに無料枠があり、Blob は保存容量が月1GBまで、Global Config は読み取り10万回までです。Hobby の Blob は上限を超えても課金されない代わりに、30日が経つまで使えなくなります。Postgres や Redis は Marketplace の各社の料金体系に従い、Neon や Upstash には無料プランがあります。

### Vercel Postgresは今も新規に作成できますか？

作成できません。公式ドキュメントには「no longer available」と明記され、既存のデータベースは2024年12月に Neon へ移されました。新規なら Marketplace から Neon、Supabase、Prisma Postgres、AWS Aurora Postgres のいずれかを追加します。移された DB はVercelの統合から Neon として管理できます。

### Vercel KVの代わりには何を使えばよいですか？

Marketplace の Upstash for Redis か Redis を使います。旧 KV のストアは Upstash へ移っているため、既存のプロジェクトは `@vercel/kv` を `@upstash/redis` に差し替え、`Redis.fromEnv()` で接続するだけで動きます。環境変数の名前を変える必要はありません。

### Edge Configの名前が見当たりません。どこへ行きましたか？

Global Config へ改称されました。ダッシュボードの Storage タブでも Global Config と表示されます。旧来の `EDGE_CONFIG` 変数と旧SDKはそのまま動きますが、新しく接続するストアには `GLOBAL_CONFIG` だけが作られるため、ストアを足す前に `@vercel/global-config` へ移してください。

### Vercelで使うデータベースはどれを選べばよいですか？

正本となる業務データは Postgres を選び、Neon か Supabase が候補です。認証やストレージもまとめて持ちたいなら Supabase、Postgres だけを軽く持ちたいなら Neon、という分け方がわかりやすい基準になります。キャッシュやセッションは Upstash の Redis、画像やPDFは Blob に置きます。

## 関連記事

- [Vercel（ヴァーセル）とは？サーバー不要の仕組みとできること・料金【2026年】](https://www.issoh.co.jp/tech/details/2964/)：Vercel全体の仕組みと置けない処理を整理しています。
- [Neonとは？サーバーレスPostgresの構成・料金と採用判断を実装目線で解説](https://www.issoh.co.jp/tech/details/16444/)：Marketplace のPostgres本体の構成と料金です。
- [Upstashとは？サーバーレスRedisの料金・無料枠と使い方【2026年10月】](https://www.issoh.co.jp/tech/details/10244/)：旧KVの移行先の料金と使い方を扱います。
- [Supabase Vercelデプロイ連携｜環境変数の自動同期とプレビュー環境のDB分離](https://www.issoh.co.jp/tech/details/17066/)：Supabaseを選んだ場合の結線の細部です。
- [Vercel料金プラン｜Hobby無料枠とPro($20)の中身・超過単価【2026年10月】](https://www.issoh.co.jp/tech/details/8792/)：ホスティング側の費用を確かめられます。

---

出典: [Vercel DB（Vercel Storage）とは：Postgres・KV終了後の現行構成とBlob・Global Configの使い分け](<https://www.issoh.co.jp/tech/details/19797/>)（株式会社一創）
