この記事ではVercelを使ってPythonアプリケーションをデプロイする方法と、そのメリット・デメリットについて解説します。
Vercelって何?
Vercel(バーセル)は、ウェブアプリケーションを簡単にインターネットに公開できるサービスです。GitHubのリポジトリを使って、数分でデプロイ(公開)することができます。もともと、VercelはNext.js等JavaScriptアプリケーションをホストするサービスでしたが、最近ベータ版としてPythonやGo, Rubyにも対応しました。無料版Herokuの代わりとして使えます。
Pythonアプリケーションをデプロイする方法
Vercelの公式サイトにPythonアプリケーションのテンプレートがいくつか用意されているので、数クリックで始めることができます。
FastAPIのテンプレートを作成したので、以下のボタンから始めることもできます。
メリット
無料で利用できる
AWSやGCP, Azureなどの有料サービスもありますが、Vercelは無料プランを提供しているので、お金をかけずに開発したい人に向いています。
デメリット
タイムアウトの問題
無料のHobbyプランでは、デフォルトでリクエストが10秒以上かかるとタイムアウトしてしまいます。vercel.jsonファイルで maxDuration を60秒に設定することで対応できます。
{
"version": 2,
"routes": [
{
"src": "/(.*)",
"dest": "api/main.py"
}
],
"functions": {
"api/main.py": {
"maxDuration": 60
}
}
}
サイズ制限
Vercelには、合計サイズが250MBまでという制限があるので、大きなプロジェクトには向いていません。パッケージをインストールする前に、REST API等代替案はないか調べてトータルサイズの節約をする必要があります。
各種制限についての詳細はこちらで確認できます。
デモ
VercelにFastAPIをデプロイしたデモがこちら。
Githubはこちら。
まとめ
Vercelは、簡単にウェブアプリケーションをデプロイできるサービスです。無料でPythonアプリケーションをデプロイできますが、いくつかの制限もあるので注意が必要です。Pythonを勉強中の方、コストを抑えて簡単なサービスを立ち上げたい人は是非試してみてください。