재배포 프로세스는 다음과 같다.
1) 기존 서버를 중지
2) aws-v1 폴더 삭제
3) git clone
4) gradlew 실행 권한주기
5) 빌드하기
6) jar 실행
7) cron 등록
이것을 하나하나 손으로 하는 것은 매우 번거로우니 하나의 배포 스크립트를 만들어 일괄적으로 실행되게 한다.
pgrep -f .jar
kill -9 PID
rm -r aws-v1
이렇게 삭제하면 폴더가 삭제될때 y/n을 물어보는데 스크립트를 실행하는 경우에는 이것 때문에 작동이 안된다. 따라서 아래와 같이 강제적으로 삭제하는 명령어를 사용한다.
rm -rf aws-v1
git clone https://github.com/thekim123/aws-v1.git
chmod u+x gradlew
./gradlew build
nohup java -jar 경로 1>log.out 2>err.out &
이 부분은 이번에는 하지 않아도 된다. 이유는 이전에 했던 cron이 남아있기 때문이다. 만약 재배포를 할 때마다 새로운 ec2를 사용해야 한다면 cron을 등록 해야할 것이다.
지금의 재배포 프로세스는 배포중에 서버가 멈춘다는 문제가 있다. 이 부분은 어떻게 해결해야 할까?