Cert Notes/ 출퇴근 학습 노트
로드맵
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
  • Week 1
    • 1.ML 수명주기와 ML 엔지니어의 역할
    • 2.ML 문제 유형과 평가 지표 기초
    • 3.AWS ML 스택 한눈에 보기
    • 4.SageMaker 개요: Studio, 학습/추론, 빌트인 알고리즘
    • 5.Week 1 종합 — ML 기초·AWS 스택 복습
  • Week 2
    • 1.데이터 수집: S3 데이터 레이크, Kinesis, 배치 수집, 데이터 포맷
    • 2.데이터 카탈로그·ETL: AWS Glue와 DataBrew
    • 3.쿼리·탐색: Athena, Redshift, EDA 기초
    • 4.데이터 저장 전략: 파티셔닝·포맷 최적화·학습용 준비
    • 5.Week 2 종합 — 데이터 수집·저장 복습
  • Week 3
    • 1.특성 공학: 모델이 읽을 수 있는 숫자로 바꾸는 기술
    • 2.SageMaker Data Wrangler: 코드 없이 끝내는 데이터 준비
    • 3.SageMaker Feature Store: 특성을 자산으로 관리하기
    • 4.데이터 편향·품질: Clarify, 불균형 처리, 데이터 분할
    • 5.Week 3 종합 — 특성 공학·데이터 품질 복습
  • Week 4
    • 1.SageMaker 학습 작업(Training Job): Estimator, 입력 채널, 인스턴스, Spot
    • 2.빌트인 알고리즘: XGBoost, Linear Learner, 이미지·텍스트, 입력 포맷
    • 3.하이퍼파라미터 튜닝(AMT): 베이지안·랜덤·그리드, 조기 종료, 워밍 스타트
    • 4.JumpStart·사전학습 모델·전이학습 + 학습 비용 최적화
    • 5.Week 4 종합: 모델 개발 1 — SageMaker 학습 복습
  • Week 5
    • 1.커스텀 학습: 스크립트 모드, BYOC, 프레임워크 컨테이너
    • 2.분산 학습: 데이터 병렬과 모델 병렬
    • 3.디버깅과 프로파일링: SageMaker Debugger와 Profiler
    • 4.모델 평가: 지표 선택, 과적합, 교차검증, 혼동행렬
    • 5.Week 5 종합: 모델 개발 2 복습
  • Week 6
    • 1.추론 옵션 개요: 4가지 배포 방식과 선택 기준
    • 2.실시간 엔드포인트: 구성, 오토스케일링, 인스턴스 선택
    • 3.비용·고급 추론: 멀티모델, 멀티컨테이너, 추론 파이프라인, Inferentia
    • 4.배치·서버리스 추론 심화: 대량 처리 튜닝과 비용 트레이드오프
    • 5.Week 6 종합: 추론 배포 복습
  • Week 7
    • 1.SageMaker Pipelines: 단계, DAG, 파라미터, 조건 단계
    • 2.Model Registry & 모델 거버넌스: 모델 패키지 그룹, 승인 워크플로, 버전 관리
    • 3.CI/CD for ML: SageMaker Projects, CodePipeline/CodeBuild 연계, 자동 배포
    • 4.IaC & 워크플로 오케스트레이션: CloudFormation/CDK, Step Functions, EventBridge, Airflow(MWAA)
    • 5.Week 7 종합: MLOps 복습
  • Week 8
    • 1.SageMaker Model Monitor: 데이터 품질·모델 품질 드리프트
    • 2.편향·설명가능성 드리프트: Clarify로 운영 중 감시
    • 3.운영 모니터링: CloudWatch 지표·알람, 엔드포인트 지연·오류, 로깅
    • 4.재학습·모델 유지보수: 자동 재학습 파이프라인과 A/B·섀도 테스트
    • 5.Week 8 종합: ML 솔루션 모니터링·유지보수 복습
  • Week 9
    • 1.SageMaker IAM 보안: 실행 역할과 최소 권한
    • 2.네트워크 격리: VPC 모드 SageMaker와 PrivateLink
    • 3.데이터·모델 보호: KMS 암호화와 Secrets
    • 4.ML 비용 최적화: Spot 학습부터 비용 모니터링까지
    • 5.Week 9 종합: 보안·거버넌스·비용 복습
  • Week 10
    • 1.도메인 1·2 통합 복습: 데이터 준비 + 모델 개발
    • 2.도메인 3·4 통합 복습: 배포·오케스트레이션 + 모니터링·보안
    • 3.전체 모의고사 페이스: 4개 도메인 종합 시나리오
    • 4.자주 틀리는 함정·키워드: "요구사항 → SageMaker 기능" 번역표
    • 5.D-Day 마무리: 시험 구성·시간 배분·시나리오 분해 전략
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기
← MLA-C01/Week 1/Day 4
MLA-C01· AssociateWeek 1 · Day 4읽기 약 13분

Day 4 - SageMaker 개요: Studio, 학습/추론, 빌트인 알고리즘

📌 핵심 정리

  • Studio는 컴퓨팅과 스토리지를 분리한 ML 전용 IDE — 코드는 EFS에 두고 실행할 때만 커널(인스턴스)을 붙인다.
  • 권한 구조는 도메인(팀 경계) → 사용자 프로필(개인·역할). 프로필별로 다른 IAM 역할을 매핑해 권한을 나눈다.
  • 학습은 일시적 컨테이너에서 일어난다 — 끝나면 인스턴스 자동 종료, 스팟으로 비용 절감.
  • 추론은 트래픽 패턴으로 고른다: 실시간 / 서버리스 / 배치 변환 / 비동기.
  • 빌트인 알고리즘 약 17종으로 모델 코드 작성을 생략할 수 있다. 테이블 데이터 분류·회귀 = XGBoost가 기본값.

SageMaker Studio: ML 작업의 통합 IDE

SageMaker는 단일 서비스가 아니라 ML 수명주기 전체를 덮는 도구 모음이고, MLA-C01 문제의 대부분이 "이 작업엔 SageMaker의 어느 기능을 쓰나"를 묻는다.

SageMaker Studio는 브라우저 기반 통합 개발 환경이다. 노트북, 실험 추적, 파이프라인, 모델 배포를 한 화면에서 한다. VS Code가 일반 개발의 IDE라면 Studio는 ML의 IDE다.

Studio가 기존 노트북 인스턴스와 다른 핵심은 컴퓨팅과 스토리지의 분리다.

구분노트북 인스턴스Studio
코드 저장인스턴스에 붙은 EBSEFS(인스턴스와 분리)
실행 자원인스턴스 타입 고정커널마다 인스턴스 선택·교체
타입 변경인스턴스를 재시작해야 함커널만 갈아끼우면 됨
유휴 비용켜둔 만큼 계속 발생커널을 끄면 컴퓨팅 비용 0
협업개별 인스턴스도메인·공유 스페이스

CPU로 코드를 짜다가 학습할 때만 GPU 커널로 갈아끼울 수 있고, 안 쓰는 커널은 꺼서 비용을 아낀다.

# Studio 노트북 안에서 SageMaker SDK 세션 시작
import sagemaker
session = sagemaker.Session()
role = sagemaker.get_execution_role()    # 노트북에 부여된 IAM 역할
bucket = session.default_bucket()        # 기본 S3 버킷
print(region := session.boto_region_name)

get_execution_role()이 반환하는 IAM 역할이 중요하다. 노트북에서 하는 모든 SageMaker·S3 작업은 이 역할의 권한으로 실행되므로, 권한이 부족하면 학습이나 배포가 AccessDenied로 실패한다.

💡 관련 이론: 컴퓨팅-스토리지 분리는 클라우드 ML의 핵심 비용 원칙이다. 학습은 GPU가 몇 시간 필요하지만 코드 작성은 CPU로 충분하다. 둘을 묶어두면 코드 짜는 동안에도 비싼 GPU 비용이 나간다. Studio는 코드(EFS)와 실행(on-demand 커널)을 분리해 "쓸 때만 비싼 자원"을 빌리게 한다. 이것이 노트북 인스턴스 대비 Studio의 비용 이점이다.

도메인과 사용자 프로필: SageMaker의 권한 구조

SageMaker Studio를 쓰려면 먼저 **도메인(Domain)**을 만들어야 한다. 도메인은 Studio 환경의 최상위 경계로, 하나의 VPC·인증 방식·공유 스토리지(EFS)를 묶는다. 한 조직(또는 팀)당 보통 하나의 도메인을 둔다.

도메인 안에 **사용자 프로필(User Profile)**이 있다. 사용자 한 명(또는 페르소나)당 하나이며, 각자의 IAM 역할·홈 디렉터리·기본 설정을 가진다.

Domain (조직/팀 경계, VPC·EFS·인증 공유)
 ├─ User Profile: data-scientist-kim  (역할 A: 학습 권한)
 ├─ User Profile: ml-engineer-lee     (역할 B: 학습+배포 권한)
 └─ Shared Space: team-collab         (협업용 공유 공간)
계층무엇을 묶나무엇을 나누나
도메인VPC, 인증 방식, EFS, 기본 설정조직/팀 단위 격리
사용자 프로필개인 IAM 역할, 홈 디렉터리사람·역할별 권한
공유 스페이스여러 사용자가 함께 쓰는 작업 공간협업 대상 리소스

이 계층이 시험에 나오는 이유는 권한 분리 때문이다. 데이터 사이언티스트에게는 학습 권한만, ML 엔지니어에게는 배포까지 부여하는 식으로 사용자 프로필별 IAM 역할을 다르게 매핑한다. 권한 문제가 생기면 "어느 사용자 프로필의 어느 역할이 무슨 권한을 갖고 있나"를 추적해야 한다.

🔍 더 깊이: 도메인 생성 시 네트워크 모드를 고른다. VPC only 모드는 모든 트래픽이 고객 VPC를 통하므로 인터넷을 차단하고 PrivateLink로 SageMaker API에 닿게 할 수 있다 — 규제·보안 환경의 표준이다. Public internet 모드는 AWS 관리 네트워크로 편하지만 통제가 약하다. 금융·의료 시나리오에서 "데이터가 인터넷에 노출되면 안 된다"가 나오면 VPC only가 답이다.

학습(Training): 일시적 컨테이너에서 일어난다

SageMaker 학습의 핵심 메커니즘은 **학습 작업(Training Job)**이다. 학습을 요청하면 SageMaker가 다음 순서로 처리한다.

   [fit() 호출]
        │
        v
  ① 인스턴스 프로비저닝 (지정한 타입·개수)
        │
        v
  ② S3에서 학습 데이터 다운로드/스트리밍
        │
        v
  ③ 컨테이너 안에서 학습 코드 실행
        │
        v
  ④ 모델 산출물(model.tar.gz)을 S3에 저장
        │
        v
  ⑤ 인스턴스 자동 종료  ← GPU 비용이 학습 시간만큼만 청구되는 이유
from sagemaker.estimator import Estimator
 
estimator = Estimator(
    image_uri=sagemaker.image_uris.retrieve("xgboost", region, "1.7-1"),
    role=role,
    instance_count=2,                 # 분산 학습 시 2대 이상
    instance_type="ml.m5.xlarge",
    output_path=f"s3://{bucket}/models/",
    use_spot_instances=True,          # 스팟으로 학습 비용 최대 90% 절감
    max_wait=7200, max_run=3600,
)
estimator.fit({"train": f"s3://{bucket}/train/"})

use_spot_instances=True는 ML 엔지니어가 학습 비용을 줄이는 흔한 기법이다. 학습은 중단돼도 체크포인트에서 재개할 수 있으므로 저렴한 스팟 인스턴스에 적합하다.

파라미터의미주의점
instance_count학습에 쓸 인스턴스 수2 이상이면 분산 학습, 데이터가 여러 파일로 나뉘어야 효과
use_spot_instances스팟 인스턴스 사용중단 가능 — 체크포인트 설정이 사실상 필수
max_run학습 자체의 최대 실행 시간초과 시 작업 중단
max_wait스팟 대기까지 포함한 최대 시간스팟 사용 시 max_run 이상이어야 함
output_path모델 산출물 S3 위치재현·배포의 기준점

⚠️ 함정: 스팟은 싸지만 언제든 회수될 수 있다. 체크포인트 없이 스팟으로 장시간 학습을 돌리면 중단 시 처음부터 다시 해야 해 오히려 손해다. "비용 절감"이라는 단서만 보고 스팟을 고르되, 중단 내성(체크포인트)이 함께 언급되는지 확인하라.

추론(Inference): 네 가지 옵션

학습된 모델을 서빙하는 방법은 트래픽 패턴에 따라 네 가지다. MLA-C01에서 가장 자주 묻는 비교다.

옵션적합한 상황유휴 비용지연특징
실시간 엔드포인트지속적인 저지연 요청있음(상시 가동)밀리초항상 켜져 있음
서버리스 추론간헐적·예측 불가 트래픽없음콜드 스타트 있음자동 스케일
배치 변환대량 데이터 일괄 추론없음(작업 종료)해당 없음엔드포인트 불필요
비동기 추론큰 페이로드·긴 처리0까지 축소 가능큐 대기 포함큐 기반, 결과는 S3로

판별은 트래픽 모양으로 한다.

  • "초당 수천 요청, 낮은 지연" → 실시간 엔드포인트
  • "하루 한 번 전체 고객 점수 매기기" → 배치 변환
  • "가끔 들어오고 유휴 비용이 아깝다" → 서버리스 추론
  • "이미지·영상처럼 큰 입력에 처리가 오래 걸린다" → 비동기 추론
# 실시간 엔드포인트 배포
predictor = estimator.deploy(
    initial_instance_count=1, instance_type="ml.m5.large",
    endpoint_name="churn-endpoint",
)
result = predictor.predict(payload)   # ms 단위 응답
              요청이 계속 들어오나?
                   │
        ┌──── 예 ──┴── 아니오 ────┐
        │                         │
  지연이 중요한가?          한 번에 대량인가?
   │         │                │        │
  예        아니오            예       아니오
   │         │                │        │
실시간   비동기(큰 입력)   배치 변환   서버리스

💡 관련 이론: 서버리스 추론은 "유휴 비용 0 vs 콜드 스타트 지연"이라는 고전적 트레이드오프다. 트래픽이 없을 때 인스턴스를 0으로 줄여 비용을 안 받지만, 다음 요청 시 컨테이너를 새로 띄우는 콜드 스타트가 생긴다. 지연이 일관되게 낮아야 하는 서비스는 실시간 엔드포인트(상시 가동)를, 비용 민감하고 간헐적이면 서버리스를 고른다. 이는 Lambda의 콜드 스타트 트레이드오프와 같은 구조다.

빌트인 알고리즘: 직접 안 짜도 되는 17종

SageMaker는 검증된 알고리즘 약 17종을 컨테이너로 제공한다. 직접 모델 코드를 작성할 필요 없이 데이터와 하이퍼파라미터만 넘기면 된다. 문제 유형별로 대표를 기억해두면 시험에서 빠르게 고른다.

문제 유형빌트인 알고리즘시나리오 키워드
분류·회귀(테이블)XGBoost, Linear Learner"정형 데이터로 예측"
군집K-Means"라벨 없이 그룹으로 묶기"
차원 축소PCA"특성이 너무 많다"
이상 탐지Random Cut Forest (RCF)"비정상 패턴 탐지"
추천Factorization Machines"희소한 사용자-아이템 행렬"
이미지 분류Image Classification"사진이 무엇인지"
객체 탐지Object Detection"사진 어디에 무엇이"
시계열 예측DeepAR"미래 수요·값 예측"
토픽 모델링LDA, NTM"문서 주제 자동 추출"

빌트인이 안 맞으면 어떻게 하나 — 세 단계로 넓어진다.

방식무엇을 제공하나언제
빌트인 알고리즘알고리즘 + 컨테이너 전부 AWS표준 문제 유형에 해당
스크립트 모드AWS 관리 프레임워크 컨테이너 + 내 학습 스크립트TensorFlow·PyTorch 등으로 직접 짠 모델
커스텀 컨테이너내가 만든 Docker 이미지특수 라이브러리·런타임이 필요

"테이블 데이터 분류/회귀"는 거의 항상 XGBoost가 기본 답이다.

⚠️ 함정: 빌트인 알고리즘은 입력 포맷 요구가 있다. 여러 알고리즘이 CSV 외에 RecordIO-protobuf를 지원하며, 대용량 순차 학습에서는 후자가 유리하다. "빌트인을 쓰는데 데이터가 준비되지 않아 실패"하는 시나리오는 포맷·컨텐츠 타입 불일치를 의심하라.

엔드포인트를 여러 모델로 운영하기

모델이 수십·수백 개로 늘면 모델마다 엔드포인트를 두는 것이 비효율적이다. SageMaker는 하나의 엔드포인트에 여러 모델을 얹는 방식을 제공한다.

방식구조적합한 상황
단일 모델 엔드포인트엔드포인트 1개 = 모델 1개트래픽이 꾸준한 소수의 주력 모델
멀티모델 엔드포인트엔드포인트 1개에 다수 모델을 올려두고 요청 시 로드고객사·지역별로 모델이 수십~수백 개
프로덕션 variant한 엔드포인트에 여러 버전, 가중치로 트래픽 분배A/B 테스트, 카나리 배포
  • 멀티모델은 자주 안 쓰이는 모델까지 상시 인스턴스를 잡아두는 낭비를 없앤다.
  • 대신 오랫동안 호출되지 않은 모델은 처음 요청 시 로드 지연이 생길 수 있다.
  • variant 가중치 조정은 Day 1에서 본 카나리 배포의 실행 수단이다.

모델 산출물과 레지스트리

학습 작업이 끝나면 산출물은 model.tar.gz 형태로 output_path에 저장된다. 이 파일이 배포의 재료다.

[Training Job] ──> s3://bucket/models/<job-name>/output/model.tar.gz
                          │
                          ├──> [Model] 생성(이미지 + 산출물 + 역할)
                          │        │
                          │        ├──> 실시간 엔드포인트
                          │        └──> 배치 변환 작업
                          │
                          └──> [Model Registry] 버전 등록·승인 상태 관리

Model Registry는 "어떤 모델 버전이 승인되어 프로덕션에 나갈 수 있는가"를 관리한다. 자동 재학습 파이프라인에서 승인 단계를 두는 지점이 여기다.

학습·추론 운영에서 흔한 실수

실수증상해법
실행 역할에 S3 권한 누락학습 시작 직후 AccessDenied역할 정책에 대상 버킷 권한 추가
스팟을 쓰면서 체크포인트 미설정중단 시 처음부터 재학습체크포인트 경로 지정
max_run을 너무 짧게 설정학습이 완료 전 중단예상 학습 시간에 여유를 둠
간헐적 트래픽에 실시간 엔드포인트 상시 가동유휴 비용 낭비서버리스 추론 검토
대량 일괄 채점에 엔드포인트 사용불필요한 상시 비용배치 변환으로 전환
데이터가 단일 거대 파일분산 학습에서 분배 안 됨여러 객체로 샤딩

다음 글에서는 이번 주에 배운 ML 기초와 AWS 스택을 종합 복습하며 Week 1을 마무리한다.

📖 용어

  • SageMaker Studio : 노트북·실험·파이프라인·배포를 한 화면에서 다루는 ML 전용 브라우저 IDE.
  • 컴퓨팅-스토리지 분리 : 코드는 영구 저장소에 두고 실행 자원은 필요할 때만 붙이는 구조. 유휴 비용을 없앤다.
  • 커널(kernel) : 노트북 코드를 실제로 실행하는 인스턴스. CPU/GPU로 갈아끼울 수 있다.
  • 도메인(Domain) : Studio 환경의 최상위 경계. VPC·인증·공유 스토리지를 묶는 팀 단위 울타리.
  • 사용자 프로필(User Profile) : 도메인 안의 개인 계정. 각자 IAM 역할과 홈 디렉터리를 가진다.
  • VPC only 모드 : Studio 트래픽을 고객 VPC로만 흐르게 해 인터넷 노출을 막는 네트워크 설정.
  • 학습 작업(Training Job) : 인스턴스를 띄워 학습하고 산출물을 S3에 남긴 뒤 스스로 꺼지는 일회성 작업.
  • 스팟 인스턴스 : 남는 용량을 싸게 쓰는 대신 언제든 회수될 수 있는 인스턴스. 체크포인트와 함께 쓴다.
  • 콜드 스타트 : 유휴 상태에서 첫 요청이 왔을 때 컨테이너를 새로 띄우느라 생기는 초기 지연.
  • 배치 변환(Batch Transform) : 상시 엔드포인트 없이 대량 데이터를 한 번에 채점하고 끝나는 추론 방식.

📝 연습 문제

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

문제 1

SageMaker Studio가 기존 노트북 인스턴스 대비 비용 효율적인 핵심 이유는?

문제 2

SageMaker Studio에서 데이터 사이언티스트에게는 학습 권한만, ML 엔지니어에게는 배포 권한까지 부여하려 한다. 이를 구현하는 구조는?

문제 3

SageMaker 학습 작업(Training Job)에서 학습 비용이 학습 시간만큼만 청구되는 이유는?

문제 4

"하루에 한 번, 전체 고객 데이터에 대해 이탈 점수를 일괄 계산"하는 워크로드에 가장 적합한 추론 옵션은?

문제 5

정형(테이블) 데이터의 이진 분류 문제를 SageMaker 빌트인 알고리즘으로 풀 때 가장 일반적인 기본 선택은?

이전AWS ML 스택 한눈에 보기Week 1 · Day 3다음 Week 1 종합 — ML 기초·AWS 스택 복습Week 1 · Day 5

이 페이지

  • 핵심 정리
  • SageMaker Studio: ML 작업의 통합 IDE
  • 도메인과 사용자 프로필: SageMaker의 권한 구조
  • 학습(Training): 일시적 컨테이너에서 일어난다
  • 추론(Inference): 네 가지 옵션
  • 빌트인 알고리즘: 직접 안 짜도 되는 17종
  • 엔드포인트를 여러 모델로 운영하기
  • 모델 산출물과 레지스트리
  • 학습·추론 운영에서 흔한 실수
  • 용어
  • 연습 문제