다중 모델 엔드포인트 배포를 위한 Auto Scaling 정책 설정 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다중 모델 엔드포인트 배포를 위한 Auto Scaling 정책 설정

SageMaker 다중 모델 엔드포인트는 트래픽 패턴에 따라 모델이 확장되도록 모델 복제본을 관리하는 자동 크기 조정을 완벽하게 지원합니다. 다중 모델 엔드포인트 배포를 위한 인스턴스 권장 사항을 기반으로 다중 모델 엔드포인트와 인스턴스의 크기를 구성하고 엔드포인트에 대해 Auto Scaling도 설정하는 것이 좋습니다. Auto Scaling 이벤트를 트리거하는 데 사용되는 호출 속도는 엔드포인트에서 지원되는 전체 모델 집합에서 집계한 예측 집합에 기반합니다. 엔드포인트 자동 조정 설정에 대한 자세한 내용은 Amazon SageMaker Models의 자동 크기 조정을 참조하십시오.

CPU 및 GPU 지원 다중 모델 엔드포인트 모두에서 미리 정의된 지표와 사용자 지정 지표를 사용하여 Auto Scaling 정책을 설정할 수 있습니다.

참고

SageMaker 다중 모델 엔드포인트 지표는 1분 단위로 제공됩니다.

스케일링 정책 정의

조정 정책에 대한 지표 및 대상 값을 지정하려면 대상 추적 조정 정책을 구성할 수 있습니다. 사전 정의된 지표 또는 사용자 정의 지표를 사용할 수 있습니다.

스케일링 정책 구성은 JSON 블록으로 표시됩니다. 텍스트 파일에 JSON 블록으로 스케일링 정책 구성을 저장합니다. AWS CLI 또는 Application Auto Scaling API를 호출할 때 이 텍스트 파일을 사용합니다. 정책 구성 구문에 대한 자세한 정보는 Application Auto Scaling API 참조의 TargetTrackingScalingPolicyConfiguration을 참조하세요.

대상 추적 스케일링 정책 구성을 정의하기 위해 다음과 같은 옵션을 사용할 수 있습니다.

사전 정의된 지표 사용

변형에 대한 대상 추적 스케일링 정책을 신속하게 정의하려면 SageMakerVariantInvocationsPerInstance 사전 정의된 지표를 사용합니다. SageMakerVariantInvocationsPerInstance는 변형에 대한 각 인스턴스가 호출되는 분당 평균 횟수입니다. 이 지표를 사용하는 것이 좋습니다.

스케일링 정책에서 미리 정의된 지표를 사용하려면 정책을 위한 대상 추적 구성을 생성합니다. 대상 추적 구성에서 사전 정의된 지표에 대해 PredefinedMetricSpecification을, 지표의 대상 값에 대해 TargetValue를 포함시켜야 합니다.

다음 예제는 변환의 대상 추적 조정을 위한 일반적인 정책 구성입니다. 이 구성에서 사전 정의된 지표인 SageMakerVariantInvocationsPerInstance를 사용하여 각 인스턴스의 InvocationsPerInstance 지표가 70이 되도록 변환 인스턴스의 수를 조정합니다.

{"TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "InvocationsPerInstance" } }
참고

다중 모델 엔드포인트를 사용하는 동안 InvocationsPerInstance를 사용하는 것이 좋습니다. 이 지표의 TargetValue는 애플리케이션의 지연 시간 요구 사항에 따라 달라집니다. 또한 엔드포인트의 로드 테스트를 수행하여 적절한 조정 파라미터 값을 설정하는 것이 좋습니다. 로드 테스트 및 엔드포인트의 자동 크기 조정 설정에 대한 자세한 내용은 Amazon에서 자동 크기 조정 추론 엔드포인트 구성 블로그를 참조하십시오. SageMaker

사용자 지정 지표 사용

사용자 지정 요구 사항을 충족하는 대상 추적 스케일링 정책을 정의해야 하는 경우 사용자 지정 지표를 정의합니다. 스케일링에 따라 변경되는 모든 프로덕션 변형 지표를 기반으로 사용자 지정 지표를 정의할 수 있습니다.

모든 SageMaker 지표가 대상 추적에 적합한 것은 아닙니다. 지표는 유효한 사용량 수치로서 인스턴스의 사용량을 설명해야 합니다. 변환 인스턴스 수에 따라 역으로 지표 값이 증가하거나 줄어들어야 합니다. 다시 말해 인스턴스의 수가 증가하면 지표의 값은 감소해야 합니다.

중요

프로덕션에서 오토 스케일링을 배포하기 전에 사용자 지표를 사용하여 오토 스케일링을 테스트해야 합니다.

CPU 지원 다중 모델 엔드포인트에 대한 사용자 지정 지표 예제

다음 예제는 스케일링 정책의 대상 추적 구성입니다. 이 구성에서 my-model이라는 모델에 대해 CPUUtilization의 사용자 지정 지표는 모든 인스턴스에 걸쳐 50%의 평균 CPU 사용률을 기반으로 엔드포인트에 대한 인스턴스 수를 조정합니다.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

GPU 지원 다중 모델 엔드포인트에 대한 사용자 지정 지표 예제

다음 예제는 스케일링 정책의 대상 추적 구성입니다. 이 구성에서 my-model이라는 모델의 경우 GPUUtilization의 사용자 지정 지표가 모든 인스턴스에 걸쳐 50%의 평균 GPU 사용률을 기준으로 엔드포인트의 인스턴스 수를 조정합니다.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "GPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

휴지 기간 추가

엔드포인트 스케일 아웃을 위한 휴지 기간을 추가하려면 ScaleOutCooldown에 대한 값(초)을 지정합니다. 이와 유사하게 모델 스케일 인을 위한 휴지 기간을 추가하려면 ScaleInCooldown에 대한 값(초)을 추가합니다. ScaleInCooldownScaleOutCooldown에 대한 자세한 정보는 Application Auto Scaling API 참조TargetTrackingScalingPolicyConfiguration을 참조하세요.

다음은 조정 정책에 대한 대상 추적 구성의 예제입니다. 이 구성에서는 SageMakerVariantInvocationsPerInstance 사전 정의 지표를 사용해 해당 변환의 모든 인스턴스에서 평균 70을 기준으로 조정을 수정합니다. 구성에서는 스케일 인 휴지 기간 10분과 스케일 아웃 휴지 기간 5분을 제공합니다.

{"TargetValue": 70.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }