

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

# 自動スケーリングポリシーレコメンデーションを取得する
<a name="inference-recommender-autoscaling"></a>

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

Inference Recommender は、各メトリクスの異なる値をベンチマークして、エンドポイントに最適な自動スケーリング設定を決定します。自動スケーリングレコメンデーションによって、推論レコメンデーションジョブで定義された各メトリクスの推奨オートスケーリングポリシーが返されます。このポリシーを保存し、[PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) API を使用してエンドポイントに適用できます。

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

## 前提条件
<a name="inference-recommender-autoscaling-prereqs"></a>

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

レコメンデーションジョブ ID またはエンドポイント名を取得するには、SageMaker AI コンソールで推論レコメンデーションジョブの詳細を表示するか、[DescribeInferenceRecommendationsJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceRecommendationsJob.html) API によって返される `RecommendationId` または `EndpointName` フィールドを使用します。

## 自動スケーリング設定レコメンデーションを作成する
<a name="inference-recommender-autoscaling-create"></a>

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

次の例は、[GetScalingConfigurationRecommendation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetScalingConfigurationRecommendation.html) 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}}
    }
}
```

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

## 自動スケーリング設定の推奨結果を確認する
<a name="inference-recommender-autoscaling-review"></a>

次の例は、[GetScalingConfigurationRecommendation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetScalingConfigurationRecommendation.html) 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
                } 
            }
        ]
    }
}
```

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

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

`DynamicScalingConfiguration` オブジェクトは、[PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) API を呼び出すと、[TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html#autoscaling-PutScalingPolicy-request-TargetTrackingScalingPolicyConfiguration) に指定する必要がある値を返します。これには、推奨される最小容量と最大容量の値、スケールインとスケールアウトの推奨クールダウン時間、各メトリックスに指定する必要がある推奨 `TargetValue` を含む `ScalingPolicies` オブジェクトが含まれます。