AWS Cloud9でDjangoアプリを作成| Django 入門

AWS Cloud9でDjangoアプリを作成する

この記事の続きです。
https://tech-joho.info/aws-cloud9でpython開発する準備

Djangoアプリを作成して、最初の画面を表示します。

Cloud9でPython3を使う

実は、Cloud9で作った環境では、ディフォルトのPythonはバージョン2です。
これでは、Djangoアプリを作成できないので、まず、Python3を使いやすいように環境を整えます。(実は下の方法でDjangoを起動するのには必要ない)

画面左上の”AWS Cloud9″をクリックし、メニューの”Preferences”をクリックしましょう。

preference

開いた設定タブの左側のメニューの”Python Support”を選択し、Python versionをPython3に変更します。

selectpython3

参考
Cloud9でPython3のDjango環境を5分でつくる
https://qiita.com/rmiyamoto/items/4143c6081fb664208e06

Djangoのインストール

Python3のpipでDjangoをインストールしましょう。

コンソールで下記コマンドを実行しましょう。

$ sudo pip-3.6 install django

Djangoプロジェクトの作成

Djangoプロジェクトを作成します。

コンソールで下記コマンドを実行しましょう。MyTestAppはプロジェクト名です。他の名前でも大丈夫です。

$ django-admin startproject MyTestApp

コマンドを実行すると、プロジェクト名と同じ名前のディレクトリが作成されます。
project directory created

コンソールで下記コマンドを実行し、プロジェクトフォルダに移動しましょう。

$ cd MyTestApp

Djangoアプリサーバの起動

アプリサーバを起動し、画面を確認してみましょう。

コンソールで下記コマンドを実行しましょう。

$ python3 manage.py runserver 0.0.0.0:8000

コンソールにこんな内容が表示されれば起動は成功です。

console

ただし、アプリサーバは起動していますが、まだAWSのファイアーウォールとdjangoのホスト制限のせいで外部からアクセスできません。
これからその設定をしていきます。

セキュリティグループを設定してポートを開ける

まず、AWSのEC2の設定画面に移動しましょう。

画面左上の”AWS Cloud9″をクリックし、メニューの”Go To Your Dashborad”をクリックしましょう。
別タブで、Cloud9のダッシュボードが開きます。

go to dashboard

ダッシュボード左上の「サービス」をクリックし、表示されたメニューの”EC2″をクリックします。

EC2のダッシュボードが表示されるので、「実行中のインスタンス」をクリックします。
ec2dashboard

EC2インスタンスの一覧が表示され、1つしかない場合、選択状態になっています。
画面下部にはその詳細が表示されていますが、そのうち「パブリック DNS (IPv4)」の欄に表示されているのが、URLの中央部(ホスト)になります。
この前に”http://”を、後に”:8000″をつけてアクセスしてください。

次に、セキュリティグループの欄をクリックします。
ec2insance

セキュリティグループの設定が表示されるので、インバウンドタブを開き、 「編集」をクリックします。
security group

インバウンドルールを設定するダイアログが表示されるので、「ルールの追加」をクリックし、TCPカスタムを選択し、ポートの欄に8000を入力します。最後に、追加をクリックします。これで、ファイアーウォールの設定画変更され、8000番ポートのアクセスが許可されます。
inboudrule

上記の、「パブリック DNS (IPv4)」の欄に表示されている内容に、前に”http://”を、後に”:8000″をつけてアクセスしてください。

この時点で、Djangoのアプリにアクセスすることができます。
ただし、ホスト制限に引っかかり、下記のようなエラーが表示されます。

django host not allowed

DjangoのALLOWED_HOSTSを設定する

まず、開きっぱなしのCloud9のIDEで、MyTestAppディレクトリにあるmanage.pyを開きます。
その中ほどまでスクロールし、ALLOWED_HOSTSというリストに、先程の「パブリック DNS (IPv4)」の欄に表示されている内容を追加します。
もう一度、:8000で終わるURLにアクセスして下さい。

下のように、Djangoの初期画面が表示されれば成功です。
django default page

まだ、EC2やSecurityGroupとの連携がないせいで、結構めんどくさいですね。(2017年12月3日時点)
しかし、そのうち解消されるような気もします。

Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。