[AI] 인프라 확장성 및 모니터링 설계 - 100-hours-a-week/21-iceT-wiki GitHub Wiki

아키텍쳐 다이어그램

image

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

계층 서비스/기술 용도 및 역할
네트워크 GCP Network Load Balancer (L4) TCP 443 요청 분산·헬스체크
컴퓨트 GCE Managed Instance Group (MIG) NVIDIA L4 GPU 인스턴스 풀로 AI 모델 서빙
스토리지 Cloud Storage 모델 가중치 및 정적 파일(hosted weights) 보관
캐시·세션 (DB 미사용 환경이므로 별도 캐시 없음)
로깅 Cloud Logging VM 애플리케이션·시스템 로그 중앙 수집
모니터링 수집 Node Exporter 호스트(CPU/Memory/Disk/Network) 메트릭 노출 (포트9100)
DCGM Exporter GPU 사용률·메모리·온도 메트릭 노출 (포트9400)
App Exporter (Prometheus Client) FastAPI 응답 시간·요청 카운터·에러 카운터 등 (/metrics:8000)
모니터링·저장 Prometheus 메트릭 스크랩·시계열 저장·Alert 룰 평가
경고·알림 Alertmanager 경고 그룹화·억제·라우팅 후 Slack/Email 알림 전송
시각화·대시보드 Grafana Prometheus 메트릭 & Cloud Logging 로그 대시보드 구성
CI/CD 별도 자동화 미구축

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

지표 설명 수집 방법 시각화/알림
응답 시간 (p50, p95, p99) API 호출 지연 시간 App Exporter → Prometheus Grafana 패널, p99 > 2s 시 경고 설정
처리량 (RPS) 초당 처리 요청 수 App Exporter → Prometheus Grafana 타임라인 차트
에러율 (4xx/5xx 비율) 실패 응답(HTTP 4xx/5xx) 비율 App Exporter → Prometheus Grafana, 에러율 > 1% 시 알림
CPU 사용률 호스트 전체 CPU 사용률 Node Exporter → Prometheus Grafana, > 80% 시 알림
메모리 사용률 호스트 메모리 여유량 Node Exporter → Prometheus Grafana
디스크 I/O 읽기/쓰기 처리량 Node Exporter → Prometheus Grafana
네트워크 대역폭 송수신 바이트 Node Exporter → Prometheus Grafana
GPU 사용률 L4 GPU 코어 점유율 DCGM Exporter → Prometheus Grafana, > 70% 시 알림
GPU 메모리 사용량 GPU 메모리 소비량 DCGM Exporter → Prometheus Grafana
로그 에러 패턴 애플리케이션 에러 메시지 빈도 Cloud Logging → Grafana Grafana 로그 패널, 키워드 기반 알림

간이 부하 테스트 결과

테스트 시나리오

  • : Locust
  • 가정 트래픽: Peak 100 RPS, 평균 50 동시 사용자
  • 테스트 엔드포인트: POST /api/v1/interview/start (모델 추론 호출)
  • 기간: 5분(ramp-up 1분, 유지 3분, cool-down 1분)

주요 결과

항목 1개 인스턴스 (Scale-out 전) Auto-scaled (3개 인스턴스)
평균 응답 시간 1.8 s 0.9 s
p95 응답 시간 2.6 s 1.4 s
처리량 (RPS) 60 95
GPU 사용률 95 % 65 %
CPU 사용률 (호스트) 40 % 30 %
오토스케일링 없음 1→3 인스턴스 자동 확장
  • 분석:
    • 단일 인스턴스에서는 GPU가 포화되어 응답 지연 급증.
    • HPA 정책(GPU > 70%)에 따라 3개로 확장 후, 평균 응답 시간 절반, 처리량 ≈ 95 RPS 달성.

설계의 향후 성장·안정 운영 기여

  1. 무중단 수평 확장

    • Auto-scale: GPU 사용률, 응답 지연(p95) 기반으로 인스턴스 자동 증감 → 트래픽 변화에 실시간 대응
    • Zero-downtime: 로드밸런서 헬스체크로 신규 VM 준비 완료 후 트래픽 분산
  2. SLA 보장

    • 실시간 서비스의 p99 ≤ 2 s 목표를 실제 모니터링(p99, p95)알림으로 관리
    • SLT(서비스 수준 목표) 이탈 시 즉시 운영자 노티
  3. 운영 가시성·문제 대응 속도 개선

    • 로그 중앙화(Cloud Logging) + 메트릭 시각화(Grafana)로 장애 원인 신속 파악
    • Alertmanager 알림 그룹화/억제로 불필요한 노이즈 제거, 중요한 이벤트에 집중
  4. 비용 최적화

    • GPU VM 풀에 Preemptible VM 또는 스팟 인스턴스 적용 가능
    • Auto-scale 감소 시 불필요한 리소스 축소
  5. 미래 확장성 확보

    • 아키텍처 레이어(로드밸런서→MIG) 추가 인스턴스 투입만으로 최대 수 백 RPS, 동시 수천 세션까지 수평 확장 용이
    • 필요 시 GKE/Kubernetes로 전환, 멀티 리전 배포도 무리 없이 확장 가능