Skalieren eines Endpunkts auf null Instances - Amazon SageMaker KI

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.

Skalieren eines Endpunkts auf null Instances

Wenn Sie Auto Scaling für einen Endpunkt einrichten, können Sie zulassen, dass beim Abskalierungsprozess die Anzahl der betriebsbereiten Instances auf Null reduziert wird. Auf diese Weise sparen Sie Kosten in Zeiten, in denen Ihr Endpunkt keine Inferenzanforderungen bedient und daher keine aktiven Instances benötigt.

Nach der Skalierung auf null Instances kann Ihr Endpunkt jedoch erst dann auf eingehende Inferenzanforderungen antworten, wenn er mindestens eine Instance bereitstellt. Um den Bereitstellungsprozess zu automatisieren, erstellen Sie eine Richtlinie zur schrittweisen Skalierung mit Application Auto Scaling. Anschließend weisen Sie die Richtlinie einem CloudWatch Amazon-Alarm zu.

Nachdem Sie die Richtlinie zur schrittweisen Skalierung und den Alarm eingerichtet haben, stellt Ihr Endpunkt automatisch eine Instance bereit, sobald er eine Inferenzanforderung erhält, auf die er nicht antworten kann. Beachten Sie, dass der Bereitstellungsprozess mehrere Minuten dauert. Während dieser Zeit führen alle Versuche, den Endpunkt aufzurufen, zu einem Fehler.

In den folgenden Verfahren wird erklärt, wie Sie beim Auto Scaling für einen Endpunkt die Abskalierung auf null Instances und die Aufskalierung von null Instances konfigurieren. Bei diesen Verfahren werden AWS CLI-Befehle verwendet.

Bevor Sie beginnen

Ihr Endpunkt muss die folgenden Voraussetzungen erfüllen, bevor er auf null Instances abskaliert bzw. von null Instances aufskaliert werden kann.

  • Er ist betriebsbereit.

  • Es hostet eine oder mehrere Inferenzkomponenten. Ein Endpunkt kann nur dann auf null Instances abskaliert und von null Instances aufskaliert werden, wenn er Inferenzkomponenten hostet.

    Informationen zum Hosten von Inferenzkomponenten auf SageMaker KI-Endpunkten finden Sie unter. Modelle für Echtzeit-Inferenzen bereitstellen

  • In der Endpunktkonfiguration haben Sie für das ManagedInstanceScaling-Objekt der Produktionsvariante den Parameter MinInstanceCount auf 0 gesetzt.

    Referenzinformationen zu diesem Parameter finden Sie unter. ProductionVariantManagedInstanceScaling

So aktivieren Sie die Abskalierung eines Endpunkts auf null Instances (AWS CLI)

Gehen Sie für jede Inferenzkomponente, die der Endpunkt hostet, wie folgt vor:

  1. Registrieren Sie die Inferenzkomponente als skalierbares Ziel. Legen Sie bei der Registrierung die Mindestkapazität auf 0 fest, wie im folgenden Befehl dargestellt:

    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-capacity n

    Ersetzen Sie ihn in diesem Beispiel inference-component-name durch den Namen Ihrer Inferenzkomponente. nErsetzen Sie durch die maximale Anzahl von Kopien der Inferenzkomponenten, die beim Skalieren bereitgestellt werden sollen.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie register-scalable-targetin der AWS CLI Befehlsreferenz.

  2. Wenden Sie eine Zielverfolgungsrichtlinie auf die Inferenzkomponente an, wie im folgenden Befehl dargestellt:

    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

    Ersetzen Sie in diesem Beispiel inference-component-name durch den Namen Ihrer Inferenzkomponente.

    In dem Beispiel enthält die config.json-Datei eine Richtlinienkonfiguration für die Zielverfolgung wie die folgende:

    { "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }

    Weitere Beispiele für Richtlinienkonfigurationen zur Nachverfolgung finden Sie unter Definieren einer Skalierungsrichtlinie.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie put-scaling-policyin der AWS CLI Befehlsreferenz.

So aktivieren Sie die Aufskalierung eines Endpunkts von null Instances (AWS CLI)

Gehen Sie für jede Inferenzkomponente, die der Endpunkt hostet, wie folgt vor:

  1. Wenden Sie eine Richtlinie zur schrittweisen Skalierung auf die Inferenzkomponente an, wie im folgenden Befehl dargestellt:

    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 \ --step-scaling-policy-configuration file://config.json

    Ersetzen Sie es in diesem Beispiel my-scaling-policy durch einen eindeutigen Namen für Ihre Richtlinie. inference-component-nameErsetzen Sie ihn durch den Namen Ihrer Inferenzkomponente.

    In dem Beispiel enthält die config.json-Datei eine Richtlinienkonfiguration für die schrittweise Skalierung wie die folgende:

    { "AdjustmentType": "ChangeInCapacity", "MetricAggregationType": "Maximum", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ] }

    Wenn diese Richtlinie zur schrittweisen Skalierung ausgelöst wird, stellt SageMaker KI die erforderlichen Instanzen bereit, um die Kopien der Inferenzkomponenten zu unterstützen.

    Notieren Sie nach dem Erstellen der Richtlinie zur schrittweisen Skalierung den Amazon-Ressourcennamen (ARN). Im nächsten Schritt benötigen Sie den ARN für den CloudWatch Alarm.

    Weitere Informationen über Richtlinien zur schrittweisen Skalierung finden Sie unter Richtlinien zur schrittweisen Skalierung im Benutzerhandbuch zum Auto Scaling von Anwendungen.

  2. Erstellen Sie einen CloudWatch Alarm und weisen Sie ihm die Step Scaling-Richtlinie zu, wie das folgende Beispiel zeigt:

    aws cloudwatch put-metric-alarm \ --alarm-actions step-scaling-policy-arn \ --alarm-description "Alarm when SM IC endpoint invoked that has 0 instances." \ --alarm-name ic-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

    In diesem Beispiel step-scaling-policy-arn ersetzen Sie es durch den ARN Ihrer Step Scaling-Richtlinie. ic-step-scaling-alarmErsetzen Sie es durch einen Namen Ihrer Wahl. inference-component-nameErsetzen Sie durch den Namen Ihrer Inferenzkomponente.

    In diesem Beispiel wird der --metric-name Parameter auf gesetztNoCapacityInvocationFailures. SageMaker AI gibt diese Metrik aus, wenn ein Endpunkt eine Inferenzanforderung empfängt, der Endpunkt aber keine aktiven Instanzen hat, um die Anfrage zu bearbeiten. Wenn dieses Ereignis eintritt, initiiert der Alarm die Richtlinie zur schrittweisen Skalierung aus dem vorherigen Schritt.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie put-metric-alarmin der AWS CLI Befehlsreferenz.