スケーリングポリシーを定義する - Amazon SageMaker

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

スケーリングポリシーを定義する

モデルにスケーリングポリシーを追加する前に、ポリシー設定を JSON ブロックとしてテキストファイルに保存します。このテキストファイルは、 AWS Command Line Interface (AWS CLI) または Application Auto Scaling API を呼び出すときに使用します。適切な CloudWatch メトリクスを選択することで、スケーリングを最適化できます。ただし、本番環境でカスタムメトリクスを使用する前に、カスタムメトリクスを使用して自動スケーリングをテストする必要があります。

このセクションでは、ターゲット追跡スケーリングポリシーのポリシー設定の例を示します。

事前定義されたメトリクスを指定する (CloudWatch メトリクス: InvocationsPerInstance)

以下は、インスタンスあたりの平均呼び出し数を 70 に維持するバリアントのターゲット追跡ポリシー設定の例です。この設定を config.json という名前のファイルに保存してください。

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" } }

詳細については、Application Auto Scaling API リファレンスTargetTrackingScalingPolicyConfigurationの「」を参照してください。

カスタムメトリクスを定義する (CloudWatch メトリクス: CPUUtilization )

カスタムメトリクスを使用してターゲット追跡スケーリングポリシーを作成するには、メトリクスの名前、名前空間、単位、統計、およびゼロ以上のディメンションを指定します。ディメンションには、そのディメンションの名前と値を含みます。容量に比例して変化する本番稼働用バリアントメトリクスを使用できます。

次の設定例は、カスタムメトリクスを使用したターゲット追跡スケーリングポリシーを示しています。このポリシーは、すべてのインスタンスの平均 CPU 使用率 50% に基づいてバリアントをスケーリングします。この設定を config.json という名前のファイルに保存してください。

{ "TargetValue": 50.0, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Average", "Unit": "Percent" } }

詳細については、Application Auto Scaling API リファレンスCustomizedMetricSpecificationの「」を参照してください。

カスタムメトリクスを定義する (CloudWatch メトリクス: ExplanationsPerInstance)

エンドポイントでオンライン説明可能性が有効になっている場合、バリアントについて、インスタンスごとに 1 分あたりに説明された平均レコード数を出力するExplanationsPerInstanceメトリクスを発行します。レコードを説明するリソース使用率は、レコードを予測する場合と大きく異なることがあります。オンライン説明可能性が有効になっているエンドポイントのターゲット追跡スケーリングには、このメトリクスを使用することを強くお勧めします。

スケーラブルターゲットに対して複数のターゲット追跡ポリシーを作成できます。( InvocationsPerInstance ポリシーに加えて) 事前定義されたメトリクスを指定する (CloudWatch メトリクス: InvocationsPerInstance)セクションからExplanationsPerInstanceポリシーを追加することを検討してください。EnableExplanations パラメータでしきい値が設定されたためにほとんどの呼び出しが説明を返さない場合、エンドポイントはInvocationsPerInstanceポリシーを選択できます。多数の説明がある場合、エンドポイントは ExplanationsPerInstance ポリシーを使用できます。

次の設定例は、カスタムメトリクスを使用したターゲット追跡スケーリングポリシーを示しています。ポリシースケールは、各インスタンスの ExplanationsPerInstanceメトリクスが 20 になるようにバリアントインスタンスの数を調整します。この設定を config.json という名前のファイルに保存してください。

{ "TargetValue": 20.0, "CustomizedMetricSpecification": { "MetricName": "ExplanationsPerInstance", "Namespace": "AWS/SageMaker", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Sum" } }

詳細については、Application Auto Scaling API リファレンスCustomizedMetricSpecificationの「」を参照してください。

クールダウン期間を指定する

オプションで、 ScaleOutCooldownおよび ScaleInCooldownパラメータを指定して、ターゲット追跡スケーリングポリシーでクールダウン期間を定義できます。

以下は、インスタンスあたりの平均呼び出し数を 70 に維持するバリアントのターゲット追跡ポリシー設定の例です。ポリシー設定は、スケールインクールダウン期間を 10 分 (600 秒)、スケールアウトクールダウン期間を 5 分 (300 秒) に指定します。この設定を config.json という名前のファイルに保存してください。

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }

詳細については、Application Auto Scaling API リファレンスTargetTrackingScalingPolicyConfigurationの「」を参照してください。