Contents
HerokuでFlaskアプリを公開する前に必要な準備
Herokuは無料プランで利用可能であり、初心者向けに最適化されたクラウドサービスとして知られています。Flaskアプリのデプロイには事前準備が不可欠です。このセクションでは、Herokuアカウント作成とPython環境の確認方法について詳しく説明します。
無料プラン作成手順
Herokuは公式サイトで無料登録が可能で、メール認証を完了するだけで利用できます。具体的な手順は以下の通りです:
- Heroku公式サイト(https://www.heroku.com/)にアクセスし、「Sign up」ボタンをクリック
- メールアドレスとパスワードを入力してアカウント作成
- 登録用メールを確認し、認証リンクをクリック
注意点:無料プランではアプリの同時起動数に制限があるため、複雑な運用は避けましょう。
Python環境の確認方法
Flaskアプリケーションを動作させるにはPython 3.7以降が必須です。以下のコマンドで確認してください:
|
1 2 |
python --version |
- 出力例:
Python 3.9.12(※バージョンは環境に依存) - 出力結果が表示されない場合は、Pythonのインストールが必要です。公式サイトから入手可能です。
Flaskアプリケーションの初期設定
FlaskアプリをHerokuで動作させるには、ローカル環境での適切な構成が不可欠です。ここでは仮想環境構築手順と依存ライブラリの管理方法について解説します。
仮想環境構築手順
仮想環境は、プロジェクト専用のPython環境を分離するための仕組みです。以下のコマンドで作成してください:
|
1 2 |
python -m venv venv |
- venvディレクトリが生成され、依存ライブラリはここに格納されます。
- 仮想環境を有効化するには以下を実行:
bash
source venv/bin/activate
注意点:Windowsでは
venv\Scripts\activateを使用します。
必要な依存ライブラリのリスト作成
Flaskアプリで使用しているライブラリを一覧化するには、以下のコマンドを使用します:
|
1 2 |
pip freeze > requirements.txt |
- requirements.txt に記載されたライブラリは、Herokuでも自動的にインストールされます。
- ファイルが生成されない場合は、
pip install -r requirements.txtで再確認してください。
Heroku向けファイルの準備
Herokuはアプリケーションを動かすための構成情報を特定する必要があります。このセクションでは、Procfileとruntime.txtを作成する方法を解説します。
Procfileの基本的な記述例
Procfileは、Herokuがアプリを起動する際のコマンドを指定するファイルです。以下の内容をファイルに保存してください:
|
1 2 |
web: python app.py |
- web はHerokuで定義されたプロセスタイプの一つです。
app.pyはFlaskアプリケーションのメインファイル名です(プロジェクト構成によって変更が必要な場合があります)。
runtime.txtでのPythonバージョン指定
Herokuはruntime.txtから使用するPythonバージョンを自動判定します。以下の形式で作成してください:
|
1 2 |
python-3.10.6 |
注意:Herokuがサポートしているバージョン一覧は公式ドキュメントを参照してください。
- python-3.10.6の確認: Heroku公式サポートバージョンリスト(https://devcenter.heroku.com/articles/python-support)に記載されているため、利用可能です。
Gitリポジトリへのコード反映
HerokuではGitを通じてアプリケーションのコードを送信します。このセクションでは、初期コミット手順とHerokuリモートリポジトリの追加方法について説明します。
初期コミット手順
-
プロジェクトディレクトリで以下のコマンドを実行:
bash
git init -
変更内容をリモートに反映するため、ファイルを追加・コミットします:
bash
git add .
git commit -m "Initial commit"
注意点:
.gitignoreファイルで不要なファイルを除外すると、リポジトリのサイズが抑えることができます。
Herokuリモートリポジトリの追加方法
Herokuアカウントにリモートリポジトリを紐づけるには以下を実行します:
|
1 2 |
heroku git:remote -a <アプリ名> |
- <アプリ名> はHerokuで作成したアプリケーションの名称です。
- コマンド実行後、
git remote -vで確認可能です。
Heroku CLIによるデプロイ実行
Heroku CLIを使用することで、5分以内にFlaskアプリを公開できます。このセクションでは、初期デプロイコマンドとプッシュ手順について解説します。
初期デプロイコマンド
まずはHerokuでアプリケーションを作成します:
|
1 2 |
heroku create <アプリ名> |
- <アプリ名> は任意の名称を指定できます(既存のアプリ名と重複しないように注意)。
- 成功すると、リモートリポジトリが自動的に設定されます。
リモートリポジトリへのプッシュ手順
以下のコマンドでコードをHerokuに送信します:
|
1 2 |
git push heroku main |
- main はリモートリポジトリのブランチ名です(
masterなどに変更されている場合は合わせてください)。 - プロセスが完了すると、アプリケーションが自動的に起動します。
初期起動時のトラブルシューティング
デプロイ後もエラーが発生する可能性があります。ここでは、よくあるエラーメッセージの対処法とロギング確認コマンドを紹介します。
よくあるエラーメッセージの対処法
| エラー内容 | 対応策 |
|---|---|
| Cannot find a Python interpreter | runtime.txtが正しく作成されているか確認してください。 |
| No such file or directory: app.py | Procfileに記載されたファイル名と実際のファイルを一致させましょう。 |
| Missing required dependencies | requirements.txtが最新状態であるか再生成してみてください。 |
ロギング確認コマンド
Herokuでは以下のようにログを確認できます:
|
1 2 |
heroku logs --tail |
- 実時間でログ出力されるため、エラーの原因を特定するのに役立ちます。
注意:無料プランでは、環境変数やリソース制限に関する制約が存在します(公式ドキュメントを参照)。
無料プランで5分公開を目指して
HerokuでのFlaskアプリデプロイは、最初の一歩が重要です。手順通りに進めれば無料プランでも簡単かつ迅速に公開できます。
記事下部の「無料アカウント作成」ボタンからHeroku登録を開始し、5分で公開まで完了させましょう。