LoginSignup
3
4

More than 3 years have passed since last update.

AWS Cloud9でFlaskアプリサーバーを起動する方法

Last updated at Posted at 2018-04-01

AWS Cloud9でFlaskアプリサーバーを起動する

FalaskのチュートリアルでFlaskサーバーを立ち上げる際に若干作業が必要だったのでメモしておきます。
結論から言うと、AWSのファイアーウォールとflaskのホスト制限を外します。

環境

AWS Cloud9

AWS Cloud9はクラウドベースのIDEです。EC2の料金がかかってしまいますが、仮想環境をローカルに作る手間が省けて重宝しています。

Flask

FlaskはPythonのフレームワークです。マイクロと謳っている通り、必要最低限と行った感じで扱いやすいです。

問題点

tutorialのStep 3: Installing flaskr as a Packageで、以下のコマンドをterminalで叩いてサーバーを起動してくださいと記載されています。

export FLASK_APP=flaskr
export FLASK_DEBUG=true
flask run

しかし、この方法ではアプリサーバーは起動していますがAWSのファイアーウォールとflaskのホスト制限で外部からアクセスすることができません。

解決方法

EC2のセキュリティーグループを設定してポートを開ける

EC2へアクセス

以下の画像のようにAWS Clooud9のタブを開いてダッシュボードに移動します。
スクリーンショット 2018-04-01 10.43.49.png
その後EC2のダッシュボードを開いてください。

インバウンドのポートを開ける

起動中のEC2のインスタンスを選択し、説明タブにあるセキュリティーグループを選択します。
そうすると画面が遷移するので、インバウンドタブを開きます。
EC2 Management Console.png
編集ボタンを押すとインバウンドのルールを設定できるようになるので、「ルールの追加」をクリックし、TCPカスタムを選択し、ポート欄に5000を入力します。最後に保存を押せば設定が更新されて、5000番ポートのアクセスが許可されます。
part2_EC2 Management Console.png

flask runの引数にパブリックDNSを渡す

EC2のダッシュボードに戻り、起動中のインスタンスを選択します。パブリック DNSが記載されているので、コピーしてきます。(EC2インスタンスが落ちるたびに、この値は変更されます。解決は可能ですが、お金がかかります。)
コピーしてきたら、flaskアプリケーションのディレクトリで以下のコマンドを打ちます。

flask run --host=your-public-DNS

サーバーが起動できたら、以下のURLにアクセスできるようになっているはずです。
http://your-public-DNS:5000

参考

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4