翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
エンドポイントをゼロインスタンスにスケールする
エンドポイントの自動スケーリングを設定すると、スケールインプロセスでサービス内インスタンスの数をゼロに減らすことができます。これにより、エンドポイントが推論リクエストを処理していないため、アクティブなインスタンスを必要としない期間にコストを節約できます。
ただし、ゼロインスタンスにスケールインした後、エンドポイントは少なくとも 1 つのインスタンスをプロビジョニングするまで、受信推論リクエストに応答できません。プロビジョニングプロセスを自動化するには、Application Auto Scaling を使用してステップスケーリングポリシーを作成します。次に、Amazon CloudWatch アラームにポリシーを割り当てます。
ステップスケーリングポリシーとアラームを設定すると、エンドポイントは、応答できない推論リクエストを受け取った直後にインスタンスを自動的にプロビジョニングします。プロビジョニングプロセスには数分かかることに注意してください。その間、エンドポイントを呼び出そうとするとエラーが発生します。
次の手順では、エンドポイントがゼロインスタンスにスケールインおよびスケールアウトするように、エンドポイントの自動スケーリングを設定する方法について説明します。この手順では、 で コマンドを使用します AWS CLI。
[開始する前に]
エンドポイントがゼロインスタンスにスケールインまたはスケールアウトする前に、次の要件を満たす必要があります。
-
これは稼働中です。
-
1 つ以上の推論コンポーネントをホストします。エンドポイントは、推論コンポーネントをホストしている場合にのみ、ゼロインスタンスに対してスケーリングできます。
SageMaker AI エンドポイントで推論コンポーネントをホストする方法については、「」を参照してくださいリアルタイム推論用のモデルをデプロイする。
-
エンドポイント設定で、本番稼働用バリアント
ManagedInstanceScaling
オブジェクトのMinInstanceCount
パラメータを に設定しました0
。このパラメータのリファレンス情報については、「ProductionVariantManagedInstanceScaling」を参照してください。
エンドポイントがゼロインスタンスにスケールインできるようにするには (AWS CLI)
エンドポイントがホストする推論コンポーネントごとに、次の操作を行います。
-
推論コンポーネントをスケーラブルターゲットとして登録します。登録するときは、次のコマンドに示すように
0
、最小容量を に設定します。aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --resource-id inference-component/
inference-component-name
\ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --min-capacity 0 \ --max-capacityn
この例では、
inference-component-name
を推論コンポーネントの名前に置き換えます。n
を、スケールアウト時にプロビジョニングする推論コンポーネントコピーの最大数に置き換えます。このコマンドとその各パラメータの詳細については、AWS CLI 「 コマンドリファレンス」のregister-scalable-target」を参照してください。
-
次のコマンドに示すように、ターゲット追跡ポリシーを推論コンポーネントに適用します。
aws application-autoscaling put-scaling-policy \ --policy-name my-scaling-policy \ --policy-type TargetTrackingScaling \ --resource-id inference-component/
inference-component-name
\ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.jsonこの例では、
inference-component-name
を推論コンポーネントの名前に置き換えます。この例では、
config.json
ファイルには次のようなターゲット追跡ポリシー設定が含まれています。{ "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }
追跡ポリシー設定の例については、「」を参照してくださいスケーリングポリシーを定義する。
このコマンドとその各パラメータの詳細については、AWS CLI 「 コマンドリファレンス」のput-scaling-policy」を参照してください。
エンドポイントがゼロインスタンスからスケールアウトできるようにするには (AWS CLI)
エンドポイントがホストする推論コンポーネントごとに、次の操作を行います。
-
次のコマンドに示すように、推論コンポーネントにステップスケーリングポリシーを適用します。
aws application-autoscaling put-scaling-policy \ --policy-name
my-scaling-policy
\ --policy-type StepScaling \ --resource-id inference-component/inference-component-name
\ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.jsonこの例では、
my-scaling-policy
をポリシーの一意の名前に置き換えます。inference-component-name
を推論コンポーネントの名前に置き換えます。この例では、
config.json
ファイルには次のようなステップスケーリングポリシー設定が含まれています。{ "AdjustmentType": "ChangeInCapacity", "MetricAggregationType": "Maximum", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ] }
このステップスケーリングポリシーがトリガーされると、SageMaker AI は推論コンポーネントのコピーをサポートするために必要なインスタンスをプロビジョニングします。
ステップスケーリングポリシーを作成したら、その Amazon リソースネーム (ARN) を書き留めます。次のステップでは、CloudWatch アラームの ARN が必要です。
ステップスケーリングポリシーの詳細については、「Application Auto Scaling ユーザーガイド」の「ステップスケーリングポリシー」を参照してください。
-
次の例に示すように、CloudWatch アラームを作成し、ステップスケーリングポリシーを割り当てます。
aws cloudwatch put-metric-alarm \ --alarm-actions
step-scaling-policy-arn
\ --alarm-description "Alarm when SM IC endpoint invoked that has 0 instances." \ --alarm-nameic-step-scaling-alarm
\ --comparison-operator GreaterThanThreshold \ --datapoints-to-alarm 1 \ --dimensions "Name=InferenceComponentName,Value=inference-component-name
" \ --evaluation-periods 1 \ --metric-name NoCapacityInvocationFailures \ --namespace AWS/SageMaker \ --period 60 \ --statistic Sum \ --threshold 1この例では、
step-scaling-policy-arn
をステップスケーリングポリシーの ARN に置き換えます。ic-step-scaling-alarm
を任意の名前に置き換えます。inference-component-name
を推論コンポーネントの名前に置き換えます。この例では、
--metric-name
パラメータを に設定しますNoCapacityInvocationFailures
。SageMaker AI は、エンドポイントが推論リクエストを受信しても、エンドポイントにリクエストを処理するためのアクティブなインスタンスがない場合に、このメトリクスを出力します。そのイベントが発生すると、アラームは前のステップでステップスケーリングポリシーを開始します。このコマンドとその各パラメータの詳細については、AWS CLI 「 コマンドリファレンス」のput-metric-alarm」を参照してください。