Verwenden Sie lineare Verkehrsverlagerung - 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.

Verwenden Sie lineare Verkehrsverlagerung

Durch die lineare Verkehrsverlagerung können Sie den Verkehr schrittweise von Ihrer alten Flotte (blaue Flotte) auf Ihre neue Flotte (grüne Flotte) verlagern. Mit der linearen Verkehrsverlagerung können Sie den Verkehr in mehreren Schritten verlagern und so das Risiko einer Störung an Ihrem Endpunkt minimieren. Diese blaue/grüne Bereitstellungsoption bietet Ihnen die genaueste Kontrolle über die Verkehrsverlagerung.

Sie können entweder die Anzahl der Instances oder den Prozentsatz der Kapazität der grünen Flotte wählen, die bei jedem Schritt aktiviert werden sollen. Jeder lineare Schritt sollte nur zwischen 10 und 50% der Kapazität der grünen Flotte liegen. Für jeden Schritt gibt es eine Backphase, in der Ihre vordefinierten CloudWatch Amazon-Alarme die Messwerte der grünen Flotte überwachen. Sobald die Backphase abgelaufen ist und keine Alarme ausgelöst werden, empfängt der aktive Teil Ihrer grünen Flotte weiterhin Traffic und ein neuer Schritt beginnt. Wenn während einer der Back-Phasen Alarme ausgelöst werden, werden 100% des Endpunktverkehrs wieder auf die blaue Flotte übertragen.

Das folgende Diagramm zeigt, wie die lineare Verkehrsverlagerung den Verkehr an die blauen und grünen Flotten weiterleitet.

Eine erfolgreiche dreistufige lineare Verkehrsverlagerung von der alten Flotte zur neuen Flotte.

Sobald SageMaker die neue Flotte bereitgestellt ist, wird der erste Teil der grünen Flotte eingeschaltet und empfängt Verkehr. SageMaker deaktiviert den gleichen Teil der blauen Flotte und die Backphase beginnt. Wenn Alarme ausgelöst werden, wird der gesamte Datenverkehr an den Endpunkten wieder auf die blaue Flotte übertragen. Wenn die Backzeit beendet ist, beginnt der nächste Schritt. Ein anderer Teil der grünen Flotte wird aktiviert und empfängt Verkehr, ein Teil der blauen Flotte wird deaktiviert und eine weitere Backphase beginnt. Derselbe Vorgang wiederholt sich, bis die blaue Flotte vollständig deaktiviert ist und die grüne Flotte voll aktiv ist und den gesamten Verkehr empfängt. Wenn zu irgendeinem Zeitpunkt ein Alarm ausgelöst wird, wird der SageMaker Schichtvorgang beendet und 100% des Verkehrs werden wieder der blauen Flotte zugewiesen.

Voraussetzungen

Bevor Sie eine Bereitstellung mit linearer Verkehrsverlagerung einrichten, müssen Sie CloudWatch Alarme einrichten, um die Messwerte von Ihrem Endpunkt aus zu überwachen. Die Alarme sind während der Backphase aktiv, und wenn Alarme ausgelöst werden, wird der gesamte Endpunktverkehr auf die blaue Flotte zurückgesetzt. Informationen zum Einrichten von CloudWatch Alarmen auf einem Endpunkt finden Sie auf der Seite mit den VoraussetzungenKonfiguration und Überwachung von Auto-Rollback. Weitere Informationen zu CloudWatch Alarmen finden Sie unter Verwenden von CloudWatch Amazon-Alarmen im CloudWatch Amazon-Benutzerhandbuch.

Konfigurieren Sie die lineare Verkehrsverlagerung

Sobald Sie für Ihre Bereitstellung bereit sind und CloudWatch Alarme für Ihren Endpunkt eingerichtet haben, können Sie entweder den Befehl Amazon SageMaker UpdateEndpointAPIoder den Befehl update-endpoint in der verwenden, AWS CLI um die Bereitstellung zu initiieren.

Wie aktualisiert man einen Endpunkt () API

Das folgende Beispiel UpdateEndpointAPIzeigt, wie Sie einen Endpunkt mit linearer Verkehrsverlagerung aktualisieren können.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "LINEAR", "LinearStepSize": { "Type": "CAPACITY_PERCENT", "Value": 20 }, "WaitIntervalInSeconds": 300 }, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" } ] } } )

Um die Optionen Linear Traffic Shifting zu konfigurieren, machen Sie Folgendes:

  • Verwenden Sie für EndpointName den Namen des vorhandenen Endpunkts, den Sie aktualisieren möchten.

  • Verwenden Sie für EndpointConfigName den Namen der Endpunkt-Konfiguration, die Sie verwenden möchten.

  • Stellen Sie unter DeploymentConfig und BlueGreenUpdatePolicy, in TrafficRoutingConfiguration,, den Type Parameter auf LINEAR ein. Dies gibt an, dass bei der Bereitstellung eine lineare Verkehrsverlagerung verwendet wird.

  • Im Feld LinearStepSize können Sie die Größe der Schritte ändern, indem Sie die Parameter Type und Value ändern. Für Type verwenden Sie CAPACITY_PERCENT, d. h. den Prozentsatz Ihrer grünen Flotte, den Sie als Schrittgröße verwenden wollen, und setzen Sie Value auf 20. In diesem Beispiel schalten Sie für jeden Schritt der Verkehrsverlagerung 20% der Kapazität der umweltfreundlichen Flotte ein. Beachten Sie, dass Sie bei der Anpassung Ihrer linearen Schrittgröße nur Stufen verwenden sollten, die 10-50% der Kapazität der grünen Flotte ausmachen.

  • Geben Sie als WaitIntervalInSeconds 300ein. Der Parameter weist SageMaker an, dass zwischen jeder Verkehrsverlagerung die angegebene Zeit (in Sekunden) abgewartet werden soll. Dieses Intervall ist die Dauer der Backzeit zwischen den einzelnen linearen Schritten. Im vorherigen Beispiel wird zwischen jeder Verkehrsschicht 5 Minuten SageMaker gewartet.

  • Geben Sie als TerminationWaitInSeconds 300ein. Dieser Parameter weist SageMaker an, dass Sie die angegebene Zeit (in Sekunden) warten sollen, nachdem Ihre grüne Flotte voll aktiv ist, bevor die Instances in der blauen Flotte beendet werden. In diesem Beispiel wird nach der letzten Backphase 5 Minuten SageMaker gewartet, bevor die blaue Flotte beendet wird.

  • Geben Sie als MaximumExecutionTimeoutInSeconds 3600ein. Dieser Parameter legt die maximale Zeit fest, die die Bereitstellung ausgeführt werden kann, bevor eine Zeitbeschränkung auftritt. Im vorherigen Beispiel gilt für Ihre Bereitstellung ein Limit von 1 Stunde bis zum Abschluss.

  • AutoRollbackConfigurationIn dem Alarms Feld können Sie Ihre CloudWatch Alarme nach Namen hinzufügen. Erstellen Sie einen AlarmName: <your-cw-alarm> Eintrag für jeden Alarm, den Sie verwenden möchten.

So aktualisieren Sie einen Endpunkt mit einer vorhandenen blau/grünen Aktualisierungsrichtlinie () API

Wenn Sie den verwenden, CreateEndpointAPIum einen Endpunkt zu erstellen, können Sie optional eine Bereitstellungskonfiguration angeben, die für future Endpunkt-Updates wiederverwendet werden soll. Sie können dieselben DeploymentConfig Optionen wie im vorherigen UpdateEndpoint API Beispiel verwenden. Es gibt keine Änderungen am CreateEndpoint API Verhalten. Durch die Angabe der Bereitstellungskonfiguration wird nicht automatisch ein blau/grünes Update auf Ihrem Endpunkt durchgeführt.

Die Option, eine frühere Bereitstellungskonfiguration zu verwenden, wird angezeigt, wenn Sie den UpdateEndpointAPIzur Aktualisierung Ihres Endpunkts verwenden. Wenn Sie Ihren Endpunkt aktualisieren, können Sie die RetainDeploymentConfig Option verwenden, um die Bereitstellungskonfiguration beizubehalten, die Sie bei der Erstellung des Endpunkts angegeben haben.

Stellen Sie beim Aufrufen von RetainDeploymentConfig auf ein UpdateEndpointAPI, True um die DeploymentConfig Optionen aus Ihrer ursprünglichen Endpunktkonfiguration beizubehalten.

response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", RetainDeploymentConfig=True )

Wie aktualisiert man einen Endpunkt (CLI)

Wenn Sie den verwenden AWS CLI, zeigt das folgende Beispiel, wie Sie mit dem Befehl update-endpoint eine lineare Blau/Grün-Bereitstellung starten.

update-endpoint --endpoint-name <your-endpoint-name> --endpoint-config-name <your-config-name> --deployment-config '{"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "LINEAR", "LinearStepSize": {"Type": "CAPACITY_PERCENT", "Value": 20}, "WaitIntervalInSeconds": 300}, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

Um die Optionen Linear Traffic Shifting zu konfigurieren, machen Sie Folgendes:

  • Verwenden Sie für endpoint-name den Namen des Endpunkts, den Sie aktualisieren möchten.

  • Verwenden Sie für endpoint-config-name den Namen der Endpunkt-Konfiguration, die Sie verwenden möchten.

  • Verwenden Sie für deployment-config ein Objekt. BlueGreenUpdatePolicyJSON

Anmerkung

Wenn Sie Ihr JSON Objekt lieber in einer Datei speichern möchten, finden Sie weitere Informationen unter Generieren von AWS CLI Skelett- und Eingabeparametern im AWS CLI Benutzerhandbuch.