EC2 RDS 연동해서 gunicorn으로 배포하기

jacoblee19·2021년 1월 20일
2

DevOps

목록 보기
4/4
post-thumbnail

> EC2 & RDS 연동

  1. 먼저 pem 파일이 있는 곳으로 이동한다.
    그 후 아래 명령어를 이용해서 EC2 서버에 접속한다.
    ssh -i jacobjuhyunglee ubuntu@3.34.4.192

  2. ubuntu 환경이므로 Linux 미니콘다를 깔아주자.

  3. 링크를 복사해서 "wget 링크" 명령어로 미니콘다를 깔아준다.

  4. 실행권한을 줘서 실행할 수 있도록 아래 명령어를 입력해주자.

chmod +x Miniconda3-latest-Linux-x86_64.sh

<아래 명령어로 미니콘다를 설치하자>
ubuntu@ip-172-31-39-243:~$ ls
Miniconda3-latest-Linux-x86_64.sh
ubuntu@ip-172-31-39-243:~$ ./Miniconda3-latest-Linux-x86_64.sh
  1. source .bashrc 를 실행해서 로컬 환경과 마찬가지로 설정해준다.

  2. sudo apt-get 명령어로 패키지 업데이트와 업그레이드 실행시켜 준다.

sudo apt-get update
sudo apt-get upgrade 
  1. gcc를 설치해주어야 mysqlclient 설치시에 에러가 나지 않으므로 gcc를 설치한다.
sudo apt-get install gcc
sudo apt-get install libmysqlclient-dev
  1. 콘다 가상환경을 설치해주자.

    원하는 가상환경 이름으로 설치해준다.
    conda create-n "project_name" python=3.9

    그 다음 가상환경을 활성화 한다.
    `conda activate "project_name"a

  2. git clone으로 repository를 받아준다
    git clone "repository_name"

  3. repository의 있는 프로젝트를 실행하기 위해 requirements.txt를 깔아준다.
    pip install -r requirements.txt

  4. settings.py를 먼저 수정해주자.
    ALLOWED_HOSTS 부분을 아래처럼 수정해주자.
    EC2 퍼블릭 IP주소를 사용하면 된다.

  5. vi my_settings.py를 만들어주고
    DATABASES NAME을 적어주고 HOST를 RDS 엔드포인트로 지정해준다.

  6. ./mangepy runserver 0:8000
    위 명령어로 실행하면 AWS 서에 잘 연결이 된 것이다!

  7. 멀티 쓰레드를 지원하는 gunicorn을 설치하자.

    gunicorn은 웹 어플리케이션 서버가 있는 상태에서 장고 웹 어플리케이션을 돌려준다.

    pip install gunicorn

  8. SSH 연결이 끊어져도 서버를 동작시킬 수 있는 nohup을 사용해서 gunicorn을 백그라운드로 돌려주자.

    gunicorn --bind=0.0.0.0:8000 project.wsgi
    nohup gunicorn --bind=0.0.0.0:8000 project.wsgi&

    wsgi는 장고의 웹 어플리케이션을 지정해주는 역할이다.
    &은 백그라운드로 동작하라는 명령어.

    ps -ef | grep python
    ps 명령을 사용하면 잘 작동이 되었는지 확인할 수 있다.

  9. 위럼 잘 작동됨을 확인할 수 있다.

서버를 죽이고 싶다면 kill "pid" 해주면 아래처럼 서버가 죽게된다.

profile
Back-end Developer 🙇‍♂️ 💻 🙆‍♂️

2개의 댓글

comment-user-thumbnail
2021년 1월 29일

IP 주소 가려주세용

1개의 답글