서버리스 엔드포인트에 맞게 프로비저닝된 동시성의 자동 확장 - Amazon SageMaker

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

서버리스 엔드포인트에 맞게 프로비저닝된 동시성의 자동 확장

Amazon은 온디맨드 서버리스 엔드포인트를 SageMaker 자동으로 확장하거나 축소합니다. 동시성이 프로비저닝된 서버리스 엔드포인트의 경우 Application Auto Scaling을 사용하면, 트래픽 프로필을 기준으로 프로비저닝된 동시성을 확장하거나 축소하여 비용을 최적화할 수 있습니다.

서버리스 엔드포인트의 프로비저닝된 동시성을 자동 확장하기 위한 사전 조건은 다음과 같습니다.

Auto Scaling을 사용하기 위해서는 먼저 동시성 프로비저닝을 이용해 서버리스 엔드포인트에 모델을 이미 배포한 상태여야 합니다. 배포된 모델을 프로덕션 변형이라고 합니다. 동시성 프로비저닝을 이용하여 서버리스 엔드포인트에 모델을 배포하는 방법에 대한 자세한 내용은 엔드포인트 구성 생성엔드포인트 생성을(를) 참조하세요. 스케일링 정책의 지표 및 대상 값을 지정하려면 스케일링 정책을 구성해야 합니다. 스케일링 정책을 정의하는 방법에 대한 자세한 내용은 스케일링 정책 정의을(를) 참조하세요. 모델을 등록하고 스케일링 정책을 정의한 이후 등록된 모델에 스케일링 정책을 적용합니다. 스케일링 정책을 적용하는 방법에 대한 자세한 내용은 스케일링 정책 적용을(를) 참조하세요.

오토스케일링에 사용되는 기타 사전 조건 및 구성 요소에 대한 자세한 내용은 오토스케일링 설명서의 Auto Scaling 사전 조건 섹션을 참조하세요. SageMaker

모델 등록

프로비저닝된 동시성을 사용하여 서버리스 엔드포인트에 오토스케일링을 추가하려면 먼저 AWS CLI 또는 Application Auto Scaling을 사용하여 모델(프로덕션 변형)을 등록해야 합니다API.

모델 등록(AWS CLI)

모델을 등록하려면 다음 파라미터와 함께 register-scalable-target AWS CLI 명령을 사용합니다.

  • --service-namespace – 이 값을 로 설정하세요.sagemaker

  • --resource-id - 모델(특히 프로덕션 변형)의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 프로덕션 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • --scalable-dimension – 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • --min-capacity - 모델에 맞게 프로비저닝된 동시성의 최소 개수. --min-capacity를 1 이상으로 설정합니다. --max-capacity에 대해 지정된 값과 같거나 이보다 작아야 합니다.

  • --max-capacity - Application Auto Scaling을 통한 활성화의 대상인 프로비저닝된 동시성의 최대 개수. --max-capacity을(를) 최소 1 이상으로 설정하세요. 이 값은 --min-capacity에 대해 지정된 값과 같거나 그보다 커야 합니다.

다음 예제는 MyVariant(이)라는 이름의 모델(프로비저닝된 동시성 값이 1~10이 되도록 동적 조정됨)을 등록하는 방법을 보여줍니다.

aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --min-capacity 1 \ --max-capacity 10

모델 등록(Application Auto ScalingAPI)

모델을 등록하려면 다음 파라미터와 함께 RegisterScalableTarget Application Auto Scaling API 작업을 사용합니다.

  • ServiceNamespace – 이 값을 로 설정하세요.sagemaker

  • ResourceId - 모델(특히 프로덕션 변형)의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 프로덕션 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • ScalableDimension – 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • MinCapacity - 모델에 맞게 프로비저닝된 동시성의 최소 개수. MinCapacity를 1 이상으로 설정합니다. MaxCapacity에 대해 지정된 값과 같거나 이보다 작아야 합니다.

  • MaxCapacity - Application Auto Scaling을 통한 활성화의 대상인 프로비저닝된 동시성의 최대 개수. MaxCapacity을(를) 최소 1 이상으로 설정하세요. 이 값은 MinCapacity에 대해 지정된 값과 같거나 그보다 커야 합니다.

다음 예제는 MyVariant(이)라는 이름의 모델(프로비저닝된 동시성 값이 1~10이 되도록 동적 조정됨)을 등록하는 방법을 보여줍니다.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndPoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "MinCapacity": 1, "MaxCapacity": 10 }

스케일링 정책 정의

스케일링 정책의 지표 및 대상 값을 지정하려면 대상 추적 스케일링 정책을 구성하면 됩니다. 크기 조정 정책을 텍스트 파일의 JSON 블록으로 정의합니다. 그런 다음 AWS CLI 또는 Application Auto Scaling을 호출할 때 해당 텍스트 파일을 사용할 수 있습니다API. 서버리스 엔드포인트에 대한 대상 추적 스케일링 정책을 빠르게 정의하려면 사전 정의 지표 SageMakerVariantProvisionedConcurrencyUtilization을(를) 사용하세요.

{ "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" }, "ScaleOutCooldown": 1, "ScaleInCooldown": 1 }

스케일링 정책 적용

모델을 등록하고 나면 동시성 프로비저닝으로 서버리스 엔드포인트에 스케일링 정책을 적용할 수 있습니다. 정의한 대상 추적 스케일링 정책을 적용하려면 대상 추적 스케일링 정책 적용을(를) 참조하세요. 서버리스 엔드포인트로 향하는 트래픽 흐름에 예측 가능한 루틴이 있다면 대상 추적 스케일링 정책을 적용하는 대신, 특정 시간에 스케일링 작업을 예약하는 것이 좋습니다. 스케일링 작업 예약에 대한 자세한 내용은 예약된 조정을(를) 참조하세요.

대상 추적 스케일링 정책 적용

또는 AWS Management Console AWS CLI Application Auto ScalingAPI을 사용하여 프로비저닝된 동시성을 사용하여 서버리스 엔드포인트에 대상 추적 조정 정책을 적용할 수 있습니다.

대상 추적 스케일링 정책 적용(AWS CLI)

모델에 스케일링 정책을 적용하려면 다음 파라미터와 함께 put-scaling-policy AWS CLI; 명령을 사용하세요.

  • --policy-name – 조정 정책의 이름입니다.

  • --policy-type - 이 값을 로 설정하세요.TargetTrackingScaling

  • --resource-id - 변형의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • --service-namespace - 이 값을 로 설정하세요.sagemaker

  • --scalable-dimension - 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • --target-tracking-scaling-policy-configuration - 모델에 사용할 대상 추적 스케일링 정책 구성.

다음 예제에서는 MyScalingPolicy(이)라는 이름의 대상 추적 스케일링 정책을 MyVariant(이)라는 이름의 모델에 적용하는 방법을 보여줍니다. 정책 구성은 scaling-policy.json파일로 저장됩니다.

aws application-autoscaling put-scaling-policy \ --policy-name MyScalingPolicy \ --policy-type TargetTrackingScaling \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --target-tracking-scaling-policy-configuration file://[file-localtion]/scaling-policy.json

대상 추적 조정 정책 적용(Application Auto ScalingAPI)

모델에 조정 정책을 적용하려면 다음 파라미터와 함께 PutScalingPolicy Application Auto Scaling API 작업을 사용합니다.

  • PolicyName – 조정 정책의 이름입니다.

  • PolicyType - 이 값을 로 설정하세요.TargetTrackingScaling

  • ResourceId - 변형의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • ServiceNamespace - 이 값을 로 설정하세요.sagemaker

  • ScalableDimension - 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • TargetTrackingScalingPolicyConfiguration - 모델에 사용할 대상 추적 스케일링 정책 구성.

다음 예제에서는 MyScalingPolicy(이)라는 이름의 대상 추적 스케일링 정책을 MyVariant(이)라는 이름의 모델에 적용하는 방법을 보여줍니다. 정책 구성은 scaling-policy.json파일로 저장됩니다.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "MyScalingPolicy", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" } } }

대상 추적 스케일링 정책 적용(AWS Management Console)

를 사용하여 대상 추적 조정 정책을 적용하려면 AWS Management Console:

  1. Amazon SageMaker 콘솔 에 로그인합니다.

  2. 탐색 창에서 추론을 선택하세요.

  3. 모든 엔드포인트의 목록을 보려면 엔드포인트를 선택하세요.

  4. 스케일링 정책을 적용할 엔드포인트를 선택하세요. 엔드포인트의 설정을 보여주는 페이지가 나타나고, 엔드포인트 런타임 설정 섹션 아래에 모델(프로덕션 변형)이 나열됩니다.

  5. 스케일링 정책을 적용할 프로덕션 변형을 선택하고 Auto Scaling 구성을 선택하세요. 변형 자동 조정 구성 대화 상자가 나타납니다.

    콘솔에 표시된 변형 자동 조정 구성 대화 상자의 스크린샷.
  6. 변형 자동 조정 섹션의 최소 프로비저닝된 동시성 필드 및 최대 프로비저닝된 동시성 필드에 프로비저닝된 동시성의 최솟값 및 최댓값을 각각 입력하세요. 최소 프로비저닝된 동시성은 최대 프로비저닝된 동시성과 같거나 그보다 작아야 합니다.

  7. 대상 지표, SageMakerVariantProvisionedConcurrencyUtilization대상 값 필드에 대상 값을 입력하세요.

  8. (선택 사항) 쿨다운 축소 필드 및 쿨다운 확장 필드에 쿨다운 축소 값 및 쿨다운 확장 값(단위: 초)을 각각 입력하세요.

  9. (선택 사항) 트래픽이 감소할 때 Auto Scaling에서 인스턴스를 삭제하지 않게 하려면 축소 비활성화를 선택하세요.

  10. 저장을 선택합니다.

예약된 조정

동시성이 프로비저닝된 서버리스 엔드포인트로 향하는 트래픽이 일상적인 패턴을 따르는 경우, 프로비저닝된 동시성을 확장 또는 축소할 수 있도록 특정 시간에 스케일링 작업을 예약하는 것이 좋습니다. AWS CLI 또는 Application Auto Scaling을 사용하여 조정 작업을 예약할 수 있습니다.

스케일링 예약(AWS CLI)

모델에 조정 정책을 적용하려면 다음 파라미터와 함께 put-scheduled-action AWS CLI; 명령을 사용합니다.

  • --schedule-action-name - 스케일링 작업의 이름.

  • --schedule - 반복 일정에 따라 스케일링 작업의 시작 및 종료 시간을 지정하는 cron 표현식.

  • --resource-id - 변형의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • --service-namespace - 이 값을 로 설정하세요.sagemaker

  • --scalable-dimension - 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • --scalable-target-action - 스케일링 작업의 대상.

다음 예제에서는 반복 일정에 따라 MyVariant(이)라는 이름의 모델에 MyScalingAction(이)라는 이름의 스케일링 작업을 추가하는 방법을 보여줍니다. 현재 프로비저닝된 동시성이 에 지정된 값보다 낮은 경우 지정된 일정(매일 오후 12:15UTC)에 MinCapacity Application Auto Scaling은 프로비저닝된 동시성을 MinCapacity에서 지정한 값으로 확장합니다.

aws application-autoscaling put-scheduled-action \ --scheduled-action-name 'MyScalingAction' \ --schedule 'cron(15 12 * * ? *)' \ --service-namespace sagemaker \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --scalable-target-action 'MinCapacity=10'

예약된 크기 조정(Application Auto ScalingAPI)

모델에 조정 정책을 적용하려면 다음 파라미터와 함께 PutScheduledAction Application Auto Scaling API 작업을 사용합니다.

  • ScheduleActionName – 스케일링 작업의 이름.

  • Schedule - 반복 일정에 따라 스케일링 작업의 시작 및 종료 시간을 지정하는 cron 표현식.

  • ResourceId - 변형의 리소스 식별자. 이 파라미터에서 리소스 유형은 endpoint이고 고유 식별자는 변형의 이름입니다. 예: endpoint/MyEndpoint/variant/MyVariant.

  • ServiceNamespace - 이 값을 로 설정하세요.sagemaker

  • ScalableDimension - 이 값을 로 설정하세요.sagemaker:variant:DesiredProvisionedConcurrency

  • ScalableTargetAction - 스케일링 작업의 대상.

다음 예제에서는 반복 일정에 따라 MyVariant(이)라는 이름의 모델에 MyScalingAction(이)라는 이름의 스케일링 작업을 추가하는 방법을 보여줍니다. 현재 프로비저닝된 동시성이 에 지정된 값보다 낮은 경우 지정된 일정(매일 오후 12:15UTC)에 MinCapacity Application Auto Scaling은 프로비저닝된 동시성을 MinCapacity에서 지정한 값으로 확장합니다.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScheduledAction X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ScheduledActionName": "MyScalingAction", "Schedule": "cron(15 12 * * ? *)", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "ScalableTargetAction": "MinCapacity=10" } } }