작업 내용
GAMSS 백엔드를 가비아 클라우드 2대(dev · prod) 로 배포하고 CD 파이프라인을 구축한다.
서버는 dev·prod로 나누되, 각 서버 안에서 app·db 컨테이너를 Docker로 함께 띄운다.
dev 서버 : [dev-app 컨테이너] ─ 도커 네트워크 ─ [dev-db(MySQL) 컨테이너]
prod 서버: [prod-app 컨테이너] ─ 도커 네트워크 ─ [prod-db(MySQL) 컨테이너]
- 예산: 가비아 크레딧 300만/년(월 약 25만) 이내에서 운영, 크레딧 소진 후 추가지출 없이 축소 가능하게 구성
- 이미지 레지스트리: ghcr.io 권장 (확정 필요)
- DB: 서버 내 자체 MySQL(도커) (확정 필요)
작업이 필요한 이유
- 지금까지 로컬·테스트(Testcontainers)만 있고 실제 dev/prod 배포 환경이 없다.
- dev↔prod는 서버를 분리해 prod 안정성을 확보하고, app↔db는 같은 서버 컨테이너로 두어 비용·운영을 최적화한다(현재 트래픽 규모에 물리 4대 분리는 과함).
✅ 완료 조건 (DoD)
1. 이미지 빌드
2. 서버 프로비저닝 (수동 작업 + 문서화)
3. 환경별 설정 · 시크릿
4. DB
5. CD 파이프라인
6. 리버스 프록시 · HTTPS · 도메인
검증
우선순위
P1 - 높음
연관 이슈
관련 #5
작업 내용
GAMSS 백엔드를 가비아 클라우드 2대(dev · prod) 로 배포하고 CD 파이프라인을 구축한다.
서버는 dev·prod로 나누되, 각 서버 안에서 app·db 컨테이너를 Docker로 함께 띄운다.
작업이 필요한 이유
✅ 완료 조건 (DoD)
1. 이미지 빌드
Dockerfile작성 (Gradle 빌드 → JRE 런타임 이미지)2. 서버 프로비저닝 (수동 작업 + 문서화)
3. 환경별 설정 · 시크릿
application-dev.yml·application-prod.yml복구 (datasource · jwt · oauth 를 env 주입)DB_URL·DB_USERNAME·DB_PASSWORD·JWT_SECRET·GOOGLE_CLIENT_IDS·APPLE_CLIENT_IDS· 서버 SSH 접속정보)4. DB
5. CD 파이프라인
/actuator/health) 추가dev브랜치 머지 → dev 서버 자동 배포 (이미지 pull + docker compose up)prod릴리즈(dev→prod) → prod 서버 배포6. 리버스 프록시 · HTTPS · 도메인
검증
/actuator/healthUP/swagger-ui.html) 접속 확인우선순위
P1 - 높음
연관 이슈
관련 #5