AWSいじり始め
今更ですが AWS を触る機会が出来たので、最初にやったことのメモを残します。
AWS で Flask 使って Web ページが見れるようになるまで。
boto とかその辺は今後で。
※アカウントの作成方法やらは割愛!
Key Pair 取得
コンソールの NETWORK & SECURITY の Key Pairs から「Create Key Pair」押下
適当な名前(例:testApp)をつけて
適当な場所(例:.ec2 フォルダ)に保存
セキュリティ ルール追加
コンソールの NETWORK & SECURITY 内 Security Group でルール追加
「Create a new rule」で「HTTP」を選択して「Add Rule」ボタン押下
「Apply Rule Changes」ボタン押下
接続
作成したインスタンスに接続
ドメインは上の画像で赤丸囲った所
$ ssh -i .ec2/testApp.pem ec2-user@ec2-XXX-XXX-XXX-XXX.ap-XXX.compute.amazonaws.com
もし次のようなエラーが出た場合
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '.ec2/testApp.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: .ec2/testApp.pem Permission denied (publickey).
意訳:0644 権限だとみんなが読めてヤバイから権限変えれ!
というわけで、権限修正。
$ chmod 0600 .ec2/testApp.pem
必要なものをインストール
とりあえず pip のち Flask くらいかなー。
$ sudo easy_install pip $ sudo pip install Flask
本体を作る
簡易版なので main.py を適当に作る
from flask import Flask, Response app = Flask(__name__) @app.route("/") def root(): return Response("Hello, AWS") if __name__ == '__main__': app.run(host="0.0.0.0", port=80)
host と port の指定は重要。
起動
ローカルの Flask と同じく起動。
port 80 で起動するので sudo が必須。
$ sudo python main.py
あとは
http://ec2-XXX-XXX-XXX-XXX.ap-XXX.compute.amazonaws.com
で繋がるハズ。
その他
sudo yum install python-setuptools sudo yum install python-devel sudo yum install mercurial
以上
何か適当すぎるけど、無料な範囲で遊ぶ程度ならこれくらいで。