패스트캠퍼스 캐시백 챌린지 24일차
EC2에 벡엔드 개발한 Django Project를 Deploy해보는 내용의 클립을 복습하고 다른 클립을 수강하는식으로 챌린지를 진행하였다. RDS와 EC2는 매번 사용하면 바로바로 닫아주기에 생성해주어 설정 반영해주어 진행해주었다. 강사분은 github desktop을 사용하시면서 문제생기면 그때마다 다 지우고 새로 clone하는 식으로 진행하셨고 개인적으로는 cmder 쓰면서 수정할 내용 있으면 push 해주고 ubuntu에서 pull 해주는 방식으로 진행하였다. 기존에 패키지 명령어들이나 requirements 사용하는게 많이 익숙하진 않았는데 이번에 좀 익힌 것 같다.. 다음 포스팅은 로드밸런싱에 관련된 포스팅을 할 예정이다.
EC2에 Django Project 배포하기
EC2를 하나 생성해주고, putty로 ssh 접속을해준다. ssh 접속 후 패키지를 다운받는다.
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install python3
sudo apt-get install python3-pip
한편 vscode에서 필요한 패키지들을 requirements.txt로 담으려면 다음과 같은 command를 사용해야한다.
pip freeze >> requirements.txt
그리고 settings.py의 ALLOWED_HOST AWS EC2의 퍼블릭 IPv4 DNS 주소를 입력해준다.
이제 vscode에 있는 내용들을 github에 push해주고, 그것을 ubuntu에서 pull 하려고한다.(최초에는 clone해주면 된다.)
그 작업을 위해서는Github Project의 Settings > Deploy Kes에 등록을 해주어야한다.
putty에서 deploy key값을 생성해준다.
ssh-keygen -t rsa
해당 파일 위치로 가서 해당 key값을 확인하고 github project의 deploy keys 값으로 생성해준다.
cd .ssh
cat id_rsa.pub
아래의 command는 github의 계정에 등록을 해주어야한다.
ssh-keygen -t rsa -C ["github가입주소"]
ls -al ~/.ssh
cat ~/.ssh/id_rsa.pub
Key값을 복사 해준 후 github 프로필 > Settings > SSH and GPG Keys에서 key를 추가해준다.
필자의 경우에는 profile에 등록할때는 “Key is already in use” 라면서 메세지가 나오는데, git clone해서 할때는 문제가 생기진않았다.(구글링 해보니 여러 프로젝트에서 사용하려면 프로필에 등록하는 걸 권장하긴한다.)
그 다음으로 가상환경을 만들어준다.
sudo apt-get install virtualenv
virtualenv -p python myenv
그 후 mysqlclient와 requirements.txt의 module을 다운받는다.
sudo apt-get install libmysqlclient-dev
pip3 install -r requirements.txt
이제 AWS상의 보안그룹에서 인바운드 규칙에서 TCP - 8000포트로 열어주는 설정을 한뒤에, manage.py로 서버구동을 해본다.
python3 manage.py runserver 0.0.0.0:8000
서버가 돌아가는 것을 putty를 꺼주어도 돌아가도록 background로 옮겨준다.
bg
(명령어 맨뒤에 &을 붙였으면 background로 실행시키게된다. 옮길 작업이 없다고나오면 & 붙여서 다시 runserver 해보고 disown 명령어 사용해주면된다.)
disown -h
이제 putty를 꺼도 server가 계속 돌아가게 된다!
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.