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

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

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

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

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

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

자동 확장에 사용되는 기타 사전 요구 사항 및 구성 요소에 대한 자세한 내용은 자동 확장 설명서의 섹션을 참조하십시오. 오토 스케일링 개요 SageMaker

모델 등록

프로비저닝된 동시성을 사용하여 서버리스 엔드포인트에 자동 크기 조정을 추가하려면 먼저 Application Auto AWS CLI 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 Scaling API)

모델을 등록하려면 다음 파라미터와 함께 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 CLI 또는 Application Auto Scaling API를 사용하여 프로비저닝된 동시성을 사용하는 서버리스 엔드포인트에 대상 추적 조정 정책을 적용할 수 있습니다. AWS Management Console

대상 추적 스케일링 정책 적용(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 Scaling API)

모델에 스케일링 정책을 적용하려면 다음 파라미터와 함께 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(이)라는 이름의 스케일링 작업을 추가하는 방법을 보여줍니다. 지정된 일정(UTC 기준 매일 오후 12시 15분)에서 현재 프로비저닝된 동시성이 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 Scaling API)

모델에 스케일링 정책을 적용하려면 다음 파라미터와 함께 PutScheduledAction Application Auto Scaling API 작업을 사용하세요.

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

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

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

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

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

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

다음 예제에서는 반복 일정에 따라 MyVariant(이)라는 이름의 모델에 MyScalingAction(이)라는 이름의 스케일링 작업을 추가하는 방법을 보여줍니다. 지정된 일정(UTC 기준 매일 오후 12시 15분)에서 현재 프로비저닝된 동시성이 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" } } }

스케일링 정책 삭제

AWS Management Console AWS CLI, 또는 Application Auto Scaling API를 사용하여 조정 정책을 삭제할 수 있습니다. 를 사용하여 조정 정책을 삭제하는 방법에 대한 자세한 내용은 SageMaker 자동 크기 조정 설명서를 참조하십시오스케일링 정책 삭제. AWS Management Console

스케일링 정책 삭제(AWS CLI)

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

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

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

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

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

다음 예제에서는 MyVariant(이)라는 이름의 모델에서 MyScalingPolicy(이)라는 이름의 스케일링 정책을 삭제합니다.

aws application-autoscaling delete-scaling-policy \ --policy-name MyScalingPolicy \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

스케일링 정책 삭제(Application Auto Scaling API)

모델에서 스케일링 정책을 삭제하려면 다음 파라미터와 함께 DeleteScalingPolicy Application Auto Scaling API 작업을 사용하세요.

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

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

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

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

다음 예제에서는 Application Auto Scaling API를 사용하여 MyVariant(이)라는 이름의 모델에서 MyScalingPolicy(이)라는 이름의 스케일링 정책을 삭제합니다.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy 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", }

모델 등록 취소

AWS Management Console AWS CLI, 또는 Application Auto Scaling API를 사용하여 모델 등록을 취소할 수 있습니다.

모델 등록 취소(AWS CLI)

Application Auto Scaling에서 모델 등록을 취소하려면 다음 파라미터와 함께 deregister-scalable-target AWS CLI; 명령을 사용하세요.

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

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

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

다음 예제에서는 Application Auto Scaling에서 MyVariant(이)라는 이름의 모델에 대한 등록을 취소합니다.

aws application-autoscaling deregister-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant

모델 등록 취소(Application Auto Scaling API)

Application Auto Scaling에서 모델의 등록을 취소하려면 다음 파라미터와 함께 DeregisterScalableTarget Application Auto Scaling API 작업을 사용하세요.

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

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

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

다음 예제에서는 Application Auto Scaling API를 사용하여 Application Auto Scaling에서 MyVariant(이)라는 이름의 모델에 대한 등록을 취소합니다.

POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.DeregisterScalableTarget 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", }

모델 등록 취소(AWS Management Console)

다음을 사용하여 모델 (프로덕션 변형) 등록을 취소하려면: AWS Management Console

  1. Amazon SageMaker 콘솔을 엽니다.

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

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

  4. 프로덕션 변형을 호스팅할 서버리스 엔드포인트를 선택하세요. 엔드포인트의 설정이 표시되는 페이지가 나타나고, 엔드포인트 런타임 설정 섹션 아래에 프로덕션 변형이 나열되어 있습니다.

  5. 등록을 취소할 프로덕션 변형을 선택하고 Auto Scaling 구성을 선택하세요. 변형 자동 조정 구성 대화 상자가 나타납니다.

  6. 오토 스케일링 등록 취소를 선택합니다.