python django 프로젝트를 아마존(aws) ec2 인스턴스에 생성 및 원격접속
Feb 10, 2019

python 으로 django 프로젝트를 생성해서 작업할 일이 생겼다. 로컬에서 작업하는 것보다 amazon aws에 ec2 인스턴스에 셋팅을 한 뒤에 Visual Studio Code의 ftp-simple 플러그인을 활용해서 remote workplace에서 작업을 해보기로 결정했다!

원래 정석은 로컬에서 django 프로젝트를 작업한 뒤 amazon 서버 셋팅 후 정식으로 deploy하는 것이 올바른 방법이겠다..

EC2 인스턴스에서 django 설치

django 패키지를 설치해야하는데, 가상환경을 설치하여 진행해 보도록 하겠다.

<가상 환경 설치는 Anaconda 가상환경설정 편 를 참고하여 진행하면 되겠다>

conda create -n django_env
source activate django_env

가상 환경으로 진입했다면, django 패키지를 설치 해보자!

conda install -c anaconda django

django 설치를 완료했다면, sample_project를 생성하고, 해당 dir로 이동한다.

django-admin startproject sample_project
cd sample_project

여기까지 완료했다면, 인바인드 규칙 편집을 해준 뒤 runserver를 하기 위한 간단한 셋팅만 해주면 된다.

인바운드 규칙 편집

Security Group 에서 인바운드 규칙 설정을 잘 해줘야 한다.

우선,

80포트와 443 포트는 HTTP / HTTPS를 위해 미리 설정해 둔 포트,

22포트는 SSH 연결을 위한 포트,

8000포트가 바로 django를 위해 열어둔 포트가 되겠다.

1549751525114

django 프로젝트에서 ALLOWED_HOST 설정

django 프로젝트를 localhost에서 runserver를 하게 되면, EC2 instance 외에 외부에서 접속이 안된다!

그렇기 때문에, runserver를 할 때 ip 주소를 0.0.0.0.:8000이렇게 parameter 값을 넘겨서 runserver해야하고,

settings.py에서 ALLOWED_HOST를 추가해 줘야 한다!!

먼저, EC2인스턴스의 I.P. 주소를 잘 복사 해둔 다음에…

settings.py

ALLOWED_HOSTS = ['110.123.456.789'] # EC2인스턴스 ip address

위와 같이, EC2인스턴스의 ip 주소를 추가해 주도록 한다.

EC2 인스턴스에서 django 프로젝트 만들고 runserver

EC2 인스턴스에서 django 프로젝트의 manage.py가 있는 dir로 이동한 뒤, runserver 해준다.

python manage.py runserver 0.0.0.0:8000

그리고, 브라우져에서 EC2 instance의 ip 주소와 포트번호를 입력하면, django 프로젝트가 잘 떠있는 것을 볼 수 있다.

1549752922963



관련 글 더보기

- aws ec2(ubuntu 18.04)에서 flask와 nginx 설정하기

- Visual Studio Code에서 ftp-simple 플러그인을 활용하여 AWS 인스턴스 code 원격(remote) 작업

- 아마존 AWS에서 생성한 인스턴스와 도메인 네임서버(가비아/cafe24) 설정하기

- AWS에서 딥러닝 인스턴스 만들고 jupyter notebook 실행까지!

데이터 분석, 머신러닝, 딥러닝의 대중화를 꿈 꿉니다.