canary_before 브랜치

카나리 무중단 배포 전략 도입 전 환경을 구축합니다. cd-canary.yml 파일을 통해 JAR 파일을 업로드하고, 이전 프로세스를 죽이고 JAR 파일을 8081포트, 8082포트에서 실행합니다. 이 과정에서 다운 타임이 발생하게 됩니다.

canary_after 브랜치

카나리 전략 도입하여 무중단 배포를 실행합니다. cd-canary.yml 파일을 통해 deploy.sh 파일을 실행합니다.

deploy.sh 파일

  1. 현재 실행 중인 Spring Boot 애플리케이션의 포트 확인
  2. 기존 JAR 파일 백업
  3. 새 애플리케이션 배포
  4. 헬스 체크
  5. Nginx 설정 업데이트 - 트래픽 30%로 라우팅
  6. 점진적 트래픽 증가 - 50%, 70%로 업데이트
  7. 최종 트래픽 100%로 전환
  8. 구버전 프로세스 종료 및 JAR 파일 백업
  9. 카나리 배포 완료

8.1. 환경 셋팅

먼저 Termius 를 이용하여 EC2 서버에 SSH 원격 접속합니다.

8.1.1. Nginx 설정파일 수정

아래 명령어를 입력하여 Nginx 설정 파일을 수정합니다.

sudo nano /etc/nginx/sites-available/default