投稿日: | 最終更新日:
AWS Cloud9でDjangoを開発する
Cloud9はPythonが利用できますが、フレームワークであるDjangoを開発することも可能です。
Cloud9のPython開発
以下の続きです。今回は、Djangoアプリを作成して、最初の画面を表示します。
また、他者とCloud9を共有することも可能です。
→AWS Cloud9のワークスペースを他人と共有するには?
前提条件・作業の流れ
- AWSユーザー作成済み。
- Cloud9のワークスペースを作成済み。
①Cloud9のPythonのバージョンをPython3に設定します。
②コンソールを開き、Djangoをインストールします。
③Djangoプロジェクトを作成します。
Cloud9でPython3を設定する
Cloud9は、Pythonのバージョンを2か3に選択できます。Djangoアプリを作成しますので、まずPython3に変更します。
①画面左上の「AWS Cloud9」をクリックし、メニューの「Preferences」をクリックします。
②開いた設定タブの左側のメニューの「Python Support」を選択し、「Python version」をPython3に変更します。
Djangoのインストール
Python3のpipでDjangoをインストールします。
①画面上の「Window」をクリックし、「New Terminal」をクリックしてコンソールタブを開きます。
②下記コマンドを実行します。
sudo pip-3.6 install django
Djangoプロジェクトの作成
Djangoプロジェクトを作成します。コンソールで下記コマンドを実行します。
django-admin startproject MyTestApp
MyTestAppはプロジェクト名です。他の任意の名前でもOKです。
コマンドを実行すると、プロジェクト名と同じ名前のディレクトリが作成されます。
コンソールで下記コマンドを実行します。プロジェクトフォルダに移動します。
cd MyTestApp
Djangoアプリサーバの起動
①コンソールで下記コマンドを実行します。
python3 manage.py runserver 0.0.0.0:8000
コンソールにこんな内容が表示されれば起動は成功です。
※ただし、アプリサーバは起動していますが、まだAWSのファイアーウォールとdjangoのホスト制限が作動しています。この状態では外部からアクセスできません。
セキュリティグループを設定してポートを開放
①AWSのEC2の設定画面に移動します。画面左上の「AWS Cloud9」をクリックし、メニューの「Go To Your Dashborad」をクリックします。
すると、別タブで、Cloud9のダッシュボードが開きます。
②ダッシュボード左上の「サービス」をクリックし、表示されたメニューの「EC2」をクリックします。
③EC2のダッシュボードが表示されるので、「実行中のインスタンス」をクリックします。
④EC2インスタンスの一覧が表示されます。
インスタンスが停止している場合は、上部の「アクション」ボタン→「インスタンスの状態」→「開始」でインスタンスを開始してください。
画面下部には選択したインスタンスの詳細が表示されています。そのうち「パブリック DNS (IPv4)」の欄に表示されているのが、URLの中央部(ホスト)になります。
この前に「http://」をつけ、最後に「:8000」をつけてアクセスしてください。
例)http://xxxxxxxxx-1.compute.amazonaws.com:8000
⑤セキュリティグループの欄をクリックします。
セキュリティグループの設定が表示されます。
⑥インバウンドタブを開き、「編集」をクリックします。
⑦インバウンドルールを設定するダイアログが表示されます。
(1)「ルールの追加」をクリックします。
(2)TCPカスタムを選択しポートの欄に8000を入力します。
(3)保存をクリックします。
これで、ファイアーウォールの設定画変更されます。8000番ポートのアクセスが許可されます。
先ほどの「パブリック DNS (IPv4)」の欄に表示されている内容に、「http://」をつけ、最後に「:8000」をつけてアクセスしてください。
この時点で、Djangoのアプリにアクセスすることができますが、ホスト制限のため上記のようなエラーが表示されます。
DjangoのALLOWED_HOSTSを設定
Cloud9のIDEで、MyTestAppディレクトリにあるsettings.pyを開きます。
ALLOWED_HOSTSというリストに、先程の「パブリック DNS (IPv4)」の欄に表示されている内容を記述して保存します。
import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '!x)p5(mlq7@11nrgu(+j-_!v!@@=cu)*%w5i7z*ho+q3lk0d+7' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = ['xxxxxxxx-1.compute.amazonaws.com'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] ~(省略)~
もう一度、「:8000」で終わるURLにアクセスして下さい。下のように、Djangoの初期画面が表示されれば成功です。
次回
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1