$ chmod 400 key이름.pem
$ ssh -i key이름.pem ubuntu@ip주소
$ wget https://repo.anaconda.com/miniconda/Miniconda-latest_Linux-x86_64.sh
chmod +x Miniconda-latest-Linux-x86.sh #미니콘다 실행권한 부여
$ ./Miniconda-latest-Linux-x86_64.sh # 미니콘다 설치파일 실행
# yes 눌러주기
source .bashrc
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc
sudo apt-get install libmysqlclient-dev
conda create -n wemowa python=3.8
conda activate wemowa
git clone <git 레파지토리 주소>
cat requirment.txt
pip install requirements.txt
pip freeze
를 통해 확인
settings.py 에 가서 allowed host
ec2의 서버의 퍼블릭 아이피로 수정
my_settings.py 생성후 내 로컬에 있는 my_settings.py를 복사
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wemowa', # aws rds에 올렸던 데이터베이스 이름
'USER': 'root',
'PASSWORD': '', # 비밀번호
'HOST': '', # rds의 엔드포인트 주소
'PORT': '3306',
}
}
SECRET_KEY = {
'SECRET_KEY':'' # 숨기기,
}
python manage.p runserver 0:8000
장고에서 manage runserver 명령은 단일 스레드로 동작하여 개발 및 테스트 환경에서는 적절하지만 request가 많을 수 있는 운영 환경에서는 적절하지 않다. 그러므로 멀티스레드를 지원하는 웹 애플리케이션 서버 프로그램인 gunicorn
을 설치하여 배포하려 한다.
gunicorn은 python wsgi http server이다. unix에서 사용하기 위해 만들어졌다.
즉, manage.py runserver를 대신하여 실행할 wsgi 서버이다. gunicorn은 상대적으로 빠르고 가볍고 사용이 용이하다.
pip install gunicorn
nohup
: 로그아웃 하여 터미널을 빠져나가도 실행중인 프로그램이 종료되지 않고 계속 수행될수 있게 하는 명령
명령어 &
:여기서 '&'는 백그라운드로 실행하라는 뜻이다.
그런데, 이 방법은 실행한 사용자가 로그아웃하면 프로그램도 함께 종료된다.
이럴때는 nohup 이란 명령어를 사용하면 된다.
nohup gunicorn --bind=0.0.0.0:8000 app_name.wsgi &
실행을 시키고 제대로 실행이 됐는지 확인 하는 방법은 아래와 같다.
ps -ef | grep python
root 769 1 0 Jun04 ? 00:00:01 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 832 1 0 Jun04 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
ubuntu 7635 1 0 05:07 ? 00:00:00 /home/ubuntu/miniconda3/envs/wemowa/bin/python /home/ubuntu/miniconda3/envs/wemowa/bin/gunicorn --bind=0.0.0.0:8000 wemowa_main.wsgi
ubuntu 7652 7635 0 05:12 ? 00:00:00 /home/ubuntu/miniconda3/envs/wemowa/bin/python /home/ubuntu/miniconda3/envs/wemowa/bin/gunicorn --bind=0.0.0.0:8000 wemowa_main.wsgi
ubuntu 7770 7736 0 05:34 pts/0 00:00:00 grep --color=auto python
postman에서 제대로 돌아가는지 다시한번 확인!
서버를 종료 시킬 때는
kill pid번호 # 명령으로 해당 프로세스 종료
좋은 글 감사합니다 잘 보고 갑니다~