Open vegeshop opened 3 years ago
정말 감사합니다 ㅎ_ㅎ
현재 uwsgi를 service로 등록해 실행하거나, -i 옵션으로 ini 설정파일을 불러와 실행할때, 서비스가 상태는 문제없지만 접속시 500 에러가 뜨는 문제가 있습니다. 따라서 uwsgi만 다음 커맨드로 대체해 배포 중입니다.
sudo uwsgi --http :8000 -H /home/ubuntu/env --wsgi-file /home/ubuntu/swpp2020-team7/backend/naengpa/naengpa/wsgi/deploy.py --daemonize ~/logs/uwsgi/dev.log
http: 8000 port 사용 -H (--home): 가상환경 디렉토리 설정(uwsgi와 같은 버젼의 pip3로 설정된 가상환경이 아니면 환경은 인식해도 모듈을 못불러오는 이슈가 있음) --wsgi-file : 배포용 장고 wsgi.py 세팅파일 지정 --daemonize : background에서 실행, 로그파일에 로그 기록
배포 설정이 복잡해 전체 과정을 재현할 수 있게 정리해둡니다.
AWS, DNS 셋업
AWS EC2 : 보안그룹 TCP 22, 80, 443 port 전체 개방, elastic ip 발급 및 연결 AWS RDS: 퍼블릭 액세스 허용, 보안그룹 TCP 5432 port를 ec2 ip에만 개방 DNS: ec2 elastic ip를 가비아에서 구입한 주소에 등록. _acme-challenge 호스트로 ssl 인증서 DNS TXT record 등록. @ 호스트 등록.
EC2 셋업
python, virtualenv, pip
npm, node, yarn
redis
gdal for postgis, java for konlpy
postgresql
application
frontend build
ssl
nginx
uwsgi (참고링크)
deploy.sh
travis ci 자동 배포 설정
https://dev.to/gortron/deploying-to-aws-with-travis-via-ssh-315a 위 글 적용할때, ssh 키 설정 관련 파트에서, github token 발급받아 travis login하고, ec2에서 password login 관련 설정 두개 값 바꿔 ssh 키 전달하고, /tmp/deploy_rsa로 된 경로 적절히 바꿔줘야합니다.