PythonAnywhereを待つのはやめよう。FastAPIをオンラインにデプロイする方法
Emily Parker
Product Engineer · Leapcell

FastAPIはモダンなPythonウェブフレームワークです。登場以来、その優れたパフォーマンス、使いやすさ、強力な機能のおかげで、開発者コミュニティ内で絶大な人気を急速に博しました。Flaskのような古いフレームワークに取って代わるほどです。
しかし、FastAPIをオンラインにデプロイするのは、古いフレームワークほど簡単ではありません。
PythonAnywhereは、非常にシンプルなユーザーインターフェースを提供し、小規模プロジェクトの無料ティアがあるため、多くの人がPythonプロジェクトのデプロイに使用しています。
残念ながら、PythonAnywhereはFastAPIをサポートしていません。公式の説明によると、「プラットフォームはWSGIプロジェクトのみをサポートし、ASGIプロジェクトはサポートしていません」とのことです。WSGIとASGIが何であるかを知る必要はありません。FastAPIがそこでデプロイできないということだけ知っていれば十分です。
FastAPIサポートに関する公式の進捗は非常に遅いです。まだテスト段階であり、プラットフォームへのデプロイに成功した人はほんの一握りです。
では、PythonAnywhere以外の選択肢は何でしょうか?多くの人は、AWS EC2やDigitalOceanのような**VPS(仮想プライベートサーバー)**に目を向けるかもしれません。
A VPSは実際のコンピューターのように機能するため、FastAPIの基盤となる実装をサポートできます。ただし、VPSを使用してデプロイするには、次のような多くの問題について考慮する必要があります。
- プロジェクトがVPSで実行できるようにPython環境を構成およびインストールするにはどうすればよいですか。
- マシンがインターネットに公開され、ハッカーに悪用されるのを防ぐために、ネットワークとファイアウォールをどのように構成すべきですか。
- マシンレンタル料金以外に、支払う必要があるその他の費用は何ですか。
さらに、VPSは小規模プロジェクトのデプロイには適していません。マシン全体であるため、価格は通常かなり高く、マシンが有効になると、使用しているかどうかにかかわらず継続的に請求されます。
より良い選択肢はありますか?
もう一つのアプローチは、Leapcellを使用することです。
Leapcellは、FastAPIを含むさまざまな言語やフレームワークのワンクリックデプロイをサポートするWebアプリホスティングプラットフォームです。
Leapcellの料金は、APIの実際の使用量に基づいています。これは、デプロイされたプロジェクトが使用されていない場合、VPSとは異なり、1円も請求されないことを意味します。VPSは継続的に課金されます。
LeapcellでFastAPIプロジェクトをデプロイする手順は次のとおりです。
-
FastAPIプロジェクトをGitHubにコミットします。Leapcellはリポジトリからコードをプルします。詳細な手順については、GitHubの公式ドキュメントを参照してください。
-
Leapcellに登録します。登録後、Leapcellページで「Create Service」をクリックします。
-
FastAPIプロジェクトを選択します。さまざまなデプロイ構成が自動的に事前入力されていることがわかります。
-
下部にあるSubmitをクリックしてデプロイします。デプロイはすばやく完了し、デプロイホームページに戻されます。ここで、Leapcellが提供するドメインが表示されます。これはプロジェクトのオンラインアドレスです。
これで、このアドレスを使用してFastAPIプロジェクトにオンラインでアクセスできます。使用方法は、ローカル開発やデバッグと完全に一致しています。
例:
Local: GET http://localhost:3000/users/{userId}
Online deployment: https://xxxxx.leapcell.dev/users/{userId}
Leapcellには、ログ、トラフィック分析、データベースなど、他にも多くの一般的に使用される開発者向け機能が含まれています。お気軽に探索してください!