클라우드 빅뱅배포결과 - 100-hours-a-week/16-Hot6-wiki GitHub Wiki
아래는 위 문서를 기반으로 한 빅뱅 배포 결과 보고서입니다. 운영 환경에 실제 반영한 배포 결과, 문제점, 개선 제안까지 간결하게 정리했습니다.
📝 Big Bang 배포 결과 보고서
일시: 2025.05.14
배포 대상: FE(React), BE(Spring Boot), AI(FastAPI)
배포 방식: 단일 인스턴스 수작업 Big Bang 배포
1. 배포 개요
-
배포 방식: SSH 수작업 접속 → github에서 코드를 pull 후 각 디렉토리별 배포 스크립트를 실행.
-
운영 환경: GCP VM (t2.small), 단일 인스턴스 운영, vpc peering으로 GPU 서버 분리.
-
배포 대상:
- FE: React + Vite →
npm run build
후/var/www/onthetop
복사 - BE: Spring Boot JAR →
./gradlew build
,nohup java -jar
- AI: FastAPI → Python venv +
uvicorn
실행
- FE: React + Vite →
-
배포 시나리오: FE → BE → AI 순서 배포
2. 배포 과정 요약
항목 | 내용 |
---|---|
코드 Pull | 각 프로젝트 디렉토리에서 git pull origin main 수행 |
환경 구성 | .env 복사, 의존성 설치 (npm install , pip install ) |
빌드 수행 | 프론트: npm run build , 백엔드: ./gradlew build |
실행 방식 | nohup + pkill 로 백그라운드 실행 |
배포 시간 | 약 10~15분 소요 (전체 수작업 포함) |
3. 확인 결과
항목 | 결과 | 비고 |
---|---|---|
서비스 정상 작동 여부 | ✅ | 배포 후 전체 기능 정상 작동 확인 |
API 연결 테스트 | ✅ | FE → BE/API 요청 문제 없음 |
로그 확인 | ✅ | app.log , ai.log 정상 출력 |
포트 충돌 여부 | ✅ | 3000, 8000, 8080 각각 정상 사용 |
외부 접근 테스트 | ✅ | 도메인별 정상 접근 가능 (SSL 포함) |
4. 배포 중 발생 이슈
유형 | 내용 | 조치 |
---|---|---|
메모리 부족 | next build 중 OOM 발생 |
swap 메모리 설정, 메모리 추가 |
수작업 누락 | .env 복사 누락 경험 있음 |
체크리스트 활용으로 이후 방지 |
경로 오류 | 백엔드 JAR 경로 오타 발생 | 배포 스크립트 수정 및 검증 강화 |
일시적 중단 | BE 재시작 시 API 10초 중단 | 구조상 어쩔 수 없는 문제로 확인됨 |
5. 문제점 및 개선 방향
문제 | 설명 | 개선 방안 |
---|---|---|
OOM 이슈 | 빌드시 메모리 부족 → 프로세스 종료 | CI 빌드 분리 (GitHub Actions) |
무중단 불가 | pkill 방식 배포로 사용자 응답 중단 발생 | Blue/Green 배포 구조 전환 고려 |
휴먼 에러 | 수동 경로/설정 오류 발생 가능성 | 자동화 및 체크리스트 강화 |
롤백 불가 | 실패 시 빠른 복구 경로 없음 | 빌드 백업 + 롤백 스크립트 도입 필요 |
이력 추적 불가 | 누가, 언제, 무엇을 배포했는지 추적 어려움 | 배포 로그 기록 자동화 필요 |
6. 향후 전환 계획
단계 | 설명 | 상태 |
---|---|---|
CI 파이프라인 도입 | GitHub Actions에서 사전 빌드 | 🟡 준비 중 |
CD 자동화 | EC2로 결과물 전달 및 실행 자동화 | 🟡 준비 중 |
무중단 배포 도입 | Blue/Green, Load Balancer 활용 | 장기 계획 |
결론
Big Bang 배포는 MVP 초기 단계에서 빠르게 운영 환경을 구성하고, 실제 사용자 피드백을 받을 수 있는 효과적인 전략이었음. 그러나 운영 안정성 및 반복 가능성 측면에서 CI/CD 기반 자동화로의 전환이 필수적임인 것을 확인하였습니다.
다음 단계에서는 빌드/배포 분리 및 GitHub Actions 기반 CI/CD 체계 전환을 목표로 계획을 수립 중입니다.