기존 로컬 mysql에 있는 데이터베이스를 AWS RDS mysql로 이동하기 위해서는 mysql데이터 베이스를 파일화 시켜서 옮길 수 있는 mysqldump
라는 명령어를 사용해 보았습니다.
mysqldump -u root(사용자아이디) -p
데이터베이스명
>파일.sql
mysql -h
RDS 엔드포인트
-u root(사용자아이디) -p데이터베이스명
<파일.sql
- 터미널에 ssh 접속
ssh -i 파일명.pem ubuntu@퍼블릭 ip주소- 미니콘다 설치 (ubuntu이기에 linux로 설치!) 기존설치했을때와 동일
- wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
- chmod +x Miniconda3-py39_4.9.2-Linux-x86_64.sh
- source .bashrc source
- 가상환경 생성 후 접속하기
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install gcc
- sudo apt-get install libmysqlclient-dev
- 클론할 사이트 가져오기
git clone https://github.com/wecode-bootcamp-korea/23-1st-ggugit-backend- requirements.txt 설치
- cat requirements.txt
- pip install -r requirements.txt
- pip freeze
- setting.py에
ALLOWED_HOSTS
에퍼블릭ip주소, 퍼블릭ip:8000
추가- my_settings.py 생성, 기존 내용 복사 붙여넣기 후
PASSWORD, HOST:엔드포인트
로 변경- python manage.py runserver 0:8000 동작 후 확인
- postman으로 퍼블릭ip 주소 입력 후 테스트
장고에서 쓰는 manage.py runserver
명령어는 단일스레드로 동작하여 개발 및 테스트로는 적당하지만 request가 많을 수 있는 운영환경에서는 적합하지 않을 수 있어서 멀티스레드를 지원하는 gunicorn
설치하여 배포해보자.
gunicorn 설치 -
pip install gunicorn
안된다면 -sudo apt-get install gunicorn
gunicorn 명령어 (꼭 가상환경에서 사용)
- 백그라운드 사용 x
gunicorn --bind=0.0.0.0:8000 데이터베이스명.wsgi
- 백그라운드 사용 o
nohup gunicorn --bind=0.0.0.0:8000 데이터베이스명.wsgi &
- 사용확인
ps -ef | grep python
- 연결끊기
kill PID