6
6

More than 3 years have passed since last update.

AWS Cloud9上でFlaskの設定から公開まで

Last updated at Posted at 2020-01-31

1.はじめに

AWS Cloud9上でFlaskを走らせるための備忘録です。
概ね以下のような構成です。
・AWS Cloud9でpython3を使うための環境設定
・ポートの開放
・ElasticIPを使ったドメインの割り当て(追加しました)

2.Cloud9の起動

Cloud9を起動し、「Create enviroment」でFlaskで公開するCloud9用の環境を用意します。
c91.PNG

Configure settings で環境設定を行います。Name欄に名称をつけで「Next Step」
c92.PNG

Cost-saving settingは標準のままだと30分で強制的に終了しますので、「Never」に設定します。
後から設定変更可能です。(AWS Cloud9→Preferences→EC2 Instance)
(当初これを知らずに、勝手にflaskが停止する理由がわからなった...。)
c95.PNG

「Next Step」のボタンを押し、確認の画面で「Create enviroment」ボタンで環境を構築します。

3.IDEの起動と初期設定

作成した開発環境を「Open IDE」で開き、開発環境を確認します。
c96.PNG
Pythonは3.6、pipは2.7が設定されていますので変更します。
sudo update-alternatives --config python
「2」を選択します。
c97.PNG
再確認します。
c98.PNG
pipで必要なモジュールをインストールします。今回はflaskをインストールします。
flaskに限らずpipでインストールするときは末尾に「--user」をつけてインストールします。
c99.PNG

4.ポートの開放

AWSのEC2管理画面から「実行中のインスタンス」を選択しインスタンスの一覧を表示します。
C100.PNG

「説明」タブ内の「セキュリティグループ」の項目を選択
ここでパブリックIPのIPアドレスを控えておきます。
C106.PNG

「インバウンド」タブ内の「編集」ボタンを押します。
C102.PNG

「ルールの追加」ボタンを押し、タイプ「カスタムTCP」を選択し、開放するポート番号とソースに「0.0.0.0/0」を指定し保存します。今回は50000を開放します。
C103.PNG

5.Flaskのテスト

もう一度cloud9の開発環境に戻り、Flaskのテストコードを入力します。


from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World"

if __name__ == "__main__":
    app.run(host = '0.0.0.0', port = 50000)
    app.debug = True

コードを実行します。
C104.PNG

ポート開放で確認したパブリックIP:ポート番号を叩いてアクセス可能なことを確認します。
http://〇〇.〇〇〇.〇〇〇.〇〇〇:50000/

C107.PNG
これで外部からアクセスできるようになりました。

6. ドメインの割り当て(おまけ)

Elastic IPを使ってお名前ドットコムで取得したドメインを割り当てます。

6.1 AWS側(Elastic IP)の設定

EC2ダッシュボードからElastic IPをクリック
C108.PNG

ElasticIPアドレスの割り当てをクリック
C109.PNG

パブリックIPアドレスが割り当てられます。
C111.PNG

割り当てられたパブリックIPアドレスをクリックします。
C114.PNG

該当するインスタンスを選択します。C115.PNG

プライベートIPも自動で候補が表示されますので、指定して「関連付ける」をクリックします。
これでElasticIPがEC2のインスタンスに割り当てられます。
C116.PNG

6.2 お名前ドットコム側の設定

お名前ドットコムのドメイン管理画面でDNS関連機能の設定をクリックします。
※ネームサーバーはお名前ドットコムのネームサーバーを使用します。
ちなみに「.com」のドメインで1年間1,166円でした。
C117.PNG

対象ドメインを選択して次へ
C119.PNG

DNSレコード設定を利用するの「設定する」ボタンをクリック
C120.PNG

A/AAAA/CNAME/MX/NS/TXT/SRV/DS/CAAレコードのVALUE欄にElasticIPで取得したパブリックIPを入力して追加し、「確認画面へ進む」→「設定する」
C121.PNG

これでドメインと紐づけできました。反映されるまで数時間かかります。

6
6
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
6
6