Automatische Skalierung der bereitgestellten Gleichzeitigkeit für einen Serverless Endpunkt - Amazon SageMaker

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 skaliert bei Bedarf SageMaker 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 Autoscaling-Dokumentation. SageMaker

Registrieren eines Modells

Um Autoscaling zu einem serverlosen Endpunkt mit Provisioned Concurrency 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 auf sagemaker fest.

  • --resource-id– Die Ressourcen-ID für das Modell (insbesondere die Produktionsvariante). Für diesen Parameter lautet der Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Produktionsvariante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • --scalable-dimension – Legen Sie diesen Wert auf sagemaker: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 auf sagemaker fest.

  • ResourceId– Die Ressourcen-ID für das Modell (insbesondere die Produktionsvariante). Für diesen Parameter lautet der Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Produktionsvariante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • ScalableDimension – Legen Sie diesen Wert auf sagemaker:variant:DesiredProvisionedConcurrency fest.

  • MinCapacity– Die Mindestanzahl von Provisioned Concurrency für das Modell. Setzen Sie MinCapacity auf mindestens 1. Der Wert muss gleich oder kleiner sein als der für MaxCapacity 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ür MinCapacity 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 fest TargetTrackingScaling.

  • --resource-id – Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Variante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • --service-namespace – Legen Sie diesen Wert auf sagemaker fest.

  • --scalable-dimension – Legen Sie diesen Wert auf sagemaker: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 fest TargetTrackingScaling.

  • ResourceId – Die Ressourcenkennung für die Variante. Für diesen Parameter ist der Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Variante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Legen Sie diesen Wert auf sagemaker fest.

  • ScalableDimension – Legen Sie diesen Wert auf sagemaker: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, verwenden Sie: AWS Management Console

  1. Melden Sie sich bei der SageMakerAmazon-Konsole an.

  2. Wählen Sie im Navigationsbereich Inferenz aus.

  3. Wählen Sie Endpunkte aus, um eine Liste all Ihrer Endpoints anzuzeigen.

  4. 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.

  5. 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.

    Screenshot des Dialogfelds Automatische Skalierung der Variante konfigurieren in der Konsole.
  6. 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.

  7. Geben Sie den Zielwert in das Feld Zielwert für die Zielmetrik, SageMakerVariantProvisionedConcurrencyUtilization ein.

  8. (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.

  9. (Optional) Wählen Sie Skalierung deaktivieren aus, wenn Sie nicht möchten, dass Auto Scaling die Instance löscht, wenn der Traffic abnimmt.

  10. 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 Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Variante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • --service-namespace – Legen Sie diesen Wert auf sagemaker fest.

  • --scalable-dimension – Legen Sie diesen Wert auf sagemaker: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 Ressourcentyp endpoint und die eindeutige Kennung ist der Name der Variante. Zum Beispiel endpoint/MyEndpoint/variant/MyVariant.

  • ServiceNamespace – Legen Sie diesen Wert auf sagemaker fest.

  • ScalableDimension – Legen Sie diesen Wert auf sagemaker: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" } } }