自動スケーリングポリシーレコメンデーションを取得する - Amazon SageMaker

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

自動スケーリングポリシーレコメンデーションを取得する

Amazon SageMaker Inference Recommender を使用すると、予想されるトラフィックパターンに基づいて SageMaker エンドポイントの自動スケーリングポリシーのレコメンデーションを取得できます。推論レコメンデーションジョブをすでに完了している場合は、ジョブの詳細を指定して、エンドポイントに適用できる自動スケーリングポリシーのレコメンデーションを取得できます。

Inference Recommender は、各メトリクスの異なる値をベンチマークして、エンドポイントに最適な自動スケーリング設定を決定します。自動スケーリングレコメンデーションによって、推論レコメンデーションジョブで定義された各メトリクスの推奨オートスケーリングポリシーが返されます。ポリシーを保存し、 PutScalingPolicy を使用してエンドポイントに適用できますAPI。

開始するには、以下の前提条件を参照してください。

前提条件

開始する前に、成功した推論レコメンデーションジョブを完了している必要があります。次のセクションでは、推論レコメンデーション ID または推論レコメンデーションジョブ中にベンチマークされた SageMaker エンドポイントの名前を指定できます。

レコメンデーションジョブ ID またはエンドポイント名を取得するには、 SageMaker コンソールで推論レコメンデーションジョブの詳細を表示するか、 によって返される RecommendationId または DescribeInferenceRecommendationsJob EndpointNameフィールドを使用できますAPI。

自動スケーリング設定レコメンデーションを作成する

自動スケーリングレコメンデーションポリシーを作成するには、 AWS SDK for Python (Boto3)を使用します。

次の例は、 GetScalingConfigurationRecommendation のフィールドを示していますAPI。を呼び出すときは、次のフィールドを使用しますAPI。

  • InferenceRecommendationsJobName — 推論レコメンデーションジョブの名前を入力します。

  • RecommendationId — レコメンデーションジョブの推論レコメンデーションの ID を入力します。EndpointName フィールドを指定した場合、これはオプションです。

  • EndpointName — 推論レコメンデーションジョブ中にベンチマークされたエンドポイントの名前を入力します。RecommendationId フィールドを指定した場合、これはオプションです。

  • TargetCpuUtilizationPerCore — (オプション) 自動スケーリング前にエンドポイント上のインスタンスが使用する使用率のパーセント値を入力します。このフィールドを指定しない場合のデフォルト値は 50%です。

  • ScalingPolicyObjective — (オプション) 予想されるトラフィックパターンを指定するオブジェクト。

    • MinInvocationsPerMinute — (オプション) エンドポイントへの 1 分あたりの予想リクエストの最小数。

    • MaxInvocationsPerMinute — (オプション) エンドポイントへの 1 分あたりの予想リクエストの最大数。

{ "InferenceRecommendationsJobName": "string", // Required "RecommendationId": "string", // Optional, provide one of RecommendationId or EndpointName "EndpointName": "string", // Optional, provide one of RecommendationId or EndpointName "TargetCpuUtilizationPerCore": number, // Optional "ScalingPolicyObjective": { // Optional "MinInvocationsPerMinute": number, "MaxInvocationsPerMinute": number } }

リクエストの送信後、各メトリクスに定義された自動スケーリングポリシーを含むレスポンスを受信します。レスポンスの解釈の詳細については、以下のセクションを参照してください。

自動スケーリング設定の推奨結果を確認する

次の例は、 GetScalingConfigurationRecommendation からのレスポンスを示していますAPI。

{ "InferenceRecommendationsJobName": "string", "RecommendationId": "string", // One of RecommendationId or EndpointName is shown "EndpointName": "string", "TargetUtilizationPercentage": Integer, "ScalingPolicyObjective": { "MinInvocationsPerMinute": Integer, "MaxInvocationsPerMinute": Integer }, "Metric": { "ModelLatency": Integer, "InvocationsPerInstance": Integer }, "DynamicScalingConfiguration": { "MinCapacity": number, "MaxCapacity": number, "ScaleInCooldown": number, "ScaleOutCooldown": number, "ScalingPolicies": [ { "TargetTracking": { "MetricSpecification": { "Predefined" { "PredefinedMetricType": "string" }, "Customized": { "MetricName": "string", "Namespace": "string", "Statistic": "string" } }, "TargetValue": Double } } ] } }

InferenceRecommendationsJobNameRecommendationID または EndpointNameTargetCpuUtilizationPerCore、および ScalingPolicyObjective のオブジェクトフィールドは、初回のリクエストからコピーされます。

Metric オブジェクトには、推論レコメンデーションジョブでベンチマークされたメトリクスと、インスタンスの使用率が TargetCpuUtilizationPerCore 値と同じになる場合の各メトリクスの値の計算が一覧表示されます。これは、推奨されている自動スケーリングポリシーを使用してエンドポイントがスケールイン/スケールアウトするときに、エンドポイントのパフォーマンスメトリクスを予測するのに役立ちます。たとえば、推論レコメンデーションジョブでインスタンスの使用率が 50% で、InvocationsPerInstance 値がもとは 4 だったとします。自動スケーリングレコメンデーションリクエストで TargetCpuUtilizationPerCore 値を 100% に指定した場合、2 倍のインスタンス使用率を割り当てると予想していたため、レスポンスで返される InvocationsPerInstance メトリクス値は 2 になります。

DynamicScalingConfiguration オブジェクトは、 を呼び出すTargetTrackingScalingPolicyConfigurationときに に指定する値を返しますPutScalingPolicyAPI。これには、推奨される最小容量と最大容量の値、スケールインとスケールアウトの推奨クールダウン時間、各メトリックスに指定する必要がある推奨 TargetValue を含む ScalingPolicies オブジェクトが含まれます。