CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
  • Week 1
    • 1.ML 수명주기(ML Lifecycle): 비즈니스 문제 정의부터 A/B 테스트까지
    • 2.ML용 데이터 저장소: S3·EFS·FSx for Lustre·데이터 포맷
    • 3.데이터 수집: Kinesis·Glue·배치 vs 스트리밍
    • 4.데이터 레이블링: SageMaker Ground Truth·액티브 러닝(Active Learning)·레이블 품질
    • 5.1주차 종합 복습: ML 개요와 데이터 엔지니어링 1
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
    • 1.추론 옵션: 실시간 vs 서버리스 vs 비동기 vs 배치 변환
    • 2.실시간 엔드포인트 운영: 구성·Auto Scaling·멀티모델 엔드포인트
    • 3.추론 최적화: SageMaker Neo·Elastic Inference·Inferentia·추론 파이프라인
    • 4.모델 배포 전략: A/B 테스트·Blue/Green·카나리·섀도·롤백
    • 5.10주차 종합 복습: ML 구현·운영 1 — 배포와 추론
  • Week 11
  • Week 12
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← MLS-C01/Week 10/Day 4

기준: MLS-C01 시험 가이드·오류 제보

MLS-C01· AssociateWeek 10 · Day 4읽기 약 11분
핵심 정리
  • 오프라인 평가를 통과한 모델이 프로덕션에서도 이긴다는 보장은 없다. 배포란 위험을 조금씩만 노출하고, 측정하고, 필요하면 빠르게 되돌리는 절차다.
  • 모든 전략의 공통 기반은 하나다 — 한 엔드포인트에 여러 ProductionVariant를 두고 트래픽 가중치를 조정하는 메커니즘.
  • A/B는 비즈니스 KPI 비교, Blue/Green은 전면 전환 + 즉시 롤백, 카나리는 소량→점진 확대, 섀도는 사용자 노출 0의 검증이다.
  • 전략의 차이는 결국 두 레버로 환원된다: 새 모델을 몇 %의 사용자가 보는가, 얼마나 빨리 되돌릴 수 있는가.
  • 배포 가드레일은 All-at-once / Canary / Linear 트래픽 시프팅에 CloudWatch 알람 기반 자동 롤백과 베이크 타임을 결합한다.

Day 4 - 모델 배포 전략: A/B 테스트·Blue/Green·카나리·섀도·롤백

모든 전략의 기반: ProductionVariant 트래픽 가중치

새 모델이 실제 데이터 분포 변화, 지연 증가, 특정 세그먼트 실패로 무너지는 일은 흔하다. 그래서 배포는 "띄우거나 실패하거나"가 아니라 다중 Variant + 가중치라는 한 개의 레버 위에서 설계된다.

from sagemaker.session import production_variant
 
variant_a = production_variant("ModelA", "ml.m5.xlarge", initial_weight=90, initial_instance_count=2)
variant_b = production_variant("ModelB", "ml.m5.xlarge", initial_weight=10, initial_instance_count=1)
session.endpoint_from_production_variants("ab-endpoint", [variant_a, variant_b])
  • 가중치 90/10 → 트래픽의 90%는 A, 10%는 B로 간다.
  • 시간이 지나며 90/10 → 50/50 → 0/100으로 조정한다. 이 단순한 레버가 A/B·카나리·Blue/Green을 모두 굴린다.
  • TargetVariant 파라미터로 특정 호출을 원하는 Variant에 강제 지정할 수 있다(테스트·디버깅용).
[ProductionVariant 가중치 이동]
 
          A(구버전)                     B(신버전)
t0   ████████████████████ 100%   ░ 0%      ← 배포 직전
t1   ██████████████████ 90%      ██ 10%    ← 카나리 시작
t2   ██████████ 50%               ██████████ 50%   ← A/B 비교 구간
t3   ░ 0%                         ████████████████████ 100%  ← 전면 전환
                    ↑ 어느 시점에서든 가중치를 되돌리면 롤백

배포 전략은 두 개의 레버로 정의된다. (1) 새 모델을 몇 %의 사용자에게 노출하는가, (2) 문제 시 얼마나 빨리 되돌리는가. A/B는 둘을 동시에 시험하고, 카나리는 노출을 점진적으로 키우며, 섀도는 노출을 0으로 고정한다. 전략들은 정확히 이 "노출 정도"에서만 갈린다.

A/B 테스트: 나란히 놓고 비교

두 모델을 동시에 운영하며 비즈니스 KPI(클릭률, 전환율, 리텐션)를 수집해 통계적으로 우열을 가린다.

ModelA (구버전) 50%  ──┐
                      ├─ 같은 엔드포인트, 가중치로 분할
ModelB (신버전) 50%  ──┘
→ 양쪽에서 KPI 지표 수집 → 통계 검정
항목내용
목표ML 지표가 아니라 비즈니스 지표의 통계적 유의성
Variant 지정TargetVariant로 특정 테스트를 한 모델에 고정 가능
기간통계적 검정력을 확보할 만큼 충분히 길게 돌린다
노출양쪽 모두 실제 사용자에게 응답을 반환한다

⚠️ 함정: A/B의 목적은 "안전한 전환"이 아니라 비교다. "어느 쪽이 더 나은지 실사용 지표로 판단하라"가 아니라 단순히 "안전하게 새 버전으로 넘어가라"는 지문이면 A/B가 아니라 카나리·Blue/Green이 답이다.

Blue/Green 배포: 전면 전환 + 빠른 롤백

블루(현재 운영)와 그린(새 버전)을 나란히 띄운다. 그린을 완전히 검증한 뒤 트래픽을 한 번에 넘기고, 문제가 생기면 다시 블루로 되돌린다.

Blue(v1) 100% ──검증──> Green(v2) 100%   (전면 전환)
                          문제 발생
             Green(v2) ──롤백──> Blue(v1) 100%
  • 장점: 전환도 즉시, 롤백도 즉시(블루가 아직 살아 있다).
  • 위험: 단계적 노출 없이 100% 트래픽이 한꺼번에 그린으로 몰린다 — 문제가 있으면 전원에게 동시에 드러난다.
  • SageMaker 기본 동작: UpdateEndpoint는 일반적으로 Blue/Green 방식으로 새 플릿을 띄운 뒤 트래픽을 옮긴다.
  • 비용: 전환 구간 동안 블루와 그린의 인스턴스를 동시에 유지하므로 리소스가 일시적으로 두 배가 된다.

카나리 배포: 소량부터 점진 확대

새 버전에 먼저 작은 비율(예: 5%)만 보내고, 건강하면 25% → 50% → 100%로 확대한다.

v2 5% → (지표 확인) → 25% → 50% → 100%
      → (지표 악화) → 즉시 0%로 롤백
  • 장점: 문제가 작은 세그먼트에서 먼저 잡힌다. 영향 범위가 제한된다.
  • SageMaker 배포 가드레일: Canary/Linear 트래픽 시프팅 + CloudWatch 알람 기반 자동 롤백을 제공한다.

배포 가드레일 트래픽 시프팅 모드

모드트래픽 이동 방식성격
All-at-once한 번에 전량 전환Blue/Green에 해당. 가장 빠르지만 노출 위험 최대
Canary소량 배치 먼저 → 건강하면 나머지 전량초기 위험을 작게 제한
Linear일정 주기마다 고정 비율씩 증가완만하고 예측 가능. 전체 전환 시간은 가장 길다

섀도 배포: 위험 0의 검증

요청을 구버전과 신버전 양쪽에 보내되, 사용자에게 반환되는 응답은 구버전 것뿐이다. 신버전 출력은 로그에만 남는다.

요청 ──> 구버전 모델 ──> 이 응답만 사용자에게 반환
      └─> 신버전 모델 ──> 로그로만 기록 (사용자는 보지 못함)
                        → 응답 내용 / 지연 / 오류율 비교
  • 언제: 카나리로 넘어가기 전, 실제 트래픽 분포에서 신버전을 안전하게 검증할 때.
  • 장점: 신버전 버그에 대한 사용자 노출이 0이다.
  • SageMaker Shadow Tests: 프로덕션 Variant와 섀도 Variant를 나란히 두고 로그 기반으로만 비교한다.
  • 비용: 같은 요청을 두 번 처리하므로 추론 비용은 두 배로 든다.

카나리(실제 사용자에게 점진 노출)와 섀도(노출 0, 로그만)의 차이는 누가 결과를 보는가에 있다. A/B는 비교를 위한 의도적 분할, 카나리는 위험의 단계적 확대, 섀도는 위험 자체를 없앤 검증이다. 감수할 수 있는 위험 수준으로 고르면 된다.

롤백과 자동 가드레일

방식동작속도
수동 롤백이전 EndpointConfig로 UpdateEndpoint 재호출블루가 살아 있으면 즉시
자동 롤백CloudWatch 알람이 임계 초과 → 배포 가드레일이 전환을 중단하고 되돌림알람 감지 즉시
베이크 타임전환 후 다음 단계로 넘어가기 전 지표를 관찰하는 대기 구간문제 조기 발견용

어떤 지표를 보고 롤백을 판단하는가

CloudWatch 지표악화 시 의미배포 중 해석
Invocation5XX서버 오류 급증신버전 컨테이너 자체가 깨졌다 → 즉시 롤백
Invocation4XX클라이언트 오류 급증입출력 스키마·직렬화가 바뀌었다 → 계약 불일치 의심
ModelLatency모델 컨테이너 추론 시간 증가신버전이 무거워졌다 → 인스턴스 상향 또는 롤백
OverheadLatencySageMaker 처리 오버헤드 증가페이로드·직렬화 문제 의심
CPU/Memory Utilization자원 포화신버전이 더 많은 자원을 쓴다 → 용량 재산정
비즈니스 KPI(클릭·전환)하락기술적으로는 정상이나 모델 품질이 나쁘다 → A/B로 판정

⚠️ 함정: 5XX·지연 같은 기술 지표만 정상이면 배포 성공이라고 착각하기 쉽다. 모델은 에러 없이 잘 응답하면서도 예측 품질이 나빠질 수 있다. 그래서 비즈니스 KPI 비교(A/B)와 기술 지표 기반 자동 롤백(카나리)은 서로를 대체하지 못한다.

롤백 체인이 성립하는 조건

[안전한 배포의 전제]
  ① 이전 EndpointConfig가 남아 있다        → 되돌릴 대상이 존재
  ② 롤백 판단 기준(알람)이 사전에 정의됐다   → 사람이 눈으로 볼 필요 없음
  ③ 전환이 단계적이다(또는 블루가 살아 있다) → 되돌릴 시간이 확보됨
  ④ 각 단계마다 베이크 타임이 있다          → 지연된 증상도 잡힌다
  ─────────────────────────────────────────
  하나라도 빠지면 "롤백이 빠르다"는 말은 성립하지 않는다

상황별 전략 배치

실전에서는 하나만 고르는 게 아니라 섀도 → 카나리 → 전면 전환 순으로 이어 붙이는 경우가 많다.

상황적합한 전략판단 근거
모델 구조가 크게 바뀌어 출력 스키마가 달라졌을 수 있다섀도사용자 노출 전에 응답 형식·지연을 실트래픽으로 대조
추천 알고리즘을 교체했고 클릭률로 판정해야 한다A/B기술 지표로는 우열이 안 나온다. KPI 표본이 필요
마이너 버전 업이며 회귀 위험만 관리하면 된다카나리소량 노출로 회귀를 조기 검출, 알람으로 자동 복귀
보안 패치라 즉시 전량 반영해야 한다Blue/Green점진 노출의 이점보다 전환 속도가 우선
트래픽이 적어 5%로는 표본이 안 모인다Blue/Green 또는 섀도카나리의 소량 구간이 통계적으로 무의미해진다

배포 전략 비교표

전략트래픽 이동 방식사용자 노출롤백 속도리소스 비용언제 쓰면 안 되나
A/B 테스트가중치로 고정 분할(예: 50/50)양쪽 모두 노출가중치 조정으로 빠름두 Variant 상시 운영단순 버전 교체가 목적일 때, KPI 표본이 부족해 유의성을 못 낼 때
Blue/Green한 번에 전량 전환전환 후 100%가장 빠름(블루 유지)전환 구간 동안 2배점진 노출로 위험을 제한해야 할 때, 여유 용량이 없을 때
카나리소량 → 단계적 확대초기에는 소수만빠름(0%로 되돌림)전환 구간 동안 증가즉시 전면 전환이 필요할 때, 소량 트래픽으로 문제가 드러나지 않는 유형일 때
섀도요청 복제, 응답 미반환0%롤백 개념 없음(끄면 끝)추론 2회분실제 사용자 반응(KPI)을 봐야 할 때, 추론 비용 2배를 감당 못 할 때

전략 선택 결정 트리

새 모델을 프로덕션에 넣어야 한다
├─ 사용자에게 신버전 응답을 조금이라도 보여도 되나?
│    ├─ 아니오 → 섀도 배포 (요청 복제, 로그만 비교)
│    └─ 예 ↓
├─ 목적이 "둘 중 어느 쪽이 나은지 실지표로 판정"인가?
│    ├─ 예   → A/B 테스트 (가중치 분할 + 충분한 기간 + 통계 검정)
│    └─ 아니오(교체가 목적) ↓
├─ 단계적으로 위험을 제한하고 자동 복귀까지 원하나?
│    ├─ 예   → 카나리 / Linear (배포 가드레일 + CloudWatch 알람 자동 롤백)
│    └─ 아니오 ↓
└─ 즉시 전환하고 문제 시 즉시 되돌리면 되나?
     └─ 예 → Blue/Green (All-at-once, 블루를 살려둔다)

지문 단서 → 정답 매핑

지문 단서고를 답이유
"사용자에게 절대 노출하지 않고 실제 트래픽으로 검증"섀도 배포응답을 반환하지 않고 로그만 비교한다
"5%부터 시작해 단계적으로 확대, 오류율 급증 시 자동 복귀"배포 가드레일 Canary + CloudWatch 알람 자동 롤백점진 확대 + 자동 롤백의 정의
"일정 비율씩 주기적으로 트래픽을 옮긴다"Linear 트래픽 시프팅고정 비율 증분 방식
"클릭률 등 비즈니스 KPI로 어느 모델이 나은지 판단"A/B 테스트실사용 지표 비교가 목적
"한 번에 전환하되 문제 시 즉시 되돌려야 한다"Blue/Green블루가 살아 있어 재전환이 즉시
"가중치를 90/10에서 0/100으로 점진 조정"다중 ProductionVariant + 가중치 분할모든 전략의 공통 기반 메커니즘
"전환 직후 지표를 관찰할 시간을 둔다"베이크 타임다음 단계 진행 전 관찰 구간
"이전 버전 구성으로 되돌린다"이전 EndpointConfig로 UpdateEndpoint수동 롤백의 표준 절차
"Batch Transform / MME로 안전 배포"오답 보기둘 다 배포 전략이 아니라 추론·호스팅 방식이다

다음 글에서는 배포 이후의 세계 — 모니터링과 모델 드리프트 탐지를 다룬다.

📖 용어

  • ProductionVariant : 하나의 엔드포인트 안에서 "이 모델을 이 인스턴스로 이만큼의 비중으로 서빙한다"를 정의하는 단위.
  • 트래픽 가중치(InitialVariantWeight) : 여러 Variant 사이에 요청을 몇 대 몇으로 나눌지 정하는 숫자. 90/10이면 9:1로 나뉜다.
  • A/B 테스트 : 두 모델을 동시에 노출해 실제 비즈니스 지표로 우열을 가리는 비교 실험.
  • Blue/Green 배포 : 구버전(블루)을 살려둔 채 신버전(그린)을 띄우고 트래픽을 한 번에 넘기는 방식. 되돌리기가 즉시다.
  • 카나리 배포 : 신버전에 소량 트래픽만 먼저 보내 이상이 없으면 비중을 키우는 방식. 이름은 탄광의 카나리아에서 왔다.
  • 섀도 배포(Shadow Test) : 같은 요청을 신버전에도 보내되 응답은 사용자에게 주지 않고 로그로만 비교하는 검증 방식.
  • 배포 가드레일(Deployment Guardrails) : 트래픽 시프팅 방식(All-at-once/Canary/Linear)과 자동 롤백을 묶어 제공하는 SageMaker의 안전장치.
  • 베이크 타임(bake time) : 트래픽을 옮긴 뒤 다음 단계로 넘어가기 전에 지표를 지켜보는 대기 시간.
  • 자동 롤백(auto-rollback) : CloudWatch 알람이 울리면 배포를 멈추고 이전 구성으로 되돌리는 동작.
  • EndpointConfig : 어떤 모델을 어떤 인스턴스·비중으로 띄울지 담은 설계도. 이것을 바꿔 끼우는 것이 무중단 교체이자 롤백 수단이다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

새 추천 모델을 실제 사용자에게 전혀 노출하지 않은 채, 프로덕션 트래픽에 대해 응답과 지연을 운영 모델과 비교 검증하고 싶다. 가장 적합한 전략은?

문제 2

새 모델 버전을 처음에는 트래픽의 5%에만 보내고, CloudWatch 지표가 건강하면 25%, 50%, 100%로 단계 확대하며, 오류율이 급증하면 자동으로 되돌리고 싶다. 무엇을 사용해야 하는가?

문제 3

두 모델을 동일 엔드포인트에서 각각 50% 트래픽으로 동시에 운영하며, 클릭률 같은 비즈니스 KPI를 충분한 기간 수집해 어느 모델이 통계적으로 더 나은지 판단하려 한다. 이 방식은?

문제 4

블루/그린 배포의 주요 트레이드오프로 옳은 것은?

문제 5

SageMaker에서 ProductionVariant의 트래픽 가중치를 90/10에서 0/100으로 점진 조정하는 행위가 직접적으로 가능하게 하는 배포 전략들의 공통 기반은?

이전추론 최적화: SageMaker Neo·Elastic Inference·Inferentia·추론 파이프라인Week 10 · Day 3다음 10주차 종합 복습: ML 구현·운영 1 — 배포와 추론Week 10 · Day 5

참고 공식 자료

  • MLS-C01 공식 시험 안내(새 탭에서 열림)
  • Amazon CloudWatch 공식 문서(새 탭에서 열림)
  • Amazon SageMaker AI 공식 문서(새 탭에서 열림)

이 페이지

  • 모든 전략의 기반: ProductionVariant 트래픽 가중치
  • A/B 테스트: 나란히 놓고 비교
  • Blue/Green 배포: 전면 전환 + 빠른 롤백
  • 카나리 배포: 소량부터 점진 확대
  • 배포 가드레일 트래픽 시프팅 모드
  • 섀도 배포: 위험 0의 검증
  • 롤백과 자동 가드레일
  • 어떤 지표를 보고 롤백을 판단하는가
  • 롤백 체인이 성립하는 조건
  • 상황별 전략 배치
  • 배포 전략 비교표
  • 전략 선택 결정 트리
  • 지문 단서 → 정답 매핑
  • 용어
  • 연습 문제