カテゴリ: Flask 更新日: 2025/12/15

Python FlaskアプリをAWS Elastic Beanstalkにデプロイする手順まとめ!初心者でもわかるやさしい解説

FlaskアプリをAWS Elastic Beanstalkにデプロイする手順まとめ
FlaskアプリをAWS Elastic Beanstalkにデプロイする手順まとめ

先生と生徒の会話形式で理解しよう

生徒

「Flaskで作ったWebアプリをAWSに公開したいんですが、どうやればいいんですか?」

先生

「AWS Elastic Beanstalkというサービスを使えば、Python Flaskアプリをかんたんにインターネットに公開できますよ。」

生徒

「Elastic Beanstalkってなんですか?難しそうに聞こえます…」

先生

「Elastic Beanstalk(エラスティック・ビーンストーク)は、Amazonのサービスのひとつで、アプリの公開(デプロイ)を自動でやってくれる魔法のような仕組みなんです。今回は、そのやり方を初心者向けに丁寧に説明しますね。」

1. AWS Elastic Beanstalkとは?

1. AWS Elastic Beanstalkとは?
1. AWS Elastic Beanstalkとは?

AWS(Amazon Web Services)は、Amazonが提供しているクラウドサービスです。その中でもElastic Beanstalk(エラスティック・ビーンストーク)は、PythonのFlaskアプリなどをかんたんにインターネットに公開できる便利なサービスです。

難しいサーバーの設定はElastic Beanstalkが自動でやってくれるので、初心者でも使いやすいのが特徴です。

2. Flaskアプリの準備をしよう

2. Flaskアプリの準備をしよう
2. Flaskアプリの準備をしよう

まずはFlaskアプリの基本構成を準備します。以下のようなファイル構成が一般的です。


my-flask-app/
├── application.py
├── requirements.txt
├── .ebextensions/
│   └── python.config
├── templates/
│   └── index.html
└── static/

Elastic Beanstalkでは、Flaskのファイル名をapp.pyではなくapplication.pyにする必要があります。

3. Flaskアプリのコード例

3. Flaskアプリのコード例
3. Flaskアプリのコード例

シンプルなFlaskアプリの例です。


from flask import Flask, render_template

application = Flask(__name__)

@application.route("/")
def index():
    return render_template("index.html")

if __name__ == "__main__":
    application.run()

4. requirements.txtを作成しよう

4. requirements.txtを作成しよう
4. requirements.txtを作成しよう

Flaskやその他のライブラリの情報を記載するファイルがrequirements.txtです。これがないとElastic Beanstalkではアプリを正しく動かせません。


Flask==2.3.3

バージョンは現在のものに合わせてください。

5. .ebextensionsでPythonの設定を追加

5. .ebextensionsでPythonの設定を追加
5. .ebextensionsでPythonの設定を追加

.ebextensionsというフォルダを作り、その中にpython.configファイルを入れて、使用するPythonのバージョンなどを指定します。


option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: application:application

application:applicationの意味は、「application.pyというファイルの中にあるapplicationというFlaskのオブジェクトを使って起動する」ということです。

6. AWSアカウントを作成しよう

6. AWSアカウントを作成しよう
6. AWSアカウントを作成しよう

AWSを使うには、まず公式サイトでアカウントを作成します。クレジットカードが必要ですが、無料利用枠があるので安心です。

  • AWS公式サイトから登録
  • 登録後は「Elastic Beanstalk」サービスを使えるようになります

7. AWS CLIのインストールと初期設定

7. AWS CLIのインストールと初期設定
7. AWS CLIのインストールと初期設定

AWS CLI(コマンドラインインターフェース)を使って、パソコンからAWSにアクセスできるようにします。


pip install awsebcli --upgrade --user

インストールできたら、以下のコマンドで初期設定します。


aws configure

設定項目には、AWSのアクセスキーとシークレットキーを入力します。これらはAWSの「IAM」という機能から取得できます。

8. アプリをElastic Beanstalkにデプロイしよう

8. アプリをElastic Beanstalkにデプロイしよう
8. アプリをElastic Beanstalkにデプロイしよう

いよいよFlaskアプリをElastic Beanstalkにアップロード(デプロイ)します。


eb init -p python-3.11 flask-eb-app
eb create flask-env
eb open
  • eb init:プロジェクトの初期化
  • eb create:新しい環境(サーバー)を作成
  • eb open:公開されたWebページをブラウザで開く

9. アプリが公開されたか確認しよう

9. アプリが公開されたか確認しよう
9. アプリが公開されたか確認しよう

eb openコマンドを使うと、自動でブラウザが開き、Flaskアプリがインターネットに公開されていることが確認できます。

アプリのURLはElastic Beanstalkが自動で発行してくれます。たとえば:


    http://flask-env.12345.ap-northeast-1.elasticbeanstalk.com/

10. Flaskアプリを更新したいときは?

10. Flaskアプリを更新したいときは?
10. Flaskアプリを更新したいときは?

コードを変更したあと、再びデプロイするには以下のコマンドを使います。


eb deploy

変更が反映されたかどうかは、URLを再読み込みして確認してみましょう。

11. よくあるエラーと対処法

11. よくあるエラーと対処法
11. よくあるエラーと対処法
  • エラー:requirements.txtがない
    → 必ず作成し、Flaskなどのライブラリを記載してください。
  • エラー:application not found
    → ファイル名がapplication.pyになっているか、Flaskの変数名がapplicationになっているかを確認。
  • ebコマンドが使えない
    → AWS CLIやEB CLIのインストールができていない可能性があります。

12. AWS Elastic Beanstalkを使うメリット

12. AWS Elastic Beanstalkを使うメリット
12. AWS Elastic Beanstalkを使うメリット
  • サーバーの構築や運用の知識がなくても使える
  • 無料利用枠でコストをかけずに試せる
  • 自動スケーリングやログの確認など便利な機能も充実
  • Amazonのサービスなので信頼性が高い

本格的なWebアプリを運用したいときには、Elastic Beanstalkはとても役立ちます。

まとめ

まとめ
まとめ

Python FlaskアプリをAWS Elastic Beanstalkに公開する流れをここまで一つ一つ見ていくと、クラウド上でWebアプリを運用する仕組みがどのように成り立っているのかが自然と理解できてきます。とくにElastic Beanstalkは、初心者がつまづきやすいサーバー管理の工程を自動化してくれるため、FlaskのようなシンプルなPythonアプリをインターネットへ公開したいときに非常に相性の良いサービスです。今回学んだ流れを振り返ると、まずはFlaskアプリの基本的なファイル構成を整えることから始まり、requirements.txtを作成して必要なライブラリを明確にし、.ebextensionsによってWSGIの設定を記述するという準備作業が重要であることが見えてきます。

さらに、AWSアカウントの作成やAWS CLI/EB CLIのインストール、AWSとの接続設定など、デプロイを進める前の環境整備も欠かせないステップです。これらの工程を丁寧に進めることで、Elastic Beanstalkにデプロイしたときにスムーズにアプリが公開されるようになります。特に、application.pyというファイル名やFlaskインスタンス名をapplicationに統一する点はElastic Beanstalk固有の注意点で、ここを間違えると起動時にエラーが出るためしっかり押さえておきたいポイントです。また、eb init、eb create、eb openといったコマンドの流れは、AWSのデプロイ手順を理解するうえで基礎となります。

デプロイ後はアプリのURLが自動で発行され、手軽に公開状態を確認でき、さらに変更を加えたい場合はeb deployで更新できるため、学習中の小規模アプリから本番運用を意識したアプリまで柔軟に対応できます。Elastic BeanstalkはAuto Scalingやログ管理などの便利な機能も提供しているため、実際にWebアプリを育てていく上で長く付き合っていけるサービスです。今回の手順を理解することは、クラウド上でのアプリ運用の第一歩につながり、今後DynamoDBやRDSなどの別のAWSサービスと組み合わせてより高度な構成を組む際にも役立つ知識となります。

ここでは学んだ内容のおさらいとして、Elastic Beanstalkに対応した簡単なFlaskアプリのサンプルコードをもう一度整理して載せておきます。各ファイルの役割を意識しながら、どう動作しているのかを追いかけてみると理解がさらに深まるでしょう。

サンプルコードで復習しよう


from flask import Flask, render_template

# Elastic Beanstalkでは "application" が必要
application = Flask(__name__)

@application.route("/")
def index():
    return render_template("index.html")

if __name__ == "__main__":
    application.run()

このような基礎構成を守るだけで、Elastic BeanstalkはFlaskアプリを自動的に理解し、環境を準備し、公開まで進めてくれます。初心者がクラウドやデプロイに触れる最初の学習としてちょうどよい題材であり、実際のWebアプリ運用の基礎力として今後の開発に大きく役立つ内容となります。ファイル構成、設定ファイル、コマンド、AWSとの接続、環境の準備など、どれか一つが欠けると正常にデプロイできないため、今回のように順番に全体像を理解していくことはとても重要です。

先生と生徒の振り返り会話

生徒

「Elastic Beanstalkってもっと難しいものだと思っていましたが、流れを追うと意外とシンプルなんですね!」

先生

「そうなんですよ。クラウドの仕組みを全部理解しなくても、必要な設定をしっかり整えれば自動で公開まで進めてくれる便利なサービスなんです。」

生徒

「application.pyにする理由や、requirements.txtの準備が大事な理由もよくわかりました。あれを忘れたらエラーになりますよね。」

先生

「その通り。Elastic Beanstalkがアプリを正しく読み取るための重要な部分だからね。今回の流れを理解しておけば、次はデータベース連携や環境変数設定にも挑戦できますよ。」

生徒

「今回学んだことをもとに、自分のアプリを実際に公開してみたくなりました!」

カテゴリの一覧へ
新着記事
New1
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
New2
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Flask
Flask‑Mailの使い方!アプリからメールを送信する基本方法を解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説