Vercel Services は、Next.js フロントエンドと FastAPI バックエンドのように、複数フレームワークを1つの Vercel Project にまとめてビルド・プレビュー・本番へ載せる仕組みである。Public Beta として提供が始まり、フロントとバックを別クラウドに分けていたチーム向けである。
- 原子的デプロイ: フロント、バック、その他サービスが同じデプロイ単位で同期し、ロールバックもまとめて行う。
- 共有プレビュー: 変更が全サービスにどう影響するかを、同一プレビューデプロイで確認できる。
- 内部通信:
bindingsで他サービス向け URL を環境変数へ注入し、公開インターネットを経由せず Vercel ネットワーク上で呼び出せる。 - 公開経路: サービスは既定で内部のみ到達でき、外部公開はトップレベルの
rewritesで明示する。 - 定義は
vercel.jsonのservicesキー。Deployments のサービスグラフ、Logs のサービス別フィルタ、vercel devによる全サービス起動が連動する。 - フレームワーク定義インフラ: FastAPI / Flask(Python)、Express / Hono(TypeScript)、Go・Rust サーバなどを自動検出・プロビジョニングする。
- コンピュート: 各サービスは Fluid compute 上で動き、Active CPU 時間ベースで課金される。バインディング経由の呼び出しは service request、応答バイトは Fast Origin Transfer として扱われる。
json
{
"services": {
"my_frontend": {
"root": "frontend/",
"framework": "nextjs",
"bindings": [
{
"type": "service",
"service": "my_backend",
"format": "url",
"env": "BACKEND_INTERNAL_URL"
}
]
},
"my_backend": {
"root": "backend/",
"entrypoint": "main:app"
}
},
"rewrites": [
{
"source": "/(.*)",
"destination": { "service": "my_frontend" }
}
]
}