create-a-backend について
実装の詳細に入る前に、ワークロードを基に Vercel のバックエンド構成を選ぶスキルです。リクエスト処理、バックグラウンド処理、データ保存、デプロイ境界に応じた製品とフレームワークの選定を支援します。
主な機能
- 01ワークロード別のバックエンド製品選定
- 02Functions、Services、プロジェクトの使い分け
- 03コンテナ、キュー、ワークフロー、デーモンの選択
- 04データストアとフレームワークの比較
- 05実装前のアーキテクチャ計画
活用シーン
- 01新しいバックエンドの Vercel 製品選定
- 02キューコンシューマーや永続的な複数ステップ処理の計画
- 03データベースと Functions のリージョン選定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vercel/ vercel-plugin --skill create-a-backendインストール後、Claude Code で/create-a-backendを入力して読み込まれたか確認します。
同梱ファイル.vercel.approversagents/openai.yaml
詳細
バックエンドを作成する
実装の詳細に入る前に、アーキテクチャを選び、ユーザーのバックエンド構築を支援します。プログラミング言語ではなく、ワークロードから始めます。Vercel はフロントエンドだけでなく、複雑なバックエンドアプリケーションも実行できます。
製品一覧
| ニーズ | Vercel 製品 |
|---|---|
| HTTP API、Webhook、ストリーミング、またはフレームワークのサーバーコード | Vercel Functions と Fluid compute |
| 双方向リアルタイム接続(WebSocket) | Fluid compute を使用した Vercel Functions。別途リアルタイムサービスは不要です |
| フロントエンドと、同時にデプロイされる1つ以上のバックエンド(API エンドポイント) | Vercel Services |
| 既存の Dockerfile、カスタムランタイム、またはシステム依存関係 | Vercel Functions 上の コンテナイメージ。必要に応じて Services と組み合わせられます |
| 再試行、スリープ、または外部イベントを伴う永続的な複数ステップの処理 | Vercel Workflows |
| バックグラウンドジョブ、バッファリング、ファンアウト、または直接的なメッセージルーティング | Vercel Queues |
| 常時稼働のワーカー:キューコンシューマー、Celery/Sidekiq/BullMQ ワーカー、ジョブランナー | Vercel Daemons(ベータ版、本番環境のみ) |
| スケジュールされた HTTP 処理 | Vercel Cron Jobs。ジョブ自体の永続性が必要な場合は Workflow を使用します |
| Postgres、Redis、NoSQL、ベクトルデータ、その他のアプリケーションデータ | Vercel Marketplace のストレージ連携 |
| ファイルとユーザーによるアップロード | Vercel Blob |
| グローバルに利用する、読み取り中心の設定 | Global Config |
通常のリクエスト/レスポンス型バックエンドには Functions を使用します。個別にビルドされたコンポーネントで、デプロイ、ルーティングレイヤー、プレビュー URL、ロールバックを共有する場合は Services を使用します。コンポーネントごとに独立したリリースサイクルが必要な場合は、Vercel プロジェクトを分けます。
対応フレームワークでは、ネイティブの Functions ランタイムを優先してください。アプリケーションにすでに Dockerfile がある場合や、カスタムランタイムまたはシステム依存関係が必要な場合は、コンテナイメージを使用します。コンテナイメージは常時稼働のコンテナホストではなく、自動スケーリングするステートレスな Functions として実行されます。
バックグラウンドジョブ、バッファリング、ファンアウト、メッセージルーティングには Queues を選びます。永続的な複数ステップのビジネスロジックには Workflow を選びます。ポーリングモードのキューコンシューマーや既存の Celery、Sidekiq、BullMQ ワーカーなど、プロセスを稼働し続けて処理を取得する必要がある場合に限り、Daemons を選びます。デーモンはトラフィックを受信できません。
データベースとデータストア
Marketplace を通じてデータストアをプロビジョニングすると、認証情報がプロジェクトに注入され、環境との接続を維持できます。プロバイダーを選ぶ前に、最新のカタログを確認してください。
- Postgres: Neon、Supabase、AWS/Aurora、Nile、Prisma Postgres
- MySQL: AWS/Aurora
- Redis とキー・バリュー: Upstash、Redis
- ドキュメントデータベースと NoSQL: MongoDB Atlas、AWS
- SQLite: Turso
- リアルタイムアプリケーションバックエンド: Convex
- 分析: MotherDuck
データベースを Functions のリージョンの近くに配置し、サーバーレスに対応した接続または接続プールを使用してください。
バックエンドフレームワーク
Vercel は、以下のフレームワーク向けに、公式のバックエンドのサンプルとインテグレーションを提供しています。
- Node.js と TypeScript: Elysia、Express、Fastify、H3、Hono、Koa、NestJS、Nitro、xmcp。バックエンドが Next.js アプリケーションに属する場合は、Next.js Route Handlers が自然な選択肢です。
- Python: FastAPI、Flask、Django。互換性のある
appをエクスポートするその他の WSGI または ASGI アプリケーションも、必要に応じて追加の設定を行うことで実行できます。 - Go: Vercel Functions のランタイムとしてサポートされています。
たとえば、Next.js/Vite/SvelteKit のフロントエンドと FastAPI/Flask/Express/Go のバックエンドなど、フロントエンドとバックエンドの組み合わせは、Services を使って 1 つのプロジェクトにまとめてデプロイできます。
ユーザーが既に使用しているフレームワークを優先してください。新しいプロジェクトでは、エコシステムとアプリケーションの要件に基づいて選択してください。
作業手順
- 同期リクエスト、非同期処理、永続データ、および個別にデプロイされるコンポーネントを特定します。
- マップからプロダクトを選択し、次にフレームワークを選択します。
- 実装に必要な、対象を絞ったスキル(
vercel-functions、vercel-services、daemons、queues、workflow、vercel-storage、またはmarketplace)を読み込みます。 - デプロイ前に、公式ドキュメントで関数の制限、リージョン、環境変数、オブザーバビリティ、および現在のプロダクト提供状況を確認します。