リンクをコピーしました

FastAPIVercel 上にデプロイする流れと、サンプルリポジトリのセットアップ手順をまとめました。
Vercelをこれから触る方や、FastAPIで作ったAPIのデプロイ先を探している方の参考になれば幸いです。
Vercelは無料枠でかなり使えるので、個人開発の公開にも向いています。

この記事でわかること

  • FastAPI を Vercel にデプロイするまでの一連の流れ
  • uv を使った仮想環境の構築とローカル起動
  • Vercel CLIvercel dev / vercel / vercel --prod の使い分け
  • Pytest でテストを実行する方法
  • Vercel で動かすときの api フォルダ構成requirements.txt の置き場所の注意点

デモ・テンプレート

実際にデプロイしたサンプルです。

サンプルページ:

FastAPIをVercelにデプロイしたサンプルページ

サンプルページの表示例です。

FastAPIのAPIドキュメント(Swagger UI)

API用ドキュメント(Swagger UI)の表示例です。

Vercel のテンプレートからそのままデプロイすることもできます。

Deploy with Vercel

注意: Git と Vercel の連携が必要です。

開発環境

  • macOS Sequoia 15.5
  • VS Code
  • zsh 5.9 (arm64-apple-darwin24.0)

事前に必要なもの

Vercel で FastAPI を動かすときの注意点

重要: バックエンドの API は ルート直下ではなく api 以下に置く必要がありました。ルートに置くと Vercel 上で正しく起動しなかったため、この記事では api という名前のフォルダ構成にしています。また requirements.txtプロジェクトルート に置かないとインストールが失敗するので、ルート以下に配置してください。

ローカルでのセットアップと起動

1. リポジトリをクローンする

git clone https://github.com/testkun08080/FastAPI-vercel.git
cd FastAPI-vercel

2. 仮想環境を構築する

uv venv -p 3.12
uv pip install -r requirements.txt

3. アプリを起動する

uv run -m api.app.main

ブラウザでローカルにアクセスして動作を確認できます。

Pytest でテストを実行する

1. テスト用依存関係を入れる

uv pip install -r requirements_test.txt

2. Pytest を実行する

uv run pytest --html=report.html --self-contained-html --log-level=INFO

Vercel CLI でローカル確認からデプロイまで

1. ローカルで Vercel 環境を試す

vercel dev

Vercel の実行環境に近い形でローカルで動作確認できます。

2. プレビューとして Vercel にデプロイする

vercel

本番ではなく、プレビュー用の URL が発行されます。

3. 本番として Vercel にデプロイする

vercel --prod

プロダクション用の URL にデプロイされます。

まとめ

  • FastAPIVercel にデプロイ可能で、uv と Vercel CLI を使えばローカルから本番まで一貫して扱えます。
  • API は api 以下requirements.txt はルートに置く構成にすると Vercel で問題なく動かせます。
  • 無料で素早くデプロイできるので、とりあえず公開したいものなどには便利だと思います。