모든 모니터링은 Data Capture(요청·응답을 S3에 저장)에서 시작하고, 베이스라인(정상의 기준)을 만든 뒤 cron 스케줄로 Processing Job을 띄워 비교한다.
모니터
감시 대상
도구
라벨 필요
데이터 품질
입력 피처 분포 통계(데이터 드리프트)
Model Monitor(Deequ)
불필요
모델 품질
예측 성능 지표(정확도·F1)
Model Monitor
필요(ground truth)
편향 드리프트
그룹 간 예측 편향(공정성)
Clarify
일부 불필요
피처 기여도 드리프트
피처 중요도(SHAP) 변화
Clarify
불필요
같은 표를 "언제 울리나"로 다시 보면 선택이 더 선명해진다.
모니터
감지 속도
잡아내는 사고
못 잡는 것
데이터 품질
즉시(다음 주기)
스키마 깨짐·결측 폭증·신규 범주·분포 이동
분포는 그대로인데 관계가 변한 경우
모델 품질
라벨이 모인 뒤
실제 정확도 하락(개념 드리프트의 결과)
라벨이 없으면 아예 계산 불가
편향 드리프트
즉시~라벨 필요 지표는 지연
특정 그룹에 불리해지는 변화
전체 성능 저하 자체
피처 기여도 드리프트
즉시
모델이 의존하는 피처가 바뀜(조기 경보)
성능이 실제로 얼마나 나빠졌는지
💡 관련 이론: 드리프트의 핵심 구분 — 데이터 드리프트(covariate shift)는 입력 X의 분포 변화(데이터 품질 모니터), 개념 드리프트(concept drift)는 X와 Y의 관계 변화(모델 품질 모니터가 성능 저하로 포착). 라벨을 즉시 얻을 수 없으면 모델 품질은 불가능하므로 데이터 품질이나 피처 기여도 드리프트로 우회해 조기 경보를 얻는다. 이 "라벨 유무 → 모니터 선택" 논리가 Week 8 객관식에서 답을 가르는 기준이다.
모델이 옳은가와 별개로 시스템이 건강한가를 본다. 관측성의 세 기둥: 메트릭(CloudWatch Metrics)·로그(CloudWatch Logs)·트레이스(X-Ray).
핵심 지표: ModelLatency·OverheadLatency(지연), Invocations(호출량), 4XX/5XXErrors(오류), CPU/Memory/GPUUtilization(자원).
4XX = 클라이언트 오류(잘못된 입력), 5XX = 서버 오류(컨테이너 충돌·자원 부족). 오류 추적의 첫 단계.
CloudWatch Alarm: 임계치 위반 시 SNS·Auto Scaling·Lambda 발동. EvaluationPeriods로 오탐 감소.
트래픽 변동 대응은 단순 알람이 아니라 Application Auto Scaling.
지연 지표는 어느 쪽이 튀었는지로 원인이 갈린다.
관측된 조합
해석
다음 행동
전체 지연 ↑, ModelLatency 정상
모델 밖(앞단 Lambda·네트워크·외부 API)이 병목
X-Ray로 구간 특정
ModelLatency ↑
모델 연산·인스턴스 부하
인스턴스 상향·증설, 모델 경량화
OverheadLatency ↑
페이로드·요청 처리 부가 비용
페이로드 축소, 형식 단순화
5XXErrors ↑ + MemoryUtilization ↑
컨테이너 OOM·자원 부족
메모리 큰 타입, 배치 크기 축소
4XXErrors ↑
호출 측 입력·인증 문제
클라이언트 검증, 스키마 문서화
# 운영 지표 알람 + 모델 모니터 지표를 한 대시보드로 모으는 것이 운영 베스트프랙티스# ModelLatency 급증 → 인스턴스 부하, OverheadLatency 급증 → 요청 처리/페이로드 문제# 전체 지연만 늘고 ModelLatency 정상 → X-Ray로 앞단(Lambda/네트워크) 병목 추적
⚠️ 함정: "성능 저하"라는 말이 모호하다. 모델 성능 저하(정확도 하락)는 Model Quality Monitor, 시스템 성능 저하(지연·오류)는 CloudWatch 운영 지표다. 문제 문장에서 "정확도/예측 품질"인지 "지연/오류/자원"인지를 구분해 도구를 골라야 한다.