AWS EC2 で Django で作った Web アプリを動作させる ~準備編~

Python

前回の続きです。

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

コメント

  1. […] AWS EC2 で Django で作った Web アプリを動作させる ~準備編~前回の続きです… […]

タイトルとURLをコピーしました