AWS-EC2インスタンスにDjango2.0のアプリケーション(今回は静的webページ)をデプロイします。
使用するツールはnginxとgunicornです。
aws - nginx - gunicorn - django
のような位置関係になるはず。
#1. Djangoではないページの公開
Djangoを使わない場合は、
AWSにEC2インスタンスを作成して、nginxを使い、webページを公開する【前編】
AWSにEC2インスタンスを作成して、nginxを使い、webページを公開する【後編】
こちらを参考にしてください。
AWSへの接続は、ターミナルで
ssh -i ローカルに置いてあるpemのpath/hoge.pem ec2-user@00.00.00.00(パブリックIP)
また、ブラウザでAWSコンソールにログインし、
確認用のため、8000番ポートを解放しておく。
EC2インスタンスのセキュリティグループにある、インバウンド/編集/ルールの設定
などで追加できる。
8000番ポートのタイプはカスタムTCP、ソースは0.0.0.0/0。
#2.nginxのインストール
yum install nginx
nginx
```:nginx自動起動設定
chkconfig --add nginx
chkconfig nginx on
chkconfig | grep nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ブラウザで、http://(パブリックDNS)
でnginxが起動しているか確認する。
#3.Djangoプロジェクトのアップロード
新しくローカルのターミナルを起動し、
ローカルターミナルから AWSへファイルのアップロードを行う。
Djangoプロジェクトはzipにしておくこと。
scp -i hoge.pem -r ローカルにあるアップロードしたいファイル/hoge.zip ec2-user@パブリックDNS/home/ec2-user/hogepj
すると、hogepjの下にhoge.zipがアップロードされる。
解答する場合は、最初のAWSターミナルから、アンジップする。
unzip hoge.zip
#4.Python3の環境構築(pyenv)
EC2サーバにPython3環境構築を参考にする。
gitが入っていない場合は sudo yum install git -y
で先にインストールしておく。
以下一行ずつ$の後からインストール
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y
$ pyenv install 3.6.2
これでpython3が入るはず。
ただし、接続を切ると2に戻ってしまうので、デフォルトの設定を3にしてしまう。
$ pyenv global 3.6.2
$ pyenv rehash
確認するコマンドは $ python --version
です。
###Djangoもインストール
pip install django
#5.gunicornのインストール
pip install gunicorn
manage.pyのあるところで、
gunicorn your_project.wsgi --bind=0.0.0.0:8000
もちろん、your_projectのところは、自分のプロジェクトの名前に変更しておく。この場合はhoge.wsgi。
setting.pyの設定も書き換える。
sudo vim xx/hoge/setting.py
などでターミナル上で書き換えることができる。詳しくはvimで検索。
# 中略
ALLOWED_HOSTS = ['(パブリックIP)']
# 以下略
'00.00.00.00'のようになるはずである。
ブラウザでhttp://(パブリックDNS):8000
を確認する
#6.あとはこちらのページが参考になる
https://qiita.com/kur/items/fb75354ee53671c79614#nginx%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AE%E5%A4%89%E6%9B%B4