코딩공부/Server

Aws ec2를 이용해 Django 서버 배포하기 - ec2 인스턴스 가상환경, runserver 실행하기

integerJI 2020. 9. 7. 23:23

Aws ec2를 이용해 Django 서버 배포하기에 앞서

  • 네로의 다락방님의 글을 보며 진행하였습니다. 네로의 다락방님이 간결하고 알기 쉽게 설명해 주셔서 무사히 배포할 수 있었습니다. 감사합니다.
  • 해당 글은 저의 프로젝트 배포를 진행하며 생긴 문제점과 해결방안 등 다시 정리해가며 글을 새롭게 작성됩니다.
  • 진행하는 OS는 mac 환경입니다.
  • window 환경이라면 mobaxterm 사용을 추천드립니다. (따로 가이드 작성 예정)
  • 리눅스 명령어를 따로 설명하지 않습니다.
  • COVID-19-REPORT 프로젝트를 실제 사용해 보기 위하여 배포를 진행합니다.
  • 현재 글은 배포 방법만 정리하였으며 설명을 추가중에 있습니다.

 

 

runserver 실행하기 위한 준비

sudo apt-get install python3-venv

 

가상환경을 만들기 전에 python3-venv 패키지를 먼저 설치하여 줍니다.

 

설치가 다 되었다면~

 

python3 -m venv myvenv

 

/home/ubuntu/ 위치로 이동하여 (홈)

 

가상환경을 설정하여 줍니다.

 

이곳 부터는 vscode를 통해 로컬에서 진행한것과 매우 비슷합니다.

 

gitbash가 터미널이 된거고 vscode가 ec2 인스턴스라고 생각하시면 좋을것 같습니다.

 

source myvenv/bin/activate

cd /srv/'자신의 github 프로젝트'

pip3 install -r requirements.txt

 

가상환경을 설치 했다면 실행해 줍니다.

 

그리고 자신의 github 프로젝트로 이동하여

 

프로젝트에서 설치하였던 pip 목록을 모은 requirements.txt를 이용해 pip를 설치하여 줍니다.

 

requirements.txt 설정은 heroku를 배포하면서 진행했었습니다. >>> integer-ji.tistory.com/11

 

  • 설치하며 나온 에러

 

침착하게 에러 로그를 확인합니다.

 

error: invalid command 'bdist_wheel' 라고 나오니

 

wheel을 다시 설치하여 줍니다.

 

pip install wheel

 

만약 wheel이 이미 설치가 되어있다면 

 

pip uninstall wheel로 제거 후 다시 설치해주면 됩니다.

 

 

Aws ec2 인스턴스 설정

 

aws의 인스턴스 창을 확인해보면 하단 보안 그룹launch-wizard-1.를 눌러줍니다.

 

 

자신의 보안 그룹 ID를 눌러줍니다.

 

 

인바운드 규칙 편집 !

 

 

규칙 추가를 누릅니다.

 

유형 : 사용자 지정 TCP (Custom TCP)

프로토콜 : TCP

포트범위 : 8080

소스 : 사용자 지정 (Custom)

0.0.0.0/0

 

이제 포트 8080에 대해 접속할 수 있게 되었습니다.

 

규칙 저장 클릭~

 

 

저장이 잘 되었다면 서버를 실행시켜 줍니다!

 

 

서버 실행시키기 python3 manage.py runserver 0:8080

 

ImproperlyConfigured("The SECRET_KEY setting must not be empty.")

 

만약 해당 에러가 나온다면 settings에 설정해준 SECRET_KEY가 없는 것입니다. >>> integer-ji.tistory.com/303 참고

 

 

python3 manage.py runserver 0:8080

 

0:8080 포트를 사용하여 서버를 실행시켜 줍니다.

 

8080의 url은

자신의 퍼블릭 DNS(IPv4):8080

http://ec2-15-164-100-29.ap-northeast-2.compute.amazonaws.com:8080/

 

입니다.

 

 

끝!