WEBサービス

Oracle Cloudでflaskの動作確認する為のポート開放

Oracle Cloudでflaskの動作確認する為のポート開放

Oracle CloudなどクラウドサービスのVMインスタンス上で、FlaskやDjangoを動かす場合、Flask自体は5000番などのポートで通信させ、http用の80番ポートはWEBサーバーであるApacheやNginxが使い、80番ポートへのアクセスをNginxが5000番ポートにフォワードしてインターネットとの通信を行う。

PC
↓ http(80)アクセス
WEBサーバー(Nginx、Apache)
↓ 5000番ポートにフォワード
WEBアプリ(Flask、Django)

しかしApacheやNginxの設定を行う前にFlaskの動作確認をしたいこともある。
またNginxなど80番ポートとの通信に異常があった場合、FlaskなどWEBアプリが5000番ポートで動作しているか確認したい場合もある。
そんなときは外部から5000番ポートと直接通信できる必要がある。

今回はOracle Cloudでflaskの動作確認する為のポート開放方法を紹介する。


Oracle Cloudでflaskの動作確認する為のポート開放

Oracle Cloudでのポート開放の手順は2つ

nginxを設定する流れ

  • セキュリティリストに許可設定
  • VMインスタンスのファイアウォールに許可設定



  • セキュリティリストに許可設定

    セキュリティリストに許可設定をする方法は、以前Oracle CloudのVMインスタンスにNginxを設定した際の記事が参考になる。

    80番ポートを許可した時と同じ手順で5000番ポートを許可すれば良い。




    VMインスタンスのファイアウォールに許可設定

    ファイアウォールに許可設定も、Nginx設定の回と似ている。
    前回はhttpサービスを許可対象にした。

    sudo firewall-cmd --zone=public --add-service=http --permanent
    

    今回は対象はサービスの名前ではなく、5000番ポートを直接指定する。

    sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
    

    設定変更したらファイアウォールをリロードして設定完了。

    sudo firewall-cmd --reload
    



    Oracle Cloudでflaskをバックグラウンドで起動

    Oracle Cloudでflaskを起動する為には、ssh接続が切断されてもFlaskが動き続けるようにバックグラウンドで動かす必要がある。

    pythonをバックグラウンドで起動させるには、 nohup を付けて実行する。

    nohup python (Flaskアプリのpyファイル) &
    

    これでVMインスタンスのパブリックIPを確認して、
    パブリックIP:5000
    にWEBブラウザでアクセスすれば、WEBサーバーが未設定の状態でもFlaskの動作を確認できる。

    ただし、あくまで暫定対応。
    本来はWEBサーバーと連携するようにwsgiなど使って起動する。




    Oracle Cloudでflaskの動作確認する為のポート開放 まとめ

    Oracle CloudでWEBサーバー(Apache、Nginx)を通さずにFlaskなどのWEBアプリの動作を確認するには、WEBアプリで使用しているポートを開放する必要がある。
    ポート開放の手順は以下の通り。

    nginxを設定する流れ

  • セキュリティリストに許可設定
  • VMインスタンスのファイアウォールに許可設定

  • ポート開放の他にも、Pythonのデフォルトを2.x系から3.xに変更した記事もあるので、興味があれば参考にしてほしい。

    コチラもオススメ

    KRSW

    駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

    役に立ったらシェアしてくれると励みになります。

    にほんブログ村 IT技術ブログへ

    -WEBサービス
    -, ,

    Translate »

    Copyright© ITips , 2020 All Rights Reserved.