翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
エンドポイントをゼロインスタンスにスケールする
エンドポイントに自動スケーリングを設定すると、スケールインプロセスでサービス内インスタンスの数をゼロに減らすことができます。これにより、エンドポイントが推論リクエストを処理していないため、アクティブなインスタンスを必要としない期間にコストを節約できます。
ただし、ゼロインスタンスにスケールインした後、エンドポイントは少なくとも 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
に置き換えます。このコマンドとその各パラメータの詳細については、register-scalable-targetAWS CLI 「 コマンドリファレンス」の「」を参照してください。
-
次のコマンドに示すように、ターゲット追跡ポリシーを推論コンポーネントに適用します。
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 }
追跡ポリシー設定の例については、「」を参照してくださいスケーリングポリシーを定義する。
このコマンドとその各パラメータの詳細については、put-scaling-policyAWS CLI 「 コマンドリファレンス」の「」を参照してください。
エンドポイントがゼロインスタンスからスケールアウトできるようにするには (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この例では、 をステップスケーリングポリシーARNの
step-scaling-policy-arn
に置き換えます。を任意の名前ic-step-scaling-alarm
に置き換えます。を推論コンポーネントの名前inference-component-name
に置き換えます。この例では、
--metric-name
パラメータを に設定しますNoCapacityInvocationFailures
。 SageMaker AI は、エンドポイントが推論リクエストを受信しても、エンドポイントにリクエストを処理するアクティブなインスタンスがない場合に、このメトリクスを送信します。そのイベントが発生すると、アラームは前のステップでステップスケーリングポリシーを開始します。このコマンドとその各パラメータの詳細については、put-metric-alarmAWS CLI 「 コマンドリファレンス」の「」を参照してください。