どうもRockです。アプリ公開の続きやっていきます。今回はUNIX操作多めです。
環境
・AWS(EC2)
・Ubuntu server
前提
・AWSアカウントを作成済みである
・rloginをインストール済みである
手順
3. ファイルをサーバ上に置く
3.1 ファイルの作成
適当な.pyファイルを用意します。今回は前回と同じはろーわーるどで。
Hello_World.py
print("Content-Type: text/html; charset=utf-8")
print("")
print("<html><head><meta charset='utf-8'><body>")
#Hello World!!を出力
print("Hello World!!") print("</body></html>")
3.2 フォルダ作成とファイル転送
ファイルタブからSFTPファイルの送信を選択。下図のウィンドウがでます。左がローカルで右がubuntuサーバ。右側で右クリックしてcgi-binフォルダを作ります。
作成したcgi-binフォルダの中に入り、そこにHello_World.pyをドラッグアンドドロップ。下図のようになればOK。
4. パーミッション設定
外部からフォルダ/ファイルにアクセスできるよう、パーミッションを変更する。
パーミッションを全開示に設定
$ chmod 777 cgi-bin
cgi-binフォルダに移動してパーミッション変更
$ cd cgi-bin
$ chmod 777 Hello_World.py
5. ポート設定
5.1 ポートの開放
こちらより引用させていただき少し追加しました。すべてのコマンドの先頭にsudoが必要になります。
リポジトリの更新
$ apt update ufw(ファイアウォール)をインストール
$ apt install ufw インストール直後はufwはファイアウォールとして指定されないためufwを有効化
$ ufw enable 「このコマンドを実行するとssh接続が切れるかも知れませんがいいですか?」と聞かれるので y を入力してEnter
sshのポートを開く (これを行わないとssh切断したあと接続出来なくなってしまいます!)
$ ufw allow 22
立ち上げるサーバのポートを開放
$ ufw allow 8080
5.2 AWS側でもポートの設定をする
インターネットからインスタンスに到達できるようにAWS側で設定。ページ左側のリストからセキュリティグループを選択し、インバウンドタブからルールを追加します。タイプは"カスタムTCP"、ポート番号は"8080"とします。
こんな感じになればOK。
6. サーバーの立ち上げ
ubuntuには初期でPythonが入ってます。初回のときと同じようにあのコマンドを打ちましょう。(ポート番号は先ほど設定した8080を入力。)
python3 -m http.server --cgi 8080
7. アクセス!
これでもうページは公開されています。URLは「パブリックDNS+:ポート番号+サーバを立ち上げた場所からのパス」になります。
今回でいうと
http://ec2-52-195-12-26.ap-northeast-1.compute.amazonaws.com:8080/cgi-bin/Hello_World.py
ですね。
でました。これでおしまいです。
おわりに
まとめるのに時間かかったけど、これで自分の作成したアプリを公開することができるようになりました。感動。今後は何かしら作って公開していきたいと思います。ではまた。
参考文献