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を設定する流れ
セキュリティリストに許可設定
セキュリティリストに許可設定をする方法は、以前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を設定する流れ
ポート開放の他にも、Pythonのデフォルトを2.x系から3.xに変更した記事もあるので、興味があれば参考にしてほしい。
あわせて読みたい