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の管理人です。いろいろな技術について勉強しています。

Leave a Reply

Your email address will not be published. Required fields are marked *