사용한 인프라 기술 및 서비스 명세 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

1. 과제 설명

  • 사용한 인프라 기술 및 서비스 명세 (Docker, Kubernetes, AWS/GCP 등 클라우드 자원, 혹은 On-premise 환경 설정 등 구체적으로)

2. 사용한 인프라 기술 및 컴퓨팅 자원

a. 클라우드 플랫폼: Google Cloud Platform (GCP)

항목 설명
VPC GCP 내부 프라이빗 네트워크, 모든 인스턴스는 내부 IP로 통신
Managed Instance Group FastAPI 서버 자동 확장을 위한 VM 그룹
Compute Engine 각 서비스(FastAPI, Redis, Nginx, Monitoring 등) 실행
GPU Compute Engine Stable Diffusion 전용 T4 인스턴스 구성
Cloud Storage (GCS) 이미지 저장소

b. VM 사양 및 컨테이너 구성

컴포넌트 사양 설명
FastAPI 서버 (MIG) n2d-standard-4 (4 vCPU, 16 GB RAM) 메인 서버, Redis 포함
Stable Diffusion 서버 2 vCPU, 4 GB RAM, 1 x T4 GPU (≥ 4GB VRAM), 50GB SSD 이미지 스타일 변환 전용
Nginx 서버 e2-standard-2 (2 vCPU, 8 GB RAM) 클라이언트 요청을 FastAPI로 리버스 프록시
Monitoring 서버 e2-micro (1 vCPU, 1 GB) Prometheus + Grafana + AlertManager 실행

c. 컨테이너 환경: Docker 기반

  • 모든 서비스는 Docker 컨테이너로 배포
  • 주요 구성:
    • fastapi
    • redis
    • stable-diffusion-webui
    • node_exporter, redis_exporter
    • prometheus, grafana, alertmanager

d. 오토스케일링 구성

항목
구성 Managed Instance Group (MIG)
기준 CPU 사용률 > 65% (5분 이상)
인스턴스 수 최소 1, 최대 3
배포 Terraform을 통해 정의된 Instance Template을 기반으로 배포

e. 모니터링 및 알림 체계

구성 요소 설명
Prometheus FastAPI, Redis, GPU 서버의 exporter로부터 메트릭 수집
Grafana 성능 대시보드
Alertmanager 알림 조건 기반 Discord 전송
Discord 장애 발생 시 실시간 경보 수신 채널

f. 네트워크 구조 및 라우팅

구성 요소 설명
Nginx L7 reverse proxy, 클라이언트 요청을 FastAPI로 포워딩
GCS 이미지 업로드/조회 사용
Internal IP 통신 GCP VPC 내부 통신으로 보안 + 비용 최적화