클라우드 아키텍처 1 빅뱅배포 - 100-hours-a-week/16-Hot6-wiki GitHub Wiki

☁️ On The Top Cloud – 초기 Big Bang 배포 아키텍처

아키텍처 설명

이 인프라는 **Google Cloud Platform(GCP)**과 AWS를 조합하여 구성된 초기 환경이며, 모든 변경사항이 한 번에 배포되는 Big Bang 방식으로 운영되고 있습니다.

주요 구성요소:

영역 설명
Frontend React 앱, GCP VM(Nginx)에서 서빙
Backend Spring 기반 API 서버
AI Server FastAPI 또는 Python 기반 모델 처리
DB GCP VM 내 MySQL (Private Subnet)
AWS S3 정적 파일 업로드용
Route 53 도메인 관리 (예: dev.onthe-top.com)
GitHub 코드 저장소 (FE/BE 공통)
Nginx GCP VM에서 Reverse Proxy 역할 수행

배포 프로세스 (Big Bang 방식)

다음은 코드 변경에서 배포까지의 흐름입니다:

개발자 → GitHub → 빌드 → 클라우드 엔지니어 수동 배포 → GCP 서버에 일괄 적용

프로세스 상세:

  1. 개발자가 프론트엔드/백엔드 코드를 GitHub에 Push

  2. Cloud Engineer가 코드를 Pull, 수동으로 Build (React build, JAR 등)

  3. 모든 구성요소를 한 번에 배포

    • FE 정적 파일 → GCP VM (Nginx)
    • BE → Spring Boot JAR 실행
    • AI → Python FastAPI 서버 실행
  4. 사용자는 AWS Route53을 통해 dev.onthe-top.com으로 접근

3️⃣ Big Bang 배포란?

Big Bang 배포는 모든 코드 변경사항을 한 번에 배포하고, 전체 시스템을 한 번에 교체하는 방식입니다. 이 방식은 다음과 같은 특징을 가집니다.

특징 설명
💣 원자적 배포 한 번의 배포로 모든 기능 적용
❗ 롤백 어려움 문제 발생 시 전체 시스템에 영향
🤹 수동 운영 엔지니어가 수동으로 빌드/배포
📋 단순 구조 CI/CD 도구 없이도 운영 가능

장점

  • 구조가 단순하고 빠르게 시작 가능
  • 초기 소규모 프로젝트에 적합
  • 엔지니어가 전 과정을 제어할 수 있어 디버깅에 용이

한계

  • 배포 실패 시 전체 서비스 중단 위험
  • 서비스 무중단 배포 불가
  • CI/CD 자동화 부재로 배포마다 엔지니어 리소스 필요
  • 스케일 아웃/이중화 구성 어려움
  • 모놀리식 구조에서 서비스 분리 어려움

향후 개선 방향

현재 아키텍처는 "CI" 및 "CD" 단계로 전환되기 위한 출발점입니다. 다음과 같은 개선이 가능하며, 이는 2~4단계로 이어집니다:

개선 항목 설명
CI 도입 GitHub Actions 또는 Jenkins를 통해 Build 자동화
CD 도입 배포 자동화 (예: scp, S3 업로드, SSH 배포 스크립트)
Docker화 컨테이너로 분리해 관리 편의성 향상
Blue-Green / Rolling 배포 서비스 무중단 배포 가능
EKS 전환 확장성과 가용성 극대화

요약

  • 이 구조는 Big Bang 배포 기반의 초기 모놀리식 서비스 배포 구조입니다.
  • 전체 서버를 한 번에 업데이트하며, 수동 프로세스와 단일 서버 운영이 특징입니다.
  • **향후 Docker, CI/CD, Kubernetes(EKS)**로의 단계적 전환이 예정되어 있으며, 그 전환을 위한 **명확한 기준선(Starting Point)**이 됩니다.