Verkehrsverlagerung auf die Kanaren - 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.

Verkehrsverlagerung auf die Kanaren

Mit Canary Traffic Shifting können Sie einen Teil Ihres Endpunktverkehrs auf der neuen Flotte testen, während die alte Flotte den Rest des Datenverkehrs abwickelt. Bei diesem Testschritt handelt es sich um eine Sicherheitsleitplanke, mit der die Funktionalität der neuen Flotte überprüft wird, bevor Ihr gesamter Verkehr auf die neue Flotte verlagert wird. Sie haben immer noch die Vorteile einer blauen/grünen Implementierung, und mit der zusätzlichen Canary-Funktion können Sie sicherstellen, dass Ihre neue (grüne) Flotte Rückschlüsse verarbeiten kann, bevor sie den gesamten Verkehr bewältigen kann.

Der Teil Ihrer grünen Flotte, der aktiviert wird, um Traffic zu empfangen, wird als Kanarienvogel bezeichnet, und Sie können die Größe dieses Kanarienvogels wählen. Beachten Sie, dass die Kanariengröße höchstens 50% der Kapazität der neuen Flotte betragen sollte. Sobald die Backphase abgeschlossen ist und keine vordefinierten Amazon- CloudWatch Alarme ausgelöst werden, verlagert sich der Rest des Datenverkehrs von der alten (blauen) Flotte zur grünen Flotte. Canary Traffic Shifting bietet Ihnen mehr Sicherheit bei der Bereitstellung, da alle Probleme mit dem aktualisierten Modell nur den Canary betreffen.

Das folgende Diagramm zeigt, wie Canary Traffic Shifting die Verteilung des Verkehrs zwischen den blauen und grünen Flotten regelt.

Eine erfolgreiche zweistufige Verlagerung des kanarischen Datenverkehrs von der alten zu der neuen Flotte.

Sobald die grüne Flotte SageMaker bereitgestellt hat, SageMaker leitet einen Teil des eingehenden Datenverkehrs (z. B. 25 %) an den Canary weiter. Dann beginnt die Backphase, während der Ihre CloudWatch Alarme die Leistung der grünen Flotte überwachen. Während dieser Zeit sind sowohl die blaue als auch die grüne Flotte teilweise aktiv und empfangen Verkehr. Wenn einer der Alarme während der Backphase ausgelöst wird, SageMaker initiiert ein Rollback und der gesamte Datenverkehr wird an die blaue Flotte zurückgegeben. Wenn keiner der Alarme ausgelöst wird, wird der gesamte Verkehr auf die grüne Flotte verlagert und es gibt eine letzte Backphase. Wenn die letzte Backphase abgeschlossen ist, ohne Alarme auszulösen, bedient die grüne Flotte den gesamten Datenverkehr und SageMaker beendet die blaue Flotte.

Voraussetzungen

Bevor Sie eine Bereitstellung mit Canary Traffic Shifting einrichten, müssen Sie Amazon- CloudWatch Alarme erstellen, um Metriken 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 Amazon- CloudWatch Alarmen im Amazon- CloudWatch Benutzerhandbuch.

Konfigurieren Sie Canary Traffic Shifting

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

So aktualisieren Sie einen Endpunkt (API)

Das folgende Beispiel für die UpdateEndpoint-API zeigt, wie Sie einen Endpunkt mit Canary-Verlagerung des Datenverkehrs 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": "CANARY", "CanarySize": { "Type": "CAPACITY_PERCENT", "Value": 30 }, "WaitIntervalInSeconds": 600 }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" } ] } } )

Um die Optionen Canary 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 ein CANARY. Dies gibt an, dass die Bereitstellung Canary Traffic Shifting verwendet.

  • Im Feld CanarySize können Sie die Größe des Canary ändern, indem Sie die Parameter Type und Value ändern. Für Type, verwenden Sie CAPACITY_PERCENT, also den Prozentsatz Ihrer grünen Flotte, den Sie als Canary verwenden möchten, und setzen Sie dann Value auf 30. In diesem Beispiel nutzen Sie 30% der Kapazität der grünen Flotte als Kanarienvogel. Beachten Sie, dass die Größe des Kanarienvogels 50% oder weniger der Kapazität der grünen Flotte entsprechen sollte.

  • Geben Sie als WaitIntervalInSeconds 600ein. Der Parameter weist an SageMaker , zwischen jeder Intervallverschiebung die angegebene Zeit (in Sekunden) zu warten. Dieses Intervall entspricht der Dauer der Kanarienbackzeit. Im vorherigen Beispiel SageMaker wartet 10 Minuten nach der Canary-Verlagerung und schließt dann die zweite und letzte Verkehrsverlagerung ab.

  • Geben Sie als TerminationWaitInSeconds 600ein. Dieser Parameter weist an SageMaker , die angegebene Zeit (in Sekunden) zu warten, nachdem Ihre grüne Flotte vollständig aktiv ist, bevor die Instances in der blauen Flotte beendet werden. In diesem Beispiel SageMaker wartet nach der letzten Backphase 10 Minuten, bevor die blaue Flotte beendet wird.

  • Geben Sie als MaximumExecutionTimeoutInSeconds 1800ein. Dieser Parameter legt den maximalen Zeitraum fest, den die Bereitstellung ausgeführt werden kann, bevor eine Zeitbeschränkung auftritt. Im vorherigen Beispiel gilt für Ihre Bereitstellung ein Limit von 30 Minuten bis zum Abschluss.

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

Wie aktualisiert man einen Endpunkt mit einer vorhandenen blau/grünen Update-Richtlinie (API)

Wenn Sie die CreateEndpoint API verwenden, um einen Endpunkt zu erstellen, können Sie optional eine Bereitstellungskonfiguration angeben, die für zukünftige Endpunktaktualisierungen wiederverwendet werden soll. Sie können dieselben DeploymentConfig Optionen wie im vorherigen UpdateEndpoint API-Beispiel verwenden. Das API CreateEndpoint -Verhalten wird nicht geändert. 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, erfolgt, wenn Sie die UpdateEndpoint -API zum Aktualisieren 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.

Legen Sie beim Aufrufen der UpdateEndpoint API RetainDeploymentConfig auf fest, 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 )

So aktualisieren Sie einen Endpunkt (CLI)

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

update-endpoint --endpoint-name <your-endpoint-name> --endpoint-config-name <your-config-name> --deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "CANARY", "CanarySize": {"Type": "CAPACITY_PERCENT", "Value": 30}, "WaitIntervalInSeconds": 600}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

Um die Optionen Canary 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.

  • deployment-configVerwenden Sie für ein BlueGreenUpdatePolicy JSON-Objekt.

Anmerkung

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