Vercel Services は、Next.js フロントエンドと FastAPI バックエンドのように、複数フレームワークを1つの Vercel Project にまとめてビルド・プレビュー・本番へ載せる仕組みである。Public Beta として提供が始まり、フロントとバックを別クラウドに分けていたチーム向けである。

  • 原子的デプロイ: フロント、バック、その他サービスが同じデプロイ単位で同期し、ロールバックもまとめて行う。
  • 共有プレビュー: 変更が全サービスにどう影響するかを、同一プレビューデプロイで確認できる。
  • 内部通信: bindings で他サービス向け URL を環境変数へ注入し、公開インターネットを経由せず Vercel ネットワーク上で呼び出せる。
  • 公開経路: サービスは既定で内部のみ到達でき、外部公開はトップレベルの rewrites で明示する。
  • 定義は vercel.jsonservices キー。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" }
    }
  ]
}

#参考文献