データベース

Vercel DB(Vercel Storage)とは:Postgres・KV終了後の現行構成とBlob・Global Configの使い分け

AWSを利用したインフラ構築

「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の仕組みとできることを整理した記事にまとめています。

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には「Vercel Postgres is no longer available」とあり、既存のデータベースは2024年12月に Neon へ自動で移されたと書かれています。Redis on Vercelも同じ構成で、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 への移行ガイドによると、ストアそのものは変わらず、名前と周辺の識別子が変わりました。

項目 旧 新
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は、現行の製品を次の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の構成と採用判断を扱った記事に譲り、ここでは Vercel 側の配線に絞ります。

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

Storage on Vercel Marketplaceによると、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の説明では、1.0以降の neon() はタグ付きテンプレートとしてしか呼べません。旧来の sql('SELECT ... $1', [id]) という書き方はエラーになるため、sql.query() に置き換えます。途中の結果で分岐する対話型トランザクションが要るときだけ、WebSocket の Pool を使ってください。ORM を挟む場合の接続文字列の扱いはDrizzle ORMの使い方とPrismaとの比較が参考になります。

注入される環境変数DATABASE_URLと旧POSTGRES_系の互換確認

Neon の Vercel-Managed Integrationが入れる主な変数は、プーラー経由の DATABASE_URL、直結の DATABASE_URL_UNPOOLED、個別値の PGHOST などです。旧 Vercel Postgres のテンプレート向けに POSTGRES_ で始まる変数も後方互換として残ります。

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

旧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の料金と使い方の記事を参照してください。

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

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

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の例を短くすると、次の形になります。ストアは作成時に 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に切り替えてください。認証はプロジェクトに接続したストアなら短命な OIDC トークンで行われ、BLOB_READ_WRITE_TOKEN は Vercel の外で動かす場合などの予備という位置づけです。

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

Vercel Blob 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互換の範囲と比べてから決めてください。Pro の月額に含まれるクレジットの範囲はVercel料金の解説記事で確かめられます。

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によると、ストアの上限は全プランで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デプロイ連携の記事に、ホスティング先そのものを比べる場合はVercelとCloudflare Pagesの違いにまとめています。旧 Vercel Postgres からの移行や、既存の業務DBをどのクラウドに置き直すかの判断は、データベース設計・移行支援でスキーマ設計とあわせてご相談いただけます。

よくある質問

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 に置きます。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.11.13 テックブログ 宝くじ公式サイト不正アクセス:4,436名の対象確認とパスワード再設定、変更された仕組み
  2. 2026.11.13 テックブログ KARTEの不正アクセス:全機能停止で利用企業がタグ・配信・データ連携を確かめる手順
  3. 2026.10.21 テックブログ マネックス証券の不正アクセス:メールアドレス最大約113万件と本人確認画像1,592件の漏えいのおそれ、口座開設停止とPHP脆弱性との関係
  4. 2026.11.11 テックブログ Microsoft 2026年11月の月例更新:Outlookの悪用済みCVE-2026-124194と修正版の確認方法
  5. 2026.11.14 テックブログ ヤマダデンキの不正アクセス:リフォーム管理システム最大350万件と、住所・見積を持つ営業記録の守り方

RELATED POSTS 関連記事

目次