Skip to content

Conversation

@jj0526
Copy link

@jj0526 jj0526 commented May 19, 2025

1. 무슨 이유로 코드를 변경했나요?

운영 서버에 무중단 배포(Blue-Green 배포 전략) 를 도입하였습니다.
HTTPS 인증부터 자동 배포 전환까지 전 과정을 자동화했습니다.

운영 서버 무중단 배포를 구현

  • Caddy : nip.io 도메인을 활용하여 HTTPS 인증 자동화, 트래픽 라우팅 (포트 80, 443 → spring-blue 또는 spring-green)
  • GitHub Actions : CI/CD 파이프라인 구성, Health Check 결과에 따라 컨테이너 전환 자동화
  • docker-compose : spring-blue, spring-green 컨테이너를 교차로 구동해 무중단 배포 구현
  • deploy.sh : Blue 또는 Green 중 현재 실행 중인 컨테이너를 판별, 새 컨테이너 기동 및 헬스 체크, 성공 시 Caddy 라우팅 포트를 새 컨테이너로 전환, 이전 컨테이너 중지 및 정리

2. 어떤 위험이나 장애를 발견했나요?

  • EC2의 크레딧 부족으로 인해 SSH 연결은 안 되지만, 서버가 다운되기 전에는 Docker 컨테이너는 정상적으로 구동됨을 확인
  • deploy.sh이 정상적으로 ec2 서버에 복사되지 않는 사항이 있었지만 해결

3. 관련 스크린샷을 첨부해주세요.

image

4. 완료 사항

  • Blue-Green 배포 전략 적용
  • Caddy을 이용한 HTTPS 인증 적용
  • GitHub Actions를 활용한 CI/CD 자동화 구성
  • .env 파일을 통해 Spring 환경 변수 주입
  • dev 환경에 적

5. 추가 사항

closed #83


@jj0526 jj0526 requested review from rootTiket and soyesenna May 19, 2025 18:01
@jj0526 jj0526 self-assigned this May 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant