AWS CDK로 Vision AI 모델 서빙 파이프라인 구축 노하우 공개

by DD
1개월 전
조회수 10

AWS CDK를 활용하여 Vision AI 모델을 위한 서빙 파이프라인(Serving Pipeline)을 구축한 경험 공유

API Gateway, Lambda, SageMaker 등 AWS 서비스를 조합하여 End-to-End 아키텍처(End-to-End Architecture) 구성

CDK Stack 분리를 통해 독립적인 배포 및 롤백을 지원하며, 운영 안정성(Operational Stability) 확보

S3 버킷(S3 Bucket) 라이프사이클(Lifecycle) 관리오토스케일링(Auto Scaling)을 통한 비용 최적화

SageMaker 엔드포인트(SageMaker Endpoint) 콜드 스타트(Cold Start), 타임아웃(Timeout), 비용 최적화(Cost Optimization) 등 프로덕션 환경에서의 문제 해결 경험 제시

CDK를 활용한 인프라 프로비저닝(Provisioning)

본문에서는 AWS CDK를 사용하여 Vision AI 모델 서빙을 위한 인프라를 코드(Code)로 관리하는 방법을 설명한다. CDK(Cloud Development Kit)TypeScript(TypeScript)의 타입 시스템(Type System)클래스 상속(Class Inheritance)을 활용하여 복잡한 의존 관계를 프로그래밍적으로 관리할 수 있게 해준다. StorageStack, ModelStack, ApiStack, ObservabilityStack으로 인프라를 분리하여 독립적인 배포와 롤백을 가능하게 한다. 특히, S3 버킷(S3 Bucket)의 수명 주기 정책(Lifecycle Policy)Intelligent-Tiering 설정을 통해 비용을 최적화한다.

SageMaker 엔드포인트(Endpoint) 구성 및 오토스케일링(Auto Scaling)

ModelStack에서는 SageMaker 엔드포인트를 CDK로 구성하는 방법을 제시한다. SageMaker 실행 역할(SageMaker Role)을 정의하고, 모델 버킷(Model Bucket)에 대한 읽기 권한을 부여한다. PyTorch 추론 컨테이너(PyTorch Inference Container)를 사용하여 모델을 배포하고, 데이터 캡처(Data Capture) 설정을 통해 모델 품질을 모니터링한다. 또한, Application Auto Scaling을 활용하여 트래픽(Traffic)에 따라 엔드포인트 인스턴스 수를 자동으로 조절한다. ml.g4dn.xlarge 인스턴스(Instance)를 사용하며, 실제 부하 테스트(Load Test)를 통해 인스턴스 타입을 결정한다.

API Gateway와 Lambda를 활용한 요청 처리 파이프라인

ApiStack은 API Gateway, Lambda 함수(Function) 3개로 구성된 요청 처리 파이프라인을 구축한다. Lambda Authorizer는 JWT 토큰(JWT Token) 또는 API Key를 검증하고, Router Lambda는 요청을 라우팅하며, Pre-processing Lambda는 이미지 전처리(Image Preprocessing)를 수행한다. API GatewayCORS 설정(CORS Configuration), 요청 검증(Request Validation), 스로틀링(Throttling)을 통해 API의 안정성을 확보한다. 특히, Lambda 함수(Function)의 X-Ray 추적(X-Ray Tracing)을 활성화하여 문제 발생 시 디버깅(Debugging)을 용이하게 한다.

프로덕션 환경에서의 문제 해결

본문에서는 프로덕션 환경에서 마주친 문제들과 그 해결책을 제시한다. SageMaker 엔드포인트 콜드 스타트(Cold Start) 문제를 해결하기 위해 CDK 배포(CDK Deployment) 시 waitForDeployment 옵션을 false로 설정하고, 별도의 배포 파이프라인(Deployment Pipeline)에서 엔드포인트 상태를 폴링(Polling)하는 방식을 채택했다. Lambda에서 SageMaker 호출 시 타임아웃(Timeout) 문제를 해결하기 위해 이미지 리사이즈(Image Resize) 및 비동기 처리(Asynchronous Processing) 패턴을 도입했다. SageMaker 엔드포인트 비용 최적화(Cost Optimization)를 위해 오토스케일링(Auto Scaling)의 MinCapacity를 야간에 0으로 조정하는 스케줄링(Scheduling)을 적용했다.

모니터링(Monitoring) 및 배포 전략

CloudWatch 대시보드(CloudWatch Dashboard)를 통해 SageMaker ModelLatency, Invocations, Lambda Duration, API Gateway 5XXError 등의 지표를 모니터링한다. 새로운 모델 버전을 배포할 때는 Blue/Green 배포 전략(Blue/Green Deployment Strategy)을 사용하며, CDK를 통해 EndpointConfig를 새로 생성하고 Endpoint의 endpointConfigName을 업데이트한다. CDK 배포 명령(CDK Deploy Command)과 모델 업데이트 워크플로우(Model Update Workflow)를 상세히 설명하여, 실제 운영 환경에서의 배포 과정을 제시한다. 인프라를 코드(Code)로 관리함으로써 서비스 품질(Service Quality)을 향상시킨다.

AWS CDK로 구축하는 Vision AI 모델 서빙 파이프라인 실전 가이드