We.TIL 31 : EC2 RDS연동 Gunicorn 배포

김기욱·2020년 9월 5일
0

We.TIL

목록 보기
50/69

Gunicorn이란?

처음엔 뭣도 모르고 구니콘 구니콘 했는데, G-Unicorn이였다...
지유니콘이란 Green Unicorn의 약자로 UNIX 용 Python WSGI HTTP 서버다. 프리포크 방식의 작업자 모델이다. Gunicorn 서버는 다양한 웹 프레임 워크와 광범위하게 호환되며 간단하게 구현되고 서버 리소스가 가볍고 상당히 빠르다.
(Prefork 방식 : 한 자식프로세스당 하나의 쓰레드를 사용하는 방법 기본 사용 메모리가 worker보다 높으며 프로세스 간 메모리를 공유하지 않는 독립 형태이므로 안정적임.)

Gunicorn을 이용해 24시간 돌아가는 서버만들기

백엔드로서 프로젝트를 진행하며 프론트엔드를 위해 서버를 지속적으로 열어놔야하는 수고로움이 있다. Gunicorn과 AWS를 활용해서 간단하게 24시간 돌아가는 서버를 만들 수 있다.
(다음은 AWS, Django를 활용하는 예시다)

[선행조건]

  1. Amazone AWS서비스에 가입을 해야한다.(필수)
  2. EC2 인스턴스를 만들어놔야한다.(필수)
  3. 아마존 RDS를 만들어놔야한다.(필수)
  4. SSH(시큐어셸)에서 (우분투)용 미니콘다를 설치해야한다(권장)

[미니콘다 설치법]

  1. https://docs.conda.io/en/latest/miniconda.html 미니콘다설치페이지
  2. 최신버전 파이썬의 우분투용 미니콘다의 링크 주소를 복사한다.
  3. wget 명령어로 '미니콘다 설치파일'을 설치한다.
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  4. 실행권한부여 chmod +x Miniconda3-latest-Linux-x86_64.sh
  5. '미니콘다 설치파일' 실행
    ./Miniconda3-latest-Linux-x86_64.sh
  6. Yes난타하면 설치가 완료된다.
  7. 미니콘다 실행
    source. bashrc
  8. sudo apt-get updatesudo apt-get upgrade명령어를 통해 패키지 업데이트 및 업그레이드를 실행시켜준다.

[프로세스]

1) SSH 실행 : aws_pem파일이 있는 디렉토리에서 다음과 같이 EC2 인스턴스 주소에 맞는 ssh 실행 명령어를 실행시킨다.
(ssh -i KeywookKim.pem ubuntu@3.34.178.191)

2) gcc 설치 : sudo apt-get install gcc

3) mysql client 설치 : `sudo apt-get install libmysqlcilent-dev``

4) git clone을 통해 ProjectRepository를 복사

5) requirement 목록에 있는 모든 파일을 한번에 설치 : pip install -r requirements.txt

6) AWS -> EC2인스턴스에서 public IP확인 :

상단의 화면에서 IPv4퍼블릭 IP라 부르는 항목에 쓰여져있는 아이피주소가 pulbic IP다.

7) RDS엔드포인트를 확인 :

my sql -u root -h '엔드포인트주소' -p 로 RDS를 로드를해보며 RDS가 정상적으로 구동되는지 확인

8) pip install gunicorn으로 지유니콘 설치

9) 프로젝트 디렉토리에서 wsgi파일을 찾아서 해당 wsgi파일이 있는 디렉토리명을 지유니콘에 기입한다.(처음 django startproject할 때 이름이다) 이후 다음과 같은 명령어로 실행하면 SSH세션이 끊어져도 랩탑을 꺼도 24시간 돌아가는 서버를 구축할 수 있다.
nohup gunicorn --bind=0.0.0.0:8000 devx.wsgi&

10) ps -ef | grep python 을 통해 정상적으로 지유니콘 실행상태와 PID넘버!를 확인해 볼 수 있다.(띄어쓰기 잘 맞춰야 실행된다)

11) 정상적으로 실행된 모습이다.

PID 넘버는 5571과 24746이다. (wsgi가 어디 라인에서 실행되는지 잘 살펴보자)
지유니콘을 종료하고 싶다면 명령어 kill 5571 kill 24746을 써주면 종료가 된다. (Kill 뒤에 PID 넘버를 입력하면 된다.)

profile
어려운 것은 없다, 다만 아직 익숙치않을뿐이다.

0개의 댓글