

# 콘텐츠 도메인 3: ML 워크플로의 배포 및 오케스트레이션
<a name="machine-learning-engineer-associate-01-domain3"></a>

**Topics**
+ [작업 3.1: 기존 아키텍처 및 요구 사항에 따라 배포 인프라를 선택합니다.](#machine-learning-engineer-associate-01-domain3-task1)
+ [작업 3.2: 기존 아키텍처 및 요구 사항을 기반으로 인프라 만들기 및 스크립팅](#machine-learning-engineer-associate-01-domain3-task2)
+ [작업 3.3: 자동화된 오케스트레이션 도구를 사용하여 지속적 통합 및 지속적 전달(CI/CD) 파이프라인 설정](#machine-learning-engineer-associate-01-domain3-task3)

## 작업 3.1: 기존 아키텍처 및 요구 사항에 따라 배포 인프라를 선택합니다.
<a name="machine-learning-engineer-associate-01-domain3-task1"></a>

관련 지식:
+ 배포 모범 사례(예: 버전 관리, 롤백 전략)
+ AWS 배포 서비스(예: Amazon SageMaker AI)
+ ML 모델을 실시간 및 배치로 처리하는 방법
+ 프로덕션 환경 및 테스트 환경(예: CPU, GPU)에서 컴퓨팅 리소스를 프로비저닝하는 방법
+ 배포 엔드포인트에 대한 모델 및 엔드포인트 요구 사항(예: 서버리스 엔드포인트, 실시간 엔드포인트, 비동기 엔드포인트, 배치 추론)
+ 적절한 컨테이너를 선택하는 방법(예: 제공 또는 사용자 지정)
+ 엣지 디바이스에서 모델을 최적화하는 방법(예: SageMaker Neo)

관련 기술:
+ 성능, 비용, 지연 시간 절충점 평가
+ 요구 사항(예: GPU 또는 CPU 사양, 프로세서 제품군, 네트워킹 대역폭)에 따라 훈련 및 추론에 적합한 컴퓨팅 환경 선택
+ 올바른 배포 오케스트레이터 선택(예: Apache Airflow, SageMaker Pipelines)
+ 다중 모델 또는 다중 컨테이너 배포 선택
+ 올바른 배포 대상 선택(예: SageMaker AI 엔드포인트, Kubernetes, Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Kubernetes Service(Amazon EKS), AWS Lambda)
+ 모델 배포 전략 선택(예: 실시간, 배치 처리)

## 작업 3.2: 기존 아키텍처 및 요구 사항을 기반으로 인프라 만들기 및 스크립팅
<a name="machine-learning-engineer-associate-01-domain3-task2"></a>

관련 지식:
+ 온디맨드 리소스와 프로비저닝된 리소스의 차이점
+ 스케일링 정책을 비교하는 방법
+ 코드형 인프라(IaC) 옵션의 절충점 및 사용 사례(예: AWS CloudFormation, AWS Cloud Development Kit(AWS CDK))
+ 컨테이너화 개념과 AWS 컨테이너 서비스
+ 확장성 요구 사항(예: 수요, 시간 기준)을 충족하기 위해 SageMaker AI 엔드포인트 오토 스케일링 정책을 사용하는 방법

관련 기술:
+ 모범 사례를 적용하여 유지 관리 가능하고 확장 가능하며 비용 효율적인 ML 솔루션 지원(예: SageMaker AI 엔드포인트에서 오토 스케일링, Amazon EC2 인스턴스 사용, 엔드포인트 뒤에서 Lambda 사용으로 스팟 인스턴스 동적 추가)
+ 스택 간 통신을 포함한 컴퓨팅 리소스 프로비저닝 자동화(예: CloudFormation, AWS CDK 사용)
+ 컨테이너 구축 및 유지 관리(예: Amazon Elastic Container Registry(Amazon ECR), Amazon EKS, Amazon ECS, SageMaker AI와 함께 BYOC(Bring Your Own Container) 사용)
+ VPC 네트워크 내에서 SageMaker AI 엔드포인트 구성
+ SageMaker AI SDK를 사용하여 모델 배포 및 호스팅
+ 오토 스케일링을 위한 특정 지표 선택(예: 모델 지연 시간, CPU 사용률, 인스턴스당 호출 수)

## 작업 3.3: 자동화된 오케스트레이션 도구를 사용하여 지속적 통합 및 지속적 전달(CI/CD) 파이프라인 설정
<a name="machine-learning-engineer-associate-01-domain3-task3"></a>

관련 지식:
+ AWS CodePipeline, AWS CodeBuild 및 AWS CodeDeploy의 기능 및 할당량
+ 데이터 수집 자동화 및 오케스트레이션 서비스와의 통합
+ 버전 관리 시스템 및 기본 사용법(예: Git)
+ CI/CD 원칙과 이를 ML 워크플로에 적용하는 방법
+ 배포 전략 및 롤백 작업(예: 블루/그린 배포, canary, 선형)
+ 코드 리포지토리와 파이프라인이 함께 작동하는 방식

관련 기술:
+ 단계를 포함한 CodeBuild, CodeDeploy 및 CodePipeline 구성 및 문제 해결
+ 지속적 배포 흐름 구조를 적용하여 파이프라인 호출(예: Gitflow, GitHub Flow)
+ AWS 서비스를 사용하여 오케스트레이션 자동화(예: ML 모델 배포, 모델 구축 자동화)
+ 훈련 및 추론 작업 구성(예: Amazon EventBridge 규칙, SageMaker Pipelines, CodePipeline 사용)
+ CI/CD 파이프라인에서 자동화된 테스트 만들기(예: 통합 테스트, 단위 테스트, 엔드투엔드 테스트)
+ 모델 재훈련을 위한 메커니즘 구축 및 통합