サーバーレスエンドポイントのプロビジョニングされた同時実行の自動スケール - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サーバーレスエンドポイントのプロビジョニングされた同時実行の自動スケール

Amazon SageMaker はオンデマンドのサーバーレスエンドポイントを自動的にスケールインまたはスケールアウトします。プロビジョニングされた同時実行を使用するサーバーレスエンドポイントでは、Application Auto Scaling を使用して、トラフィックプロファイルに基づいてプロビジョニングされた同時実行をスケールアップまたはスケールダウンできるため、コストを最適化できます。

サーバーレスエンドポイントでプロビジョニングされた同時実行を自動スケールするための前提条件は次のとおりです。

自動スケーリングを使用する前に、プロビジョニングされた同時実行を使用してサーバーレスエンドポイントにモデルをデプロイしておく必要があります。デプロイされたモデルは、本番稼動用バリアントと呼ばれます。プロビジョ二ングされた同時実行を使用したサーバーレスエンドポイントにモデルをデプロイする方法の詳細については、「エンドポイント設定を作成する」および「エンドポイントを作成する」を参照してください。スケーリングポリシーのメトリクスとターゲット値を指定するには、スケーリングポリシーを設定する必要があります。スケーリングポリシーを定義する方法の詳細については、「スケーリングポリシーを定義する」を参照してください。モデルを登録してスケーリングポリシーを定義した後に、そのスケーリングポリシーを登録されたモデルに適用します。スケーリングポリシーを適用する方法の詳細については、「スケーリングポリシーを適用する」を参照してください。

自動スケーリングで使用されるその他の前提条件とコンポーネントの詳細については、自動スケーリングドキュメントのセクションを参照してください。Auto Scaling の概要 SageMaker

モデルの登録

プロビジョニングされた同時実行機能を使用してサーバーレスエンドポイントに自動スケーリングを追加するには、まずApplication Auto Scaling API AWS CLI を使用してモデル(プロダクションバリアント)を登録する必要があります。

モデルの登録 (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 で指定した値以上にする必要があります。

次の例は、プロビジョニングされた同時実行の値が 1~10 になるように動的にスケールされる、MyVariant という名前のモデルを登録する方法を示します。

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 で指定した値以上にする必要があります。

次の例は、プロビジョニングされた同時実行の値が 1~10 になるように動的にスケールされる、MyVariant という名前のモデルを登録する方法を示します。

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 またはアプリケーションの Auto Scaling API を使用して、プロビジョニングされた同時実行機能を備えたサーバーレスエンドポイントにターゲット追跡スケーリングポリシーを適用できます。

ターゲット追跡スケーリングポリシーの適用 (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. スケーリングポリシーを適用する本番稼働用バリアントを選択し、[自動スケーリングの設定] を選択します。[バリアントの自動スケーリングの設定] ダイアログボックスが表示されます。

    コンソールのバリアントの自動スケーリングの設定ダイアログボックスのスクリーンショット。
  6. プロビジョニングされた同時実行の最小値と最大値を、[バリアントの自動スケーリング] セクションの [プロビジョニングされた同時実行の最小値] フィールドと [プロビジョニングされた同時実行の最大値] フィールドに、それぞれ入力します。プロビジョニングされた同時実行の最小値は、プロビジョニングされた同時実行の最大値以下である必要があります。

  7. ターゲットメトリクス SageMakerVariantProvisionedConcurrencyUtilization[ターゲット値] フィールドに、ターゲット値を入力します。

  8. (オプション) [スケールインクールダウン] フィールドと [スケールアウトクールダウン] フィールドに、スケールインクールダウンとスケールアウトクールダウンの値 (秒) をそれぞれ入力します。

  9. (オプション) トラフィックが減少したときに自動スケーリングでインスタンスが削除されないようにするには、[スケールインを無効にする] を選択します。

  10. [Save] を選択します。

スケジュールされたスケーリング

プロビジョニングされた同時実行を使用するサーバーレスエンドポイントへのトラフィックがルーチンパターンに従っている場合は、特定の時間にスケーリングアクションをスケジュールして、プロビジョニングされた同時実行をスケールインまたはスケールアウトする場合があります。 AWS CLI またはアプリケーションの 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:15 UTC) で、現在のプロビジョニングされた同時実行が 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 という名前のスケーリングアクションを定期的なスケジュールで追加する方法を示しています。指定されたスケジュール (毎日午後 12:15 UTC) で、現在のプロビジョニングされた同時実行が 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、またはアプリケーション Auto Scaling API を使用してスケーリングポリシーを削除できます。を使用してスケーリングポリシーを削除する方法の詳細については AWS Management Console、SageMaker 自動スケーリングドキュメントのを参照してくださいスケーリングポリシーを削除する

スケーリングポリシーを削除する (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 CLI、またはApplication Auto Scaling API を使用してモデルの登録を解除できます。 AWS Management Console

モデルの登録解除 (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 を使用して、MyVariant という名前のモデルを Application Auto Scaling から登録解除します。

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. 登録を解除する本番稼働用バリアントを選択し、[自動スケーリングの設定] を選択します。[バリアントの自動スケーリングの設定] ダイアログボックスが表示されます。

  6. [Auto Scaling の登録解除] を選択します。