본문 바로가기
Programming

Django AWS 배포하기 3

by 하하호호 2022. 1. 15.
반응형

 

 

Django AWS 배포하기 1

step 1 기존 프로젝트 정리 pip freeze > requirements.txt 현재 프로젝트에서 필요한 모듈들을 requirements.txt 파일에 저장한다. 작업을 완료한 프로젝트 파일을 Git에 push해준다. AWS를 통해 배포하는 작업..

incomeplus.tistory.com

 

Django AWS 배포하기 2

requirements.txt 현재 프로젝트에서 필요한 모듈들을 requirements.txt 파일에 저장한다. 작업을 완료한 프로젝트 파일을 Git에 push해준다. AWS를 통해 배포하는 작업.." data-og-host="incomeplus.tistory.com"..

incomeplus.tistory.com

 

 

 

STEP 1. Git에 프로젝트 업로드

로컬에서 작업한 프로젝트를 git에 업로드한다.

내가 만든 AWS 서버에 가져올 프로젝트는 

git에 올라간 프로젝트 소스코드를 clone해서

가져오기 때문이다.

 

STEP 2. 로컬 프로젝트 RDS 연결

AWS EC2 서버에서 사용할 데이터베이스를

미리 만들어서 로컬 프로젝트에 연결작업을

해놓는다. AWS서버에서 작업을 진행해도 되지만,

미리 셋팅을 다 진행한다.

 

 

STET 3. AWS서버에서 git project 가져오기

git clone SSH link

AWS 서버에 프로젝트를 clone해서 가져온다.

새로운 디렉토리가 생기고, 로컬에서 작업하고,

git에 올렸던 프로젝트가 그대로 서버에 담긴다.

 

STEP 4. 가상환경 구축

sudo apt install virtualenv

AWS 서버에 가상환경을 구축한다.

먼저 virtualevn를 설치해준다.

서버에서 설치하는 모든 작업은 

sudo명령어를 붙여서 진행한다.

혹시나 모를 해킹에 대비하기 위해서 최상위

권한을 부여해서 작업하는 것이다.

 

가상환경을 activate하는 방법은

source bin/activate 

명령어를 사용한다.

 

STEP 5. requirements.txt 일괄 설치

pip install -r requirements.txt

sudo python3 -m pip install --ignore-installed requirements.txt

로컬 프로젝트에서 생성한 설치 txt파일을 불러와서,

필요 모듈들을 일괄적으로 AWS 서버에 설치한다.

 

이미 설치된 모듈이 존재하면 --ignore-installed 문으로

무시하면서 설치해줘야한다. 이유는 설치되어 있는 모듈을

삭제하는 과정에서 Error를 반환하기 때문이다.

 

 

 

 

**** psycopg2 에러 핸들링****

만약 데이터베이스를 postgreSQL를 사용한다면 

psycopg2 모듈을 설치해야 한다. 일괄적으로 모듈을

설치하는 과정에서 분명 psycopg2 설치 에러가 발생한다.

 

이 에러가 발생하는 이유는 AWS 서버에 psycopg2모듈을

위한 필수 모듈이 설치되어 있지 않기 때문이다. 보기만 해도

무시무시한 에러메세지가 출력된다.

 

 

 

 

사전 필요모듈

먼저 가상환경에 설치된 python3에서 pip을 업그레이드해준다.

python3 -m pip install --upgrade pip

root 권한으로 python3-pip 모듈을 설치해준다.

sudo apt-get install python3-pip

 

해결방법 1

psycopg2 모듈 대신에 psycopg2-binary 모듈을 사용하는 것이다.

pip install psycopg2-binary

 

해결방법 2

필수 모듈을 설치해주고, 그 다음 psycopg2 모듈을 설치한다.

sudo apt install libpq-dev python3-dev

 

이제 psycopg2 설치가 정상적으로 진행된다.

 

 

STEP 6 서버 테스트

AWS에서 가상환경을 activate 한다.

manage.py 파일을 담고 있는 디렉토리로 이동한다.

python3 manage.py runserver 0.0.0.0:8000 

서버를 가동해서 실제 접속가능여부를 확인한다.

메인 페이지가 렌더링 되면 성공이다.

반응형

댓글