Amazon AWS(EC2)でのFlask環境の作成方法
Amazon AWS(EC2)でのFlask環境を構築します。
Flaskとは
FlaskとはPython用の軽量なウェブアプリケーションフレームワークです。
Python言語をベースとしたウェブアプリケーションを作成することができます。
使用する環境
- Amazon AWS(EC2)
- Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type
- Python 3.x
- Python 仮想環境管理(venv)
Amazon AWS(EC2)での無料利用枠で使用できるt2.microを使用して環境を構築します。
Amazon Linuxのインスタンス生成を行う
Amazon AWS(EC2)でAmazon Linuxのインスタンスの生成を行います。インスタンスタイプはAWS無料利用枠で使用できるt2.microを使用します。
ステップ 1: Amazon マシンイメージ (AMI)
Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Typeを選択します。
ステップ 2: インスタンスタイプの選択
t2.microを選択します。
後は確認と作成ボタンを押しデフォルトで進めていきます。
Amazon AWS(EC2)の使い方については説明しませんので、詳しく知りたい方は別サイトで確認してください。
Amazon Linuxでのflask環境構築手順
作成したAmazon Linuxへログインを行い、以下のコマンドを入力していきます。
最新環境へのupdateを行う。
1 2 |
$ sudo yum -y update $ sudo yum install python36-devel python36-libs python36-setuptools |
続いてpython3.x系のインストールを行います。途中でY/Nのコマンド入力を聞かれた時はYを入力してください。Complete!と表示されたら成功です。
1 |
$ python3 |
>>>が出力されたらpython3のインストールは成功です。Ctl+zで抜けてください
Python仮想環境の作成
1 2 |
$ mkdir [projectname] $ python3 -m venv [projectname] |
Python仮想環境とはプロジェクトごとに独立した環境を仮想的に作成することです。インストールしたライブラリはそのプロジェクト内でしか使用出来なくなります。
使用するメリットとしては、Aというプロジェクトではflaskの古いバージョン、Bというプロジェクトでは新しいバージョンを使用するというように、プロジェクトごとに個別にライブラリをインストールすることが出来る点です。
これにより、別プロジェクトでインストールしたライブラリの影響を無くすことが出来ます。
[projectname]には作成したいプロジェクト名を入力します。例えばflaskというプロジェクト名の場合は、mkdir flaskと入力します。Python仮想環境の有効化
1 |
$ source [projectname]/bin/activate |
pipの最新化
1 |
([projectname])$ pip install --upgrade pip |
--upgrade のオプションを使用することでpipの最新化を行うことができます。
flaskのインストール
1 2 3 |
([projectname])$ pip freeze ([projectname])$ pip install flask ([projectname])$ pip freeze |
flask以外のモジュールについても同様の手順でインストールすることができます。
また、pip freezeコマンドでPython仮想環境の中にインストールされているモジュールを確認することができます。
初回のpip freezeコマンドでは何もインストールされていないので何も表示されません。2回目のpip freezeコマンドではflaskがインストールされていることを確認してください。
2回目のpip freezeコマンドでflaskのインストールが出来ていることを確認できたら成功です。
Flaskを使用してHello World!と表示する
環境は整いましたので次にFlaskのコードを記載していきます。Hello World!と表示するコードを書いていきます。
Flaskでのコード作成
1 2 |
([projectname])$ cd [projectname] ([projectname])$ vi app.py |
1 2 3 4 5 6 7 8 9 10 11 |
#!/usr/bin/env python # -*- encoding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' if __name__ == '__main__': app.run(host='0.0.0.0') |
Flaskの実行
1 |
([projectname])$ python3 app.py |
このようなメッセージが出力された場合は成功です。ポートの5000番で待ち合わせています(flaskのデフォルトポート)。
flaskのデフォルトポートは変更することが可能です。
セキュリティグループの変更
Amazon Linuxでのセキュリティグループの追加を行います。初期設定ではsshしか許容されていないので5000番を追加します。
http://IPアドレス:5000
と入力することで以下のようなWEBサイトが表示されたら成功です。
IPアドレスはAmazon AWS(EC2)で作成したインスタンスの"IPv4 パブリック IP"に表示されています。
ターミナル上では次のようなメッセージが出力されているかと思います。
"GET / HTTP/1.1" 200
終了する場合はCtrl+cで終了することができます。
Python仮想環境の終了
1 |
([newvenvname])$ deactivate |
先ほどのFlaskはPython仮想環境内でインストールしているために、deactivateで終了した後は使用できなくなります。再度使用したい場合は、また有効化します。
1 |
$ source [projectname]/bin/activate |
以上の手順にてAmazon AWS(EC2)でのFlask環境を構築することができます。
Flask環境を使用することでPython言語で書かれたアプリケーションをそのままウェブアプリケーションとして載せ替えるようになります。
是非Flaskを活用してください。