본문 바로가기
Project/preprint-cloud-service

[preprint-cloud-service] 배포 성공

by 지식을 쌓는 개구리 2023. 11. 23.

 

preprint-cloud 프로젝트를 성공적으로 잘 개발했고 aws로 배포까지 완료했다.

간략하게 배포과정을 소개하겠다.

 

1. 프로젝트 구조 분리 및 배포 준비

프로젝트 구조를 배포와 추가 유지보수를 위하여 각 settings, 민감한 파일들을 모두 분리했다.

=> local, develop, product.py로 settings.py를 분리했고 requirements.txt도 마찬가지로 분리했다.

=> settings에는 따로 접근할 수 있도록 인스턴스 ip를 집어넣어줬음

 

2. ec2 생성 및 인스턴스 연결

aws ec2 t2.micro로 빌렸고 볼륨은 30g로 설정했다.

파일 관리 솔루션이기도 하고... 사실 EBS가 아닌 S3를 이용해야하는데 설정하고 공부할 그럴 시간이 없어

무식하고 간단한 방법을 사용했다.

 

3. 우분투 설정

sudo apt-get update ⇒ 기본 설정 다운로드

sudo apt-get upgrade

 

sudo passwd root => 비밀번호 설정

 

sudo locale-gen ko_KR.UTF-8

sudo dpkg-reconfigure tzdata

아시아 > 엔터 > 서울 > 엔터

 

=> 나중에 장고 프로젝트 배포 게시글을 작성할 예정이다. 일단 간략하게 생략

 

3. 엔진x 설치

인스턴스 퍼플릭 ip를 인바운드 규칙 추가해주고

인진 x도 설치했다.

(다양한 패지키들도 설치)

 

4. 깃허브 코드 다운 + 파이썬 설치

프로젝트 올려둔 깃허브 코드도 인스턴스에 다운받고 파이썬 설치도 완료했다.

이전에 settings.py 에 민감한 정보들, 그리고 데이터베이스 정보, 시크릿키는 gitignore로

올리지 않았기에 인스턴스내에 파일을 따로 생성하여 관련 정보를 추가해두었다.

 

5. g유니콘 설치 및 엔진엑스 설정

이후 지유니콘을 설치해주고 엔직엑스에 static, media 경로, ip 설정을 작성해주고

로그매니저를 추가했다. 전송 파일 최대 크기는 100m로 제한함

 

sudo systemctl restart nginx

=> 정상적으로 잘 접속된다.

 

일단 배포하면서 애를 먹기도 했고 따로 문서 정리를 해두었기 때문에

이후 시간이 될 때 장고 프로젝트 배포와 관련한 포스팅을 진행할 예정이다..