EC2 - RDS 연동 gunicorn 배포

BY Jung·2022년 1월 26일
1
  • 터미널에서 pem 파일이 있는 디렉토리로 이동
    • ssh -i pem파일명.pem ubuntu@ec2 ip주소
  • 개발환경 설정하기(왜냐? 우분투 환경이므로)
    • 우분투-리눅스형 미니콘다 설치 : wget 링크주소
    • 실행권한 주기 : chmod +x Miniconda3-latest-Linux-x86_64.sh(파일명은 ls로 확인)
    • 미니콘다 실행 : ./Miniconda3-latest-Linux-x86_64.sh
    • 모두 다 yes
    • bash 쉘 스크립트 설정 : source .bashrc
    • 패키지 업그레이드 : sudo apt-get update, sudo apt-get upgrade
    • gcc 설치(MySQL 설치 간 오류 예방) : sudo apt-get install gcc
    • MySQL 설치 : sudo apt-get install libmysqlclient-dev
  • 가상환경 생성
    • conda create -n project python=3.7
    • conda activate project
    • git clone 깃헙 repository 주소
    • requirement.txt 확인 : cat requirements.txt
    • 필수 프로그램 일괄 설치 : pip install -r requirements.txt
  • 퍼블릭 IP 확인하기
    • AWS EC2에 들어가 IPv4 퍼블릭 IP 확인
    • settings.py
      • ALLOWED_HOSTS 에 퍼블릭 IP 추가('*', '퍼블릭 IP', '퍼블릭 IP:8000')
  • my_settings.py 생성 : vi my settings.py
    • DATABASES, SECRET_KEY 설정
    • DATABASES 내의 'HOST'는 RDS 엔드포인트, 'NAME', 'PASSWORD' 모두 RDS 관련 내용이 들어간다!
  • 퍼블릭 IP를 이용해 서버 동작시키기
    • python maanage.py runserver 0:8000

중요 장고의 manage.py runserver 명령어는 단일 쓰레드로 동작하여 개발및 테스트로는 적당하다.
그러나 request가 많은 운영환경에서는 적합하지 않으므로 멀티 스레드를 지원하는 gunicorn을 사용한다

WAS(Web Application Server) gunicorn

장고의 웹 애플리케이션을 돌려주는 역할

설치하기

  • pip install gunicorn

서버 가동하기

  • nohup gunicorn --bind=0.0.0.0:8000 app이름.wsgi &
    • ssh 세션이 끊어져도 서버를 동작시키기 위해 nohup 커맨드를 사용
  • ps -ef | grep python
    • 서버가 백그라운드에서 동작하고 있는지 확인하는 명령어. pid를 확인 가능하다
  • kill pid
    • EC2에서 계속 동작하고 있는 서버를 종료시키는 명령어
profile
Slow and steady wins the race

0개의 댓글