Flask

FlaskアプリをHerokuにデプロイする手順|初心者向け完全ガイド

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

Flask デプロイ Heroku 手順|初心者向け完全ガイド

FlaskアプリをHerokuにデプロイする手順について詳しく解説します。本記事では「ゼロからわかる」視点で、アカウント作成から実際に公開できるまでの一連の流れをステップバイステップで紹介します。Python初心者でも理解しやすい構成にしていますので、ぜひ参考にしてください。


Herokuデプロイの準備: アカウント作成とCLI導入

Herokuデプロイには事前準備が必要です。まずはアカウント登録から始めていきましょう。

Herokuアカウントの登録手順

  1. 公式サイトへアクセスし、メールアドレスとパスワードを入力します。
  2. 認証コードが届くので、画面に表示されたコードを入力して完了させます。
  3. 無料プランは利用できるものの、アプリ起動の制限(1時間毎の再起動)やリソース制限があるため、本格的な運用には有料プラン検討が必要です。

注意: 無料プランではリソースが制限されているため、継続的な運用には有料プランへの移行を検討してください。以下で詳しく述べます。


Heroku CLIのインストール方法

Heroku CLIを導入することで、ローカルでデプロイ手順を確認できます。

OS インストール手順
Mac Heroku CLI公式サイトからpkgファイルをダウンロードし、インストールします。
Windows ChocolateyやPowerShellからchoco install herokuで導入可能です。
Linux curl https://cli-assets.heroku.com/install.sh | shで最新版をインストール可能です(apt-getは非推奨)。

ローカル環境でのCLI確認

が実行され、バージョン番号が出力されるかを確認します。
注意点: CLIの認証はheroku loginコマンドで別途行います。


Flaskアプリの基本構築と仮想環境設定

Flaskアプリケーションを構築するためには、プロジェクト構成・仮想環境・必要なパッケージ管理が必須です。

プロジェクトディレクトリ構成

  • app.py:Flaskアプリ本体
  • requirements.txt:インストールするPythonライブラリの一覧
  • venv/:仮想環境のディレクトリ

venvの作成手順

ポイント: requirements.txtを用意することで、ローカル環境とHeroku環境のライブラリバージョンが一致します。


requirements.txt生成方法

  • 重要: Herokuではこのファイルに記載されたライブラリのみが自動でインストールされます。
  • 例: Flask==2.0.1と明示することでバージョン管理が可能です。
  • 注意: パッケージを追加した後や、環境変更後に必ず実行してください。

Heroku用設定ファイルの作成

HerokuはProcfileやruntime.txtなどの設定ファイルをもとにアプリを起動します。このセクションで必要なファイルを作成していきます。

Procfileの書き方と役割

ProcfileはHerokuに「どうやってアプリを起動するか」を指示するファイルです。プロジェクト直下に配置し、以下のように記述します。

  • web::エントリポイントの指定(Herokuが認識するため)
  • gunicorn:WSGIサーバーとして使用
  • app:app:Flaskアプリケーションモジュールと名前空間

注意: Procfileプロジェクト直下に配置し、拡張子をつけないことが重要です。


runtime.txtでのPythonバージョン指定

  • Herokuはこのファイルに記載されたバージョンのPythonを使用します。
  • バージョンミスマス防止策: requirements.txtruntime.txtで一貫したバージョンを管理しましょう。

環境変数設定方法

Herokuでは環境変数をProcfileconfig varsに設定できます。たとえば、データベースURLは以下のように設定します:

重要: 環境変数はheroku configコマンドで確認可能で、デプロイ時にアプリ内で利用できます。


Gitによるリポジトリ管理とHerokuへのデプロイ

Gitを使用してローカルのコードをHerokuに送信する手順について説明します。

初期コミットとリモートリポジトリ設定

  • 注意点: ファイル構成が複雑な場合、.gitignoreで不要ファイルを除外する必要があります。

.gitignoreの具体例

プロジェクト直下に以下のようなファイルを作成します。

注意: 仮想環境やローカル設定ファイルは.gitignoreで管理し、不要な情報をリポジトリに含めないよう注意してください。


heroku createコマンド実行手順

  • my-flask-appは任意のアプリ名。Herokuが自動でURLを生成します。
  • 無料プランの制限: 1時間ごとに再起動されるため、継続的な運用には注意が必要です。

git pushで本番環境へプッシュ

  • デプロイ完了後は、heroku openコマンドでデプロイされたアプリのURLを開けます。

WSGIサーバー構築とgunicorn導入

HerokuではWSGIサーバーを使用してFlaskアプリを起動します。gunicornが一般的に使われます。

gunicornの導入手順

  • 重要: requirements.txtgunicornが記載されていることを確認してください。
  • ローカルでのテスト方法:
    bash
    gunicorn app:app

注意: Herokuとローカル環境の構成が一致していない場合、デプロイ時にエラーが発生する可能性があります。


デプロイ後の確認とよくあるトラブルシューティング

デプロイ後も忘れずに確認事項があり、トラブルシューティングが必要なケースもあります。

アプリURLの取得方法

  • または、https://my-flask-app.herokuapp.com/にアクセスします(my-flask-appはアプリ名)。

ブラウザでのアクセステスト

  • 期待される結果: 「Hello, World!」と表示されること
  • エラーのケース例:
  • 502 Bad Gateway: WSGIサーバー構成が正しくない場合
  • 404 Not Found: Procfileが存在しない場合

ログ確認コマンド

  • 重要: エラー発生時のログを確認することで、原因特定が可能です。
  • よくあるエラー例:
  • ImportError: No module named 'Flask': requirements.txtにFlaskが記載されていない場合

要点まとめ

Herokuデプロイはアカウント作成→CLIインストール→アプリ構築→ファイル設定→Git送信→WSGIサーバー起動の流れで行います。以下がポイントです。

デプロイのキーポイント

  • 無料プランの制限: 1時間ごとに再起動されるため、本格的な運用には有料プランを検討する必要があります。
  • ファイル管理の重要性: Procfileruntime.txtを正しく記述し、バージョン管理を行うことでデプロイ成功確率が高まります。
  • エラーチェック: ログ確認(heroku logs --tail)や環境変数の再確認でトラブルシューティングを行い、素早く修正してください。

Herokuは初心者でも使いやすいクラウドサービスです。本記事に従ってFlaskアプリをデプロイし、あなたのWebサービス公開を始めてみましょう。

スポンサードリンク

-Flask