>>> ssh -i 파일이름.pem ubuntu@공인아이피
EC2서버 환경이 ubuntu이므로 ubuntu 64bit를 선택 마우스 오른쪽 버튼 메뉴에서 링크 주소 복사를 선택해 복사 해준다. 미니콘다 설치프로그램 다운로드
다음과 같은 순서로 진행한다.
>>> wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
>>> Miniconda3-latest-Linux-x86_64.sh
>>> ./Miniconda3-latest-Linux-x86_64.sh
>>> source .bashrc
>>> sudo apt-get update
>>> sudo apt-get upgrade
gcc를 설치해야 mysqlclient를 설치할 때 오류가 발생하지 않는다. gcc란?
>>> sudo apt-get install gcc
>>> sudo apt-get install libmysqlcliend-dev
>>> conda create -n 가상환경명 python=3.7
생성 한 가상환경으로 이동해준다.
>>> conda activate 가상환경명
>>> git clone 깃허브주소
>>> cd 폴더명
내려받은 폴더로 이동한다.
내 프로젝트에 사용된 패키지를 한 번에 설치하기
>>> pip install -r requirements.txt
아래의 명령어로 requirements.txt있는 목록이 설치되었는지 확인할 수 있다.
>>> pip freeze
EC2서버의 공인아이피(퍼블릭아이피)를 확인하여 settings.py에 추가해준다.
그리고 timezone을 Asia/Seoul로 수정해준다.
manage.py가 있는 위치에 mysettings.py를 생성해준다. 내용은 내 프로젝트에서 했던 파일을 가져오는데 몇가지를 변경 해주어야 한다.
>>> python manage.py runserver 0:8000
포스트맨으로 엔드포인트를 호출해본다. 아이피주소는 공인아이피로 입력한다.
>>> http://공인아이피주소/엔드포인트
정상적으로 리턴 값을 받으면 EC2서버를 통해 정상적으로 배포가 된 것이다.
pip install gunicorn
django에서 사용하는 python manage.py runserver
명령어는 단일스레드로 동작하여 개발 및 테스트로는 적당하지만 리퀘스트가 많을 수 있는 운영환경에서는 적합하지 않으므로
멀티스레드를 지원하는 웹애플리케이션 서버프로그램인 gunicorn을 설치하여 배포한다.
gunicorn은 웹애플리케이션서버가 우리가 사용한 django웹애플리케이션을 돌려주는 방식이다.
ssh세션이 끊어져도 서버를 동작시키기 위해서 nohup이라는 툴을 사용해 백그라운드로 동작되도록 한다.
백그라운드 동작 없이 서버 실행하는 명령어
>>> gunicorn --bind=0.0.0.0:8000 이름.wsgi
백그라운드에서 동작할 수 있게 실행하는 명령어
wsgi - django의 웹애플리케이션을 지정 - django프로젝트폴더에 있는 wsgi 파일임
& - 백그라운드에서 동작하는 명령
>>> nohup gunicorn --bind=0.0.0.0:8000 이름.wsgi &
잘 실행이 됬는지는 아래의 명령어로 확인한다.
>>> ps -ef | grep python
포스트맨으로 정상 호출 되는지 확인해 볼 수 있다.
서버가 동작할 필요가 없을 때에는 종료 명령어 kill [PID번호]
를 입력하여 종료시킨다. ps명령어를 입력하여 확인해보면 서버가 꺼진 것을 볼 수 있다.
kill 8292