AWS CDK로 SageMaker AI 엔드포인트 오토스케일링 자동 오케스트레이션하기
Orchestrating SageMaker AI endpoint auto scaling with AWS CDK
SageMaker AI 실시간 엔드포인트의 인스턴스 타입·개수·환경 변수를 바꾸면 CloudFormation이나 AWS CDK 배포가 실패하는 문제를 다룬다. 기사는 오토스케일링 등록 해제와 재등록을 엔드포인트 업데이트 전후에 자동으로 수행하는 재사용 가능한 CDK 컨스트럭트를 소개한다. 기사는 등록된 스케일러블 타깃이 있는 상태에서 엔드포인트를 업데이트하면 SageMaker AI가 "must be deregistered as scalable targets with Application Auto Scaling" 오류로 업데이트를 거부한다고 설명한다. 수동으로 AWS CLI로 등록을 해제한 뒤 설정만 바꾸면 배포는 성공하지만 CloudFormation이 오토스케일링을 다시 등록하지 않아 엔드포인트가 오토스케일링 없이 실행될 수 있다고 지적한다. 또 등록을 해제한 상태에서 오토스케일링 파라미터를 바꾸면 존재하지 않는 ScalableTarget 리소스를 갱신하려다 UPDATE_ROLLBACK_FAILED가 발생해 콘솔에서 수동 복구가 필요해진다고 밝힌다. 해결책은 네이티브 AWS::ApplicationAutoScaling::ScalableTarget과 ScalingPolicy 리소스를 세 개의 커스텀 리소스로 대체하는 것이다. 순서는 등록 해제, 엔드포인트 업데이트(CDK 관리), 엔드포인트가 InService가 된 뒤 스케일러블 타깃 등록, 조회 가능해진 뒤 타깃 트래킹 정책 적용이다. 스케일러블 타깃 등록은 1시간, 정책 적용은 15분의 total_timeout 안에서 30초 간격으로 완료 여부를 확인하며, ConfigHash 속성은 설정값이 바뀔 때 Lambda를 다시 호출하게 한다.
SageMaker 엔드포인트의 instance_type이나 DesiredInstanceCount를 바꾸는 배포를 CDK로 한 번에 처리하려면, 기사의 ScalableTarget 등록 해제 커스텀 리소스와 ConfigHash 속성 구성을 참고할 수 있다.
원문 출처
AWS Machine Learning Blog