Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Automatische Skalierung der bereitgestellten Gleichzeitigkeit für einen Serverless Endpunkt
Amazon SageMaker AI skaliert bei Bedarf automatisch serverlose Endgeräte ein oder aus. Für Serverless Endpunkte mit Provisioned Concurrency können Sie Application Auto Scaling verwenden, um die bereitgestellte Parallelität basierend auf Ihrem Verkehrsprofil nach oben oder unten zu skalieren und so die Kosten zu optimieren.
Im Folgenden sind die Voraussetzungen für die automatische Skalierung von Provisioned Concurrency auf Serverless Endpunkten aufgeführt:
Bevor Sie Autoscaling verwenden können, müssen Sie bereits ein Modell auf einem Serverless Endpunkt mit Provisioned Concurrency bereitgestellt haben. Eingesetzte Modelle werden als Produktionsvarianten bezeichnet. Weitere Informationen zur Bereitstellung eines Modells auf einem Serverless Endpunkt mit Provisioned Concurrency finden Sie unter Eine Endpunktkonfiguration erstellen und Endpunkt herstellen. Um die Metriken und Zielwerte für eine Skalierungsrichtlinie festzulegen, müssen Sie eine Skalierungsrichtlinie konfigurieren. Weitere Informationen zum Definieren einer Skalierungsrichtlinie finden Sie unter Definieren einer Skalierungsrichtlinie. Registrieren Sie Ihr Modell und legen Sie eine Skalierungsrichtlinie fest, um die Skalierungsrichtlinie auf das registrierte Modell anzuwenden. Informationen zur Anwendung der Skalierungsrichtlinie finden Sie unter Anwenden einer Skalierungsrichtlinie.
Einzelheiten zu anderen Voraussetzungen und Komponenten, die für Autoscaling verwendet werden, finden Sie im Voraussetzungen für die automatische Skalierung Abschnitt der SageMaker AI-Autoscaling-Dokumentation.
Registrieren eines Modells
Um einem serverlosen Endpunkt mit Provisioned Concurrency Autoscaling hinzuzufügen, müssen Sie zunächst Ihr Modell (Produktionsvariante) mithilfe AWS CLI von Application Auto Scaling registrieren. API
Registrieren eines Modells (AWS CLI)
Verwenden Sie den register-scalable-target
AWS CLI Befehl mit den folgenden Parametern, um Ihr Modell zu registrieren:
-
--service-namespace
– Legen Sie diesen Wert aufsagemaker
fest. -
--resource-id
– Die Ressourcen-ID für das Modell (insbesondere die Produktionsvariante). Für diesen Parameter lautet der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Produktionsvariante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
--scalable-dimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
--min-capacity
– Die Mindestanzahl von Provisioned Concurrency für das Modell. Setzen Sie--min-capacity
auf mindestens 1. Der Wert muss gleich oder kleiner sein als der für--max-capacity
angegebene Wert. -
--max-capacity
– Die maximale Anzahl an Provisioned Concurrency, die über Application Auto Scaling aktiviert werden soll. Auf mindestens 1 festgelegt--max-capacity
. Er muss größer oder gleich dem für--min-capacity
angegebenen Wert sein.
Das folgende Beispiel zeigt, wie man ein Modell mit dem Namen MyVariant
registriert, das dynamisch skaliert wird und einen Wert von 1 bis 10 für die bereitgestellte Gleichzeitigkeit hat:
aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --min-capacity 1 \ --max-capacity 10
Ein Modell registrieren (Application Auto ScalingAPI)
Verwenden Sie die API Aktion RegisterScalableTarget
Application Auto Scaling mit den folgenden Parametern, um Ihr Modell zu registrieren:
-
ServiceNamespace
– Legen Sie diesen Wert aufsagemaker
fest. -
ResourceId
– Die Ressourcen-ID für das Modell (insbesondere die Produktionsvariante). Für diesen Parameter lautet der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Produktionsvariante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
ScalableDimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
MinCapacity
– Die Mindestanzahl von Provisioned Concurrency für das Modell. Setzen SieMinCapacity
auf mindestens 1. Der Wert muss gleich oder kleiner sein als der fürMaxCapacity
angegebene Wert. -
MaxCapacity
– Die maximale Anzahl an Provisioned Concurrency, die über Application Auto Scaling aktiviert werden soll. Auf mindestens 1 festgelegtMaxCapacity
. Er muss größer oder gleich dem fürMinCapacity
angegebenen Wert sein.
Das folgende Beispiel zeigt, wie man ein Modell mit dem Namen MyVariant
registriert, das dynamisch skaliert wird und einen Wert von 1 bis 10 für die bereitgestellte Gleichzeitigkeit hat:
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndPoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "MinCapacity": 1, "MaxCapacity": 10 }
Definieren einer Skalierungsrichtlinie
Um die Metriken und Zielwerte für eine Skalierungsrichtlinie festzulegen, können Sie eine Skalierungsrichtlinie mit Zielverfolgung konfigurieren. Definieren Sie die Skalierungsrichtlinie als JSON Block in einer Textdatei. Sie können diese Textdatei dann verwenden, wenn Sie das AWS CLI oder das Application Auto Scaling API aufrufen. Um schnell eine Zielverfolgungs-Skalierungsrichtlinie für einen Serverless Endpunkt zu definieren, verwenden Sie die SageMakerVariantProvisionedConcurrencyUtilization
vordefinierte Metrik.
{ "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" }, "ScaleOutCooldown": 1, "ScaleInCooldown": 1 }
Anwenden einer Skalierungsrichtlinie
Nachdem Sie Ihr Modell registriert haben, können Sie mit Provisioned Concurrency eine Skalierungsrichtlinie auf Ihren Serverless Endpunkt anwenden. Sehen Sie Anwendung einer Skalierungsrichtlinie zur Zielverfolgung, um eine von Ihnen definierte Zielverfolgungs-Skalierungsrichtlinie anzuwenden. Wenn der Datenverkehrsfluss zu Ihrem Serverless Endpunkt eine vorhersehbare Routine hat, sollten Sie Skalierungsaktionen zu bestimmten Zeiten planen, anstatt eine Skalierungsrichtlinie für die Zielverfolgung anzuwenden. Weitere Informationen zum Planen von Skalierungsaktionen finden Sie unter Geplante Skalierung.
Anwendung einer Skalierungsrichtlinie zur Zielverfolgung
Sie können das AWS CLI oder das Application Auto Scaling verwenden AWS Management Console, API um eine Skalierungsrichtlinie zur Zielverfolgung auf Ihren serverlosen Endpunkt mit Provisioned Concurrency anzuwenden.
Anwendung einer Zielverfolgungs-Skalierungsrichtlinie (AWS CLI)
Um eine Skalierungsrichtlinie auf Ihr Modell anzuwenden, verwenden Sie den Befehl put-scaling-policy
AWS CLI; mit den folgenden Parametern:
-
--policy-name
– Der Name der Skalierungsrichtlinie. -
--policy-type
– Legen Sie diesen Wert auf festTargetTrackingScaling
. -
--resource-id
– Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Variante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
– Legen Sie diesen Wert aufsagemaker
fest. -
--scalable-dimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
--target-tracking-scaling-policy-configuration
– Die für das Modell zu verwendende Konfiguration der Skalierungsrichtlinie für die Zielverfolgung.
Das folgende Beispiel zeigt, wie eine Zielverfolgungs-Skalierungsrichtlinie namens MyScalingPolicy
auf ein Modell namens MyVariant
. Die Richtlinienkonfiguration wird in einer Datei mit dem Namen scaling-policy.json
gespeichert.
aws application-autoscaling put-scaling-policy \ --policy-name MyScalingPolicy \ --policy-type TargetTrackingScaling \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --target-tracking-scaling-policy-configuration file://[file-localtion]/scaling-policy.json
Wenden Sie eine Skalierungsrichtlinie zur Zielverfolgung an (Application Auto Scaling) API
Um eine Skalierungsrichtlinie auf Ihr Modell anzuwenden, verwenden Sie die API Aktion PutScalingPolicy
Application Auto Scaling mit den folgenden Parametern:
-
PolicyName
– Der Name der Skalierungsrichtlinie. -
PolicyType
– Legen Sie diesen Wert auf festTargetTrackingScaling
. -
ResourceId
– Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Variante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
– Legen Sie diesen Wert aufsagemaker
fest. -
ScalableDimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
TargetTrackingScalingPolicyConfiguration
– Die für das Modell zu verwendende Konfiguration der Skalierungsrichtlinie für die Zielverfolgung.
Das folgende Beispiel zeigt, wie eine Zielverfolgungs-Skalierungsrichtlinie namens MyScalingPolicy
auf ein Modell namens MyVariant
. Die Richtlinienkonfiguration wird in einer Datei mit dem Namen scaling-policy.json
gespeichert.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "PolicyName": "MyScalingPolicy", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 0.5, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantProvisionedConcurrencyUtilization" } } }
Anwendung einer Zielverfolgungs-Skalierungsrichtlinie (AWS Management Console)
Um eine Skalierungsrichtlinie zur Zielverfolgung anzuwenden mit: AWS Management Console
-
Melden Sie sich bei der Amazon SageMaker AI-Konsole
an. -
Wählen Sie im Navigationsbereich Inferenz aus.
-
Wählen Sie Endpunkte aus, um eine Liste all Ihrer Endpoints anzuzeigen.
-
Wählen Sie den Endpunkt aus, auf den Sie die Skalierungsrichtlinie anwenden möchten. Es wird eine Seite mit den Einstellungen des Endpunkts angezeigt, auf der die Modelle (Produktionsvariante) im Abschnitt Endpunkt-Laufzeiteinstellungen aufgeführt sind.
-
Wählen Sie die Produktionsvariante aus, auf die Sie die Skalierungsrichtlinie anwenden möchten, und wählen Sie Auto Scaling konfigurieren. Das Dialogfenster Automatische Skalierung der Variante konfigurieren wird angezeigt.
-
Geben Sie die minimalen und maximalen Werte für die bereitgestellte Parallelität in die Felder Minimale bereitgestellte Parallelität bzw. Maximale bereitgestellte Parallelität im Abschnitt Automatische Skalierung der Variante ein. Die minimale bereitgestellte Parallelität muss kleiner oder gleich der maximalen bereitgestellten Parallelität sein.
-
Geben Sie den Zielwert in das Feld Zielwert für die Zielmetrik,
SageMakerVariantProvisionedConcurrencyUtilization
ein. -
(Optional) Geben Sie in den Feldern Verkleinern bei Abkühlung und Vergrößern bei Abkühlung Werte für die Abkühlung (in Sekunden) ein.
-
(Optional) Wählen Sie Skalierung deaktivieren aus, wenn Sie nicht möchten, dass Auto Scaling die Instance löscht, wenn der Traffic abnimmt.
-
Wählen Sie Speichern.
Geplante Skalierung
Wenn der Datenverkehr zu Ihrem Serverless Endpunkt mit Provisioned Concurrency einem Routinemuster folgt, sollten Sie Skalierungsaktionen zu bestimmten Zeiten planen, um Provisioned Concurrency ab- oder aufskalieren. Sie können das AWS CLI oder das Application Auto Scaling verwenden, um Skalierungsaktionen zu planen.
Geplante Skalierung (AWS CLI)
Um eine Skalierungsrichtlinie auf Ihr Modell anzuwenden, verwenden Sie den Befehl put-scheduled-action
AWS CLI; mit den folgenden Parametern:
-
--schedule-action-name
– Der Name der Skalierungsrichtlinie. -
--schedule
– Ein Cron-Ausdruck, der die Start- und Endzeiten der Skalierungsaktion mit einem wiederkehrenden Zeitplan angibt. -
--resource-id
– Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Variante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
--service-namespace
– Legen Sie diesen Wert aufsagemaker
fest. -
--scalable-dimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
--scalable-target-action
– Das Ziel der Skalierungsaktion.
Das folgende Beispiel zeigt, wie eine Skalierungsaktion namens MyScalingAction
zu einem Modell namens MyVariant
in einem wiederkehrenden Zeitplan hinzugefügt wird. Nach dem angegebenen Zeitplan (täglich um 12:15 UhrUTC), wenn die aktuelle bereitgestellte Parallelität unter dem für angegebenen Wert liegt. MinCapacity
Application Auto Scaling skaliert die bereitgestellte Parallelität auf den von MinCapacity
angegebenen Wert.
aws application-autoscaling put-scheduled-action \ --scheduled-action-name 'MyScalingAction' \ --schedule 'cron(15 12 * * ? *)' \ --service-namespace sagemaker \ --resource-id endpoint/MyEndpoint/variant/MyVariant \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --scalable-target-action 'MinCapacity=10'
Geplante Skalierung (Application Auto ScalingAPI)
Um eine Skalierungsrichtlinie auf Ihr Modell anzuwenden, verwenden Sie die API Aktion PutScheduledAction
Application Auto Scaling mit den folgenden Parametern:
-
ScheduleActionName
– Der Name der Skalierungsaktion. -
Schedule
– Ein Cron-Ausdruck, der die Start- und Endzeiten der Skalierungsaktion mit einem wiederkehrenden Zeitplan angibt. -
ResourceId
– Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentypendpoint
und die eindeutige Kennung ist der Name der Variante. Zum Beispielendpoint/MyEndpoint/variant/MyVariant
. -
ServiceNamespace
– Legen Sie diesen Wert aufsagemaker
fest. -
ScalableDimension
– Legen Sie diesen Wert aufsagemaker:variant:DesiredProvisionedConcurrency
fest. -
ScalableTargetAction
– Das Ziel der Skalierungsaktion.
Das folgende Beispiel zeigt, wie eine Skalierungsaktion namens MyScalingAction
zu einem Modell namens MyVariant
in einem wiederkehrenden Zeitplan hinzugefügt wird. Nach dem angegebenen Zeitplan (täglich um 12:15 UhrUTC), wenn die aktuelle bereitgestellte Parallelität unter dem für angegebenen Wert liegt. MinCapacity
Application Auto Scaling skaliert die bereitgestellte Parallelität auf den von MinCapacity
angegebenen Wert.
POST / HTTP/1.1 Host: autoscaling.us-east-2.amazonaws.com Accept-Encoding: identity X-Amz-Target: AnyScaleFrontendService.PutScheduledAction X-Amz-Date: 20160506T182145Z User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8 Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS { "ScheduledActionName": "MyScalingAction", "Schedule": "cron(15 12 * * ? *)", "ServiceNamespace": "sagemaker", "ResourceId": "endpoint/MyEndpoint/variant/MyVariant", "ScalableDimension": "sagemaker:variant:DesiredProvisionedConcurrency", "ScalableTargetAction": "MinCapacity=10" } } }