[AI] 7단계: 서비스 인프라 확장성과 모니터링 설계 - 100-hours-a-week/2-hertz-wiki GitHub Wiki

목차

확장성을 고려한 배포 아키텍처 다이어그램

설계 hertz-아키텍쳐 다이어그램

최종 아키텍처

기능 모델 인프라 서빙 방식
유저 추천 매칭 ko-sbert-nli GCP e2-standard-4 × 1, SSD 50GB, ChromaDB Docker + FastAPI
튜닝 리포트 생성 Qwen2.5-7B NVIDIA L4 32GB, CUDA 12.1 GPU VM
채팅 클린봇 KcELECTRA-small-v2022 GCP e2-standard-4 × 1, SSD 30GB Docker + FastAPI

설계 목표: 서비스 기능별로 독립 확장 가능하도록 구성하여 장애 격리 및 비용 효율성 확보

사용한 인프라 기술 및 서비스 명세

구성 요소 사용 기술 / 서비스 설명
클라우드 플랫폼 Google Cloud Platform (GCP) 전체 인프라 호스팅 및 네트워크 관리
컨테이너 환경 Docker (CPU 전용) CPU 기반 모델 서버 및 API 서버를 컨테이너화하여 수평 확장 가능
모델 서빙 (CPU) FastAPI + Python 추론 코드 (Docker) 경량 모델 (ko-sbert, KcELECTRA 등)을 Docker 컨테이너 내에서 FastAPI 서버로 서빙
모델 서빙 (GPU) FastAPI + Python 추론 코드 (비컨테이너) Qwen 등 고성능 LLM을 GPU VM에서 FastAPI 서버로 서빙, 일시적 실행
기타 연동 Google Search, Spotify, YouTube API MCP 로직 내 외부 정보 검색용 API 연동

모니터링 대상 지표 목록 및 수집/시각화 방법

카테고리 지표 항목 수집 도구 시각화/알림 도구
API 응답 성능 평균 응답 시간, p95/p99 Latency, RPS FastAPI + Prometheus client Grafana
모델 추론 성능 추론 처리 시간, 요청당 Token 수, 실패율 Custom Prometheus metric Grafana
시스템 자원 CPU/RAM 사용률, 디스크 IOPS, 네트워크 I/O Node Exporter (Linux agent) Grafana
GPU 자원 (Qwen) GPU 메모리 사용량, GPU Utilization NVIDIA DCGM Exporter Grafana
ChromaDB 상태 벡터 검색 Latency, Index Size, 쿼리 수 Prometheus Exporter (custom) Grafana
에러/예외 로그 4xx/5xx 발생 수, StackTrace, Timeout 로그 Stackdriver / Sentry Grafana Alerts / Sentry
서비스 헬스체크 서버 상태, 헬스체크 실패 수 GCP Load Balancer / Uptime Cloud Monitoring Alerts
Queue 상태 (선택) 리포트 요청 큐 길이, 처리 시간 Celery Exporter + Redis Grafana

→ 기능별 Grafana 대시보드를 구성하여 실시간 모니터링 + 경고 알림 가능

간이 부하 테스트/시뮬레이션 결과

📍 시뮬레이션 환경: 1분간 RPS 증가 부하 테스트

기능 동시 요청 수 평균 응답 시간 자원 사용률 요약 결과
유저 추천 매칭 30 RPS 200~350ms CPU 70% Chroma 쿼리 부하 주의
튜닝 리포트 생성 직렬 처리(Batch size 1) 20.0s GPU 65% 큐 처리 필수
채팅 클린봇 50 RPS 120~250ms CPU 65% 안정적 처리

서비스의 향후 성장 및 운영에 대한 기여 전망

현재 인프라 설계는 초기 단계에 최적화된 자원 구성미래 성장을 고려한 확장성을 균형 있게 반영하고 있습니다.

  • CPU 기반 모델 서버는 비용 효율성과 수평 확장을 모두 충족할 수 있도록 Docker 기반 컨테이너로 운영되며,
    서버 수요 증가 시 복제 및 배포만으로도 신속한 대응이 가능합니다.

  • GPU 모델 서버는 상대적으로 높은 비용을 고려해 컨테이너화하지 않고,
    사용량이 적은 시간대에 일시적으로 가동되도록 하여,
    고성능 추론 기능은 유지하면서도 불필요한 비용 소모를 방지하는 구조로 설계되었습니다.

  • 로드밸런서와 오토스케일링 기능은 현재 도입하지 않았지만,
    향후 요청량 증가 시 쉽게 확장할 수 있도록 네트워크 구성과 배포 환경을 유연하게 사전 설계해두었습니다.

결론

이러한 구조는 서비스 초기의 낮은 트래픽과 예측 가능한 처리량에 최적화되어 있으며,
향후 사용자 수와 요청량이 증가하더라도 서비스 중단 없이 안정적으로 확장 가능한 기반을 이미 확보하고 있습니다.