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

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

1️⃣ Docker로 모델 서버 컨테이너화
      ⬇️
2️⃣ 동일 컨테이너 여러 개 실행 (수평 확장)
      ⬇️
3️⃣ 로드밸런서(API Gateway 등)로 요청 분산
      ⬇️
4️⃣ 실시간 모니터링 & 알림 체계 구축
    ├─ 응답 속도 (평균, 99퍼센타일)
    ├─ 에러율
    ├─ 처리량 (Throughput)
    └─ CPU / GPU 자원 사용률
  1. 컨테이너화: 모델 서버를 Docker로 패키징해 어디서든 동일하게 실행되게 합니다.
  2. 수평 확장: 같은 모델 서버를 여러 개 띄워 부하를 나눕니다 (예: Kubernetes나 GCP 오토스케일러 사용).
  3. 부하 분산: 로드밸런서(API Gateway 등)를 통해 요청을 고르게 분산시킵니다.
  4. 모니터링 & 로깅:
    • 응답 시간
    • CPU/GPU 사용률
    • 에러율
    • Throughput(처리량)
    • 99퍼센타일 응답 시간
    • 실시간 알림 및 대시보드(Grafana/Prometheus 등 사용)

인프라 구성 요소 및 기술 명세

구성 요소 사용 기술/서비스 예시
컨테이너화 Docker
클러스터 오케스트레이션 Kubernetes (GKE, EKS 등)
클라우드 자원 GCP Compute Engine / AWS EC2
로드밸런싱 Google Cloud Load Balancer / ALB
자동 확장 GCP Instance Group / Kubernetes HPA
모니터링 Prometheus, Grafana, Loki, AlertManager 등
로깅 stdout 기반 수집 + Loki or Stackdriver Logging

모니터링 대상 지표 및 수집 방식

지표 항목 수집 방식 시각화 방법
응답 시간 API Gateway 또는 APM 추적 Grafana
에러율 로그 수집 (Loki, Cloud Logging) Grafana Alert / Discord
CPU/GPU 사용률 Node Exporter / GPU Exporter Grafana
처리량(Throughput) Prometheus Query (rate 기준) Grafana
서버 수 및 사용률 Kubernetes Metrics API HPA 연동

부하 테스트 예시

# 예시: Apache Bench (ab)
ab -n 1000 -c 100 http://your-api.com/api/test
  • 테스트 후 평균 응답 시간 및 최대 응답 시간 분석
  • 자원 사용률을 기반으로 오토스케일링 트리거 조건 검증

확장성과 안정성에 대한 기여 설명

  • 서비스 이용자 증가에도 대응: 수평 확장 구조와 오토스케일링으로, 자동으로 인스턴스를 늘려 대응 가능
  • 장애 발생 시 자동 복구: Healthcheck 실패 시 롤백 스크립트 실행
  • 실시간 상태 확인: Grafana 대시보드로 팀 전체가 현재 상태를 가시적으로 공유
  • 모듈화된 배포 구조: 프론트/백엔드/AI 서버 각각 독립적으로 배포 가능

참고 사항

  • 트래픽이 적은 초기에는 단일 인스턴스로 운영 가능
  • 사용자 수 및 요청량 증가에 따라 점진적 도입
  • CI/CD 파이프라인과 연동하여 자동화 수준 향상