前回の続きです。
Teraterm から AWS EC2 の ubuntu インスタンスに接続する
EC2 のインスタンス作成まず EC2 のインスタンスを ubuntu16 で作成します。キーペアをダウンロードしたら、なくさないように保存しておく必要があります。再発行はできない仕様みたいなので、最悪 EC2 にアクセス...
Django で作った Python の Web アプリをクラウドサービスである AWS EC2 上で動作させるための準備をします。
なお、EC2 へは Teraterm を使用して接続するものとします。
インストール
以下を実行し、Python3、PostgreSQL、Nginx をインストールします。
# ソフトウェア一覧を更新
ubuntu@ip-XXX:~$ sudo apt-get update
# インストールする
# python3 関連・・・python3-pip python3-dev
# PostgreSQL関連・・・libpq-dev postgresql postgresql-contrib
# Nginx関連・・・nginx
ubuntu@ip-XXX:~$ sudo apt-get install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx
# インストールにはそこそこ時間がかかります
PostgreSQL の設定
PostgreSQL の開始
# sudo -u postgres で、「postgres」というユーザーでコマンド実行を意味する
ubuntu@ip-XXX:~$ sudo -u postgres psql
psql (9.5.17)
Type "help" for help.
postgres=#
データベースの作成
# postgres のコマンドは、;(セミコロン)を一つの命令の単位として認識する
postgres=# CREATE DATABASE myfirstapp;
CREATE DATABASE
Django からアクセスするためのユーザーとパスワードを追加
# 「myusername」というユーザーを、「1234」というパスワードで作る
postgres=# CREATE USER myusername WITH PASSWORD '1234';
CREATE ROLE
# 「myusername」というユーザーが、日本語を使用できるようにする
postgres=# ALTER ROLE myusername SET client_encoding TO 'utf8';
ALTER ROLE
# 「myusername」というユーザーが、実行された結果だけを見に行くという設定にする
postgres=# ALTER ROLE myusername SET default_transaction_isolation TO 'read committed';
ALTER ROLE
# 「myusername」というユーザーのタイムゾーンを日本にする
postgres=# ALTER ROLE myusername SET timezone TO 'UTC+9';
ALTER ROLE
# 「myusername」というユーザーに、myfirstapp のデータベースへの権限を付与する
postgres=# GRANT ALL PRIVILEGES ON DATABASE myfirstapp TO myusername;
GRANT
# PostgreSQL の psql のツールを終了する
postgres=# \q
Django の実行環境を作る(virtualenv の導入)
インストール
# pip コマンドの更新
ubuntu@ip-XXX:~$ sudo -H pip3 install --upgrade pip
# virtualenv のインストール
ubuntu@ip-XXX:~$ sudo -H pip3 install virtualenv
仮想環境の作成
カレント(/home/ubuntu
)に作ります。
# py36 という仮想環境を作る
ubuntu@ip-XXX:~$ virtualenv py36
Using base prefix '/usr'
New python executable in /home/ubuntu/py36/bin/python3
Also creating executable in /home/ubuntu/py36/bin/python
Installing setuptools, pip, wheel...
done.
# できているか確認
$ubuntu@ip-XXX:~$ ls
py36
仮想環境の開始
# 仮想環境の実行開始
ubuntu@ip-XXX:~$ source py36/bin/activate
(py36) ubuntu@ip-XXX:~$
仮想環境内に Django 等をインストール
- gunicorn: アプリケーションサーバー(Python のプログラムを安定的に実行するためのソフトウェア)
- psycopg2: Python から PostgreSQL に接続するためのライブラリ
(py36) ubuntu@ip-XXX:~$ pip install django gunicorn psycopg2
コメント
[…] AWS EC2 で Django で作った Web アプリを動作させる ~準備編~前回の続きです… […]