사용한 인프라 기술 및 서비스 명세 - 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 내부 통신으로 보안 + 비용 최적화 |