Überblick über die automatische Skalierung - 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.

Überblick über die automatische Skalierung

Die folgende Übersicht enthält Einzelheiten zu den Voraussetzungen und Komponenten, die für Auto Scaling verwendet werden.

Voraussetzungen

Bevor Sie Auto Scaling verwenden können, müssen Sie bereits einen SageMaker Amazon-Modellendpunkt erstellt haben. Sie können mehrere Modellversionen für denselben Endpunkt haben. Jedes Modell wird als Produktionsvariante (Modell) bezeichnet. Weitere Informationen zur Bereitstellung eines Modellendpunkts finden Sie unter Stellen Sie das Modell für SageMaker Hosting-Services bereit.

Um Auto Scaling für ein Modell zu aktivieren, können Sie die SageMaker Konsole, die AWS Command Line Interface (AWS CLI) oder AWS SDK über die Application Auto Scaling verwendenAPI.

  • Wenn Sie zum ersten Mal die Skalierung für ein Modell konfigurieren, empfehlen wir Ihnen, die Skalierung zu konfigurierenKonfigurieren Sie Auto Scaling für Modelle über die Konsole.

  • Wenn Sie das AWS CLI oder das Application Auto Scaling verwendenAPI, besteht der Ablauf darin, das Modell als skalierbares Ziel zu registrieren, die Skalierungsrichtlinie zu definieren und sie dann anzuwenden. Wählen Sie in der SageMaker Konsole im Navigationsbereich unter Inferenz die Option Endpoints aus. Suchen Sie den Endpunktnamen Ihres Modells und wählen Sie ihn dann aus, um den Variantennamen zu finden. Sie müssen sowohl den Endpunktnamen als auch den Variantennamen angeben, um Auto Scaling für ein Modell zu aktivieren.

Überblick über die Skalierungsrichtlinie

Um Auto Scaling zu verwenden, definieren Sie eine Skalierungsrichtlinie, die die Anzahl der Instances für Ihre Produktionsvariante als Reaktion auf die tatsächlichen Workloads hinzufügt und entfernt.

Für die automatische Skalierung bei Änderungen der Arbeitslast stehen Ihnen zwei Optionen zur Verfügung: Richtlinien zur Zielverfolgung und schrittweisen Skalierung.

Wir empfehlen die Verwendung von Skalierungsrichtlinien für die Zielverfolgung. Bei der Zielverfolgung wählen Sie eine CloudWatch Amazon-Metrik und einen Zielwert aus. Auto Scaling erstellt und verwaltet die CloudWatch Alarme für die Skalierungsrichtlinie und berechnet die Skalierungsanpassung auf der Grundlage der Metrik und des Zielwerts. Die Richtlinie fügt die Anzahl der Instanzen hinzu oder entfernt sie, je nachdem, wie erforderlich, um die Metrik auf oder nahe dem angegebenen Zielwert zu halten. Hierbei kann z. B. eine Skalierungsrichtlinie, die die vorab definierte InvocationsPerInstance-Kennzahl mit einem Zielwert von 70 verwendet, InvocationsPerInstance auf oder fast auf 70 halten. Weitere Informationen finden Sie in den Skalierungsrichtlinien für die Ziel-Nachverfolgung im Benutzerhandbuch für Application Auto Scaling.

Sie können die schrittweise Skalierung verwenden, wenn Sie eine erweiterte Konfiguration benötigen, z. B. angeben, wie viele Instances unter welchen Bedingungen bereitgestellt werden sollen. Andernfalls wird die Verwendung von Target-Tracking-Skalierung bevorzugt, da diese vollständig automatisiert ist. Beachten Sie, dass die schrittweise Skalierung nur über das AWS CLI oder das Application Auto Scaling verwaltet werden kannAPI. Einen Überblick über Step Scaling-Richtlinien und deren Funktionsweise finden Sie unter Step Scaling-Richtlinien im Application Auto Scaling Scaling-Benutzerhandbuch.

Zum Erstellen einer Skalierungsrichtlinie für die Ziel-Nachverfolgung geben Sie Folgendes an:

  • Metrik — Die zu verfolgende CloudWatch Metrik, z. B. die durchschnittliche Anzahl von Aufrufen pro Instance.

  • Zielwert — Der Zielwert für die Metrik, z. B. 70 Aufrufe pro Instance pro Minute.

Sie können Skalierungsrichtlinien zur Zielverfolgung mit vordefinierten oder benutzerdefinierten Metriken erstellen. Eine vordefinierte Metrik ist in einer Aufzählung definiert, sodass Sie sie anhand ihres Namens im Code angeben oder in der Konsole verwenden können. SageMaker Alternativ können Sie entweder das AWS CLI oder das Application Auto Scaling verwenden, API um eine Skalierungsrichtlinie für die Zielverfolgung anzuwenden, die auf einer vordefinierten oder benutzerdefinierten Metrik basiert.

Beachten Sie, dass Skalierungsaktivitäten mit Abklingzeiten zwischen ihnen ausgeführt werden, um schnelle Kapazitätsschwankungen zu vermeiden. Sie können die Ruhephasen für Ihre Richtlinie optional konfigurieren.

Skalierung nach Zeitplan

Sie können auch geplante Aktionen erstellen, um Skalierungsaktivitäten zu bestimmten Zeiten durchzuführen. Sie können geplante Aktionen erstellen, die nur einmal skalieren oder wiederholt geplant ausgeführt werden. Nach der Ausführung einer geplanten Aktion kann Ihre Skalierungsrichtlinie weiterhin Entscheidungen darüber treffen, ob bei Änderungen der Arbeitslast dynamisch skaliert werden soll. Die geplante Skalierung kann nur über das AWS CLI oder das Application Auto Scaling verwaltet API werden. Weitere Informationen finden Sie unter Geplante Skalierung im Benutzerhandbuch für Application Auto Scaling.

Minimale und maximale Skalierungsgrenzen

Bei der Konfiguration von Auto Scaling müssen Sie Ihre Skalierungsgrenzen angeben, bevor Sie eine Skalierungsrichtlinie erstellen. Sie legen die Grenzwerte für die Minimal- und Maximalwerte getrennt fest.

Der Mindestwert muss mindestens 1 sein und gleich oder kleiner als der für den Höchstwert angegebene Wert sein.

Der Höchstwert muss gleich oder größer als der für den Minimalwert angegebene Wert sein. SageMaker Auto Scaling erzwingt kein Limit für diesen Wert.

Um die Skalierungsgrenzen zu ermitteln, die Sie für den typischen Datenverkehr benötigen, testen Sie Ihre Auto Scaling-Konfiguration mit der erwarteten Datenverkehrsrate für Ihr Modell.

Wenn der Traffic einer Variante Null wird, wird SageMaker automatisch auf die angegebene Mindestanzahl von Instanzen skaliert. In diesem Fall SageMaker werden Metriken mit dem Wert Null ausgegeben.

Es gibt drei Optionen für die Angabe der Mindest- und Höchstkapazität:

  1. Verwenden Sie die Konsole, um die Einstellungen Minimale Instanzanzahl und Maximale Instanzanzahl zu aktualisieren.

  2. Verwenden Sie die --max-capacity Optionen AWS CLI und schließen Sie die --min-capacity und ein, wenn register-scalable-targetSie den Befehl ausführen.

  3. Rufen Sie die auf RegisterScalableTargetAPIund geben Sie die MaxCapacity Parameter MinCapacity und an.

Tipp

Sie können manuell verkleinern, indem Sie den Minimalwert erhöhen, oder manuell vergrößern, indem Sie den Maximalwert verringern.

Ruhephase

Eine Abklingzeit wird verwendet, um vor einer Überskalierung zu schützen, wenn Ihr Modell skaliert (Kapazität reduziert) oder verkleinert (Kapazität erhöht). Zu diesem Zweck werden nachfolgende Skalierungsaktivitäten verlangsamt, bis der Zeitraum abläuft. Insbesondere blockiert es das Löschen von Instanzen für Scale-In-Anfragen und schränkt die Erstellung von Instanzen für Scale-Out-Anfragen ein. Weitere Informationen finden Sie unter Definieren von Abklingzeiten im Application Auto Scaling Scaling-Benutzerhandbuch.

Sie konfigurieren die Abklingzeit in Ihrer Skalierungsrichtlinie.

Wenn Sie keine Scale-In- oder Scale-Out-Abklingzeit angeben, verwendet Ihre Skalierungsrichtlinie die Standardeinstellung, die jeweils 300 Sekunden beträgt.

Wenn Instances beim Testen Ihrer Skalierungskonfiguration zu schnell hinzugefügt oder entfernt werden, sollten Sie erwägen, diesen Wert zu erhöhen. Dieses Verhalten kann auftreten, wenn der Datenverkehr zu Ihrem Modell viele Spitzen aufweist oder wenn Sie mehrere Skalierungsrichtlinien für eine Variante definiert haben.

Wenn Instances nicht schnell genug hinzugefügt werden, um auf den erhöhten Datenverkehr zu antworten, dann sollten Sie diesen Wert verringern.

Berechtigungen

Auto Scaling wird durch eine Kombination aus Amazon SageMaker CloudWatch, Amazon und Application Auto Scaling ermöglichtAPIs. Informationen zu den erforderlichen Mindestberechtigungen finden Sie in den identitätsbasierten Richtlinienbeispielen für Application Auto Scaling im Application Auto Scaling Scaling-Benutzerhandbuch.

Die SagemakerFullAccessPolicy IAM Richtlinie verfügt über alle IAM Berechtigungen, die für die Durchführung von Auto Scaling erforderlich sind. Weitere Informationen zu SageMaker IAM Berechtigungen finden Sie unterWie verwendet man SageMaker Ausführungsrollen.

Wenn Sie Ihre eigene Berechtigungsrichtlinie verwalten, müssen Sie die folgenden Berechtigungen angeben:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "application-autoscaling:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] }

Servicegebundene Rolle

Auto Scaling verwendet die AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint serviceverknüpfte Rolle. Diese dienstbezogene Rolle erteilt Application Auto Scaling die Berechtigung, die Alarme für Ihre Richtlinien zu beschreiben, das aktuelle Kapazitätsniveau zu überwachen und die Zielressource zu skalieren. Diese Rolle wird automatisch für Sie erstellt. Damit die automatische Rollenerstellung erfolgreich ist, benötigen Sie die Erlaubnis für die iam:CreateServiceLinkedRole Aktion. Weitere Informationen finden Sie unter Serviceverknüpfte Rollen im Application Auto Scaling-Benutzerhandbuch.

Weitere Informationen zur Konfiguration von Auto Scaling finden Sie in den folgenden Ressourcen:

Anmerkung

SageMaker hat kürzlich neue Inferenzfunktionen eingeführt, die auf Echtzeit-Inferenzendpunkten basieren. Sie erstellen einen SageMaker Endpunkt mit einer Endpunktkonfiguration, die den Instanztyp und die anfängliche Anzahl der Instanzen für den Endpunkt definiert. Erstellen Sie anschließend eine Inferenzkomponente, bei der es sich um ein SageMaker Hosting-Objekt handelt, mit dem Sie ein Modell auf einem Endpunkt bereitstellen können. Informationen zur Skalierung von Inferenzkomponenten finden Sie unter SageMaker Fügt neue Inferenzfunktionen hinzu, um die Kosten und die Latenz für das Basismodell zu reduzieren und die Kosten für die Modellbereitstellung mithilfe der neuesten Funktionen von SageMaker im Blog um durchschnittlich 50% zu reduzieren. AWS