Vivid perfect

Vivid perfect

クソ記事盛りだくさん

PythonでWebアプリ作ります③~サーバー構築編Ⅱ~

どうも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フォルダを作ります。

f:id:hasekouv8:20190119100059p:plain


作成したcgi-binフォルダの中に入り、そこにHello_World.pyをドラッグアンドドロップ。下図のようになればOK。

f:id:hasekouv8:20190119100252p:plain

 

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"とします。

f:id:hasekouv8:20190119001716p:plain

こんな感じになればOK。

f:id:hasekouv8:20190119001727p:plain



6. サーバーの立ち上げ
ubuntuには初期でPythonが入ってます。初回のときと同じようにあのコマンドを打ちましょう。(ポート番号は先ほど設定した8080を入力。)

python3 -m http.server --cgi 8080

 

 7. アクセス!
これでもうページは公開されています。URLは「パブリックDNS+:ポート番号+サーバを立ち上げた場所からのパス」になります。

f:id:hasekouv8:20190119210206p:plain



今回でいうと

http://ec2-52-195-12-26.ap-northeast-1.compute.amazonaws.com:8080/cgi-bin/Hello_World.py

ですね。

f:id:hasekouv8:20190119210345p:plain

でました。これでおしまいです。

 

おわりに
まとめるのに時間かかったけど、これで自分の作成したアプリを公開することができるようになりました。感動。今後は何かしら作って公開していきたいと思います。ではまた。

 

参考文献

qiita.com

qiita.com

PythonでWebアプリ作ります②~サーバー構築編Ⅰ~

どうもRockです。今回の目的はアプリを公開すること。はろーわーるどを全国に公開するわけですね。そのためにサーバーを構築していきます。長くなりそうなので2部構成で。

 

環境

AWS(EC2)

Ubuntu server

 

前提

AWSアカウントを作成済みである

aws.amazon.com

・rloginをインストール済みである

nanno.dip.jp

 

手順

1.  AWSにログインし、ECでサーバーを立ち上げます

 1.1 EC2を選択し、インスタンスを作成

f:id:hasekouv8:20190114180623p:plain

f:id:hasekouv8:20190114180815p:plain

 

 1.2 Ubuntuを選択しインスタンスを作っていく

f:id:hasekouv8:20190114181436p:plain

f:id:hasekouv8:20190114181946p:plain

f:id:hasekouv8:20190114181804p:plain

 

 1.3 キーペアを作成しダウンロード(キーペア名は適当でよい)

f:id:hasekouv8:20190114182336p:plain

f:id:hasekouv8:20190114182546p:plain

 1.4 作成完了.詳細を確認する(後にパブリックIPを使用します)

f:id:hasekouv8:20190114182841p:plain

f:id:hasekouv8:20190114183340p:plain


2. EC2で作ったサーバーに端末エミュレータでアクセス(rloginを利用)
 2.1 rloginを立ち上げ必要事項を記入

 プロトコルssh

 ホスト名:1.4で確認したパブリックIP

 ログインユーザー名:ubuntu

 文字セット:UTF-8

f:id:hasekouv8:20190114184024p:plain

 2.2 SSH認証鍵をクリックし、1.3でDLしたpemファイルを選択

f:id:hasekouv8:20190114191350p:plain

 2.3 作成したServerを選択しOK

f:id:hasekouv8:20190114191743p:plain

 2.4 ログイン成功

f:id:hasekouv8:20190114192114p:plain

 

---------------------------------------------------------

おわりに

これで作成したサーバーを操作できるようになりました。こっからまた長いので今回はここまで。次回からはUNIX系の操作(パーミッションとかポート開放とか)がメインになります。めんどい。
PythonでWebアプリ作ります②~サーバー構築編Ⅱ~」に続きます。ではまた。

 

rock-finance.hatenablog.com