AWSのEC2でFlask環境を構築

投稿者: | 2022年3月21日

無料枠のAWSのEC2インスタンスにFlask環境を構築しました。
FlaskはPythonのWebアプリケーションフレームワークの一つです。
小規模向けで、他のフレームワークよりも学習コストが低いとされています。

手順はこちらの記事を参考にしました。

【AWS】AWSのEC2でPythonのFlaskサーバーを構築する方法。

上の記事ではAmazon Linuxを使用していますが、今回はUbuntuのEC2を使用しています。

やりたいこと

  • AWS EC2インスタンス(Ubuntu)でFlask環境を構築
  • 外部からEC2上のWebアプリにアクセス

やったこと

EC2インスタンスのポート設定

まずは、AWSマネージメントコントロールから、Flaskで使用するポートに外部から許可する設定をします。

  • AWSマネージメントコントロールにログイン
  • FlaskをデプロイするEC2インスタンスを選択
  • [セキュリティタブ] – [セキュリティグループ]を選択
  • [インバウンドルール]タブの[インバウンドルールを編集]を選択
  • [ルールを追加]をクリックし、新しく追加された行のポート範囲を「5000」に設定し、ソースを「0.0.0.0/0」に設定

EC2インスタンスへのFlaskインストール

UbuntuのEC2インスタンスでは、デフォルトでpython3がインストール済です。
他に足りないライブラリをインストールしていきます。

ubuntu@ip-172-31-87-222:~$ sudo apt update
ubuntu@ip-172-31-87-222:~$ sudo apt install python3-pip
ubuntu@ip-172-31-87-222:~$ sudo apt-get install python3-venv

venv構築

flask用にpythonのvenv環境を作成します。
venv環境をつくることで、仮想環境ごとにインストールしたパッケージや設定ができるため、管理が容易になります。

ubuntu@ip-172-31-87-222:~$ python3 -m venv flaskenv
ubuntu@ip-172-31-87-222:~$ source flaskenv/bin/activate

Hello worldアプリのデプロイ

テスト用に”Hellow world”を表示するアプリを作成します。
適当な名前(app.py)で、アプリ本体を作成し、venv環境で実行します。

from flask import Flask

app = Flask(__name__)

@app.route('/',methods=["GET"])
def reply():
    return "Hello world!!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

(flaskenv) ubuntu@ip-172-31-87-222:~$ sudo python app.py
 * Serving Flask app 'app' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://172.31.87.222:5000/ (Press CTRL+C to quit)

アクセス

ブラウザから、以下のURLで作成したWebアプリにアクセスできれば成功です。

http://[Elastic IP]:5000/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です