
프로젝트 배포를 성공하고 회의를 통해 개발 플로우를 다시 확립했는데, 이에 맞게 배포 방법을 정리해 보고자 한다.
우리의 Git 컨벤션은
Main 브랜치 - 배포 코드
Develop 브랜치 - 코드 통합
feat: 새로운 기능의 추가
fix: 버그 수정
docs: 문서 수정
style: 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)
refactor: 코드 리펙토링
chore: 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)
그러면 이제 이슈를 골라서 개발을 끝내면 이제 "feat[#이슈번호] : Commit 내용" 을 적어서 커밋하고 push 해주면 된다.
우리의 아키텍처는 프론트엔드-firebase, 백엔드-EC2, Database-RDS 이다. 프론트엔드와 백엔드 이제 main 브랜치에 새로운 코드가 추가되었다면 배포해야 한다.
main 브랜치에서 코드를 최신화 해준 뒤
npm run build
firebase deploy
새롭게 빌드하고 firebase에서 배포 하면 끝!
메모리를 아끼기 위해서 배포 방식을 로컬에서 jar파일로 압축한 뒤에 EC2로 보내고 EC2에서 실행시키는 방식을 도입했다.
./mvnw clean package -DskipTests
scp -i /c/Users/user/Desktop/blc-backend-key/blc-backend-key.pem target/blc_backend-0.0.1-SNAPSHOT.jar ec2-user@13.209.49.84:~/blc-backend.jar

100 퍼 될때까지!
ps -ef | grep java
ps -ef : 실행 중인 프로세스 출력
grep java : 자바만

blc-backend.jar 로 되어있는 PID를 확인해보면 88267 이다!
kill -9 88267
88267 강제 (-9) 종료 (kill)
nohup java -Xms256m -Xmx600m \
-Dspring.profiles.active=prod \
-jar blc-backend.jar > app.log 2>&1 &
-Dspring.profiles.active=prod (prod에 있는 설정 받아오기 (application-prod.properties)
백 그라운드에서 실행하기
tail -f app.log
tail -50 (바닦에 있는 50줄)
tail -f (실시간으로 계속)
백엔드 로그 확인하기!

로그 까지 확인하면서 배포를 마무리 할 수 있다!
이제 새로운 추가 기능을 개발해서 테스트를 통해 main 브랜치에 올리고 나면 이와 같은 방식으로 배포해주시면 되겠습니다!!
배포까지 완벽한 남자