Spostamento del traffico tutto in una sola volta - Amazon SageMaker AI

Spostamento del traffico tutto in una sola volta

Con lo spostamento del traffico tutto in una sola volta, puoi implementare rapidamente un aggiornamento degli endpoint utilizzando le guardrail di sicurezza di un’implementazione blu/verde. È possibile utilizzare questa opzione di spostamento del traffico per ridurre al minimo la durata dell'aggiornamento, sfruttando al contempo le garanzie di disponibilità delle implementazioni blu/verdi. La funzionalità del periodo di baking consente di monitorare le prestazioni e la funzionalità delle nuove istanze prima di chiudere quelle vecchie, assicurando che il nuovo parco istanze sia pienamente operativo.

Il diagramma seguente mostra come il trasferimento del traffico gestisca contemporaneamente i parchi istanze vecchi e nuovi.

Uno spostamento del traffico riuscito dal vecchio parco istanze al nuovo parco istanze.

Quando si utilizza lo spostamento del traffico tutto in una sola volta, SageMaker AI indirizza il 100% del traffico verso il nuovo parco istanze (parco verde). Quando il parco istanze verde inizia a ricevere traffico, inizia il periodo di baking. Il periodo di baking è un periodo di tempo prestabilito in cui gli allarmi Amazon CloudWatch prespecificati monitorano le prestazioni del parco istanze verde. Se durante il periodo di baking non scatta alcun allarme, SageMaker AI termina il parco precedente (parco blu). Se durante il periodo di baking scatta un allarme, viene avviato un rollback automatico e il 100% del traffico torna al parco istanze blu.

Prerequisiti

Prima di configurare un’implementazione con lo spostamento del traffico tutto in una sola volta, devi creare allarmi Amazon CloudWatch per monitorare i parametri dal tuo endpoint. Se uno qualsiasi degli allarmi scatta durante il periodo di baking, il traffico inizia a rifluire verso il vecchio parco istanze. Per informazioni su come configurare gli allarmi CloudWatch su un endpoint, consulta la pagina dei prerequisiti Configurazione e monitoraggio del rollback automatico. Per ulteriori informazioni sugli allarmi CloudWatch, consulta Utilizzo degli allarmi di Amazon CloudWatch nella Guida per l'utente di Amazon CloudWatch.

Configura lo spostamento del traffico tutto in una sola volta

Quando è tutto pronto per l’implementazione e hai configurato gli allarmi CloudWatch per l’endpoint, puoi avviare l’implementazione utilizzando l’API UpdateEndpoint di SageMaker AI o il comando update-endpoint in AWS Command Line Interface.

Come aggiornare un endpoint (API)

L'esempio seguente mostra come aggiornare l'endpoint con lo spostamento del traffico tutto in una sola volta utilizzando UpdateEndpoint nell'API Amazon SageMaker.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "ALL_AT_ONCE" }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" }, ] } } )

Per configurare l’opzione di spostamento del traffico tutto in una sola volta, procedi come segue:

  • Per EndpointName, utilizza il nome dell'endpoint esistente che desideri aggiornare.

  • Per EndpointConfigName, utilizza il nome della configurazione dell'endpoint che desideri utilizzare.

  • Sotto DeploymentConfig e BlueGreenUpdatePolicy, in TrafficRoutingConfiguration, imposta il parametro Type su ALL_AT_ONCE. Ciò specifica che l'implementazione utilizza lo spostamento del traffico tutto in una sola volta.

  • Per TerminationWaitInSeconds, utilizza 600. Questo parametro indica a SageMaker AI di attendere il periodo di tempo specificato (in secondi) dopo che il parco verde è completamente attivo prima di terminare le istanze nel parco blu. In questo esempio, SageMaker AI attende 10 minuti dopo l’ultimo periodo di baking prima di terminare il parco blu.

  • Per MaximumExecutionTimeoutInSeconds, utilizza 1800. Questo parametro imposta il tempo massimo di esecuzione dell’implementazione prima che scada. Nell'esempio precedente, l’implementazione ha un limite di 30 minuti per completare l’esecuzione.

  • In AutoRollbackConfiguration, all’interno del campo Alarms, puoi aggiungere gli allarmi CloudWatch per nome. Crea una voce AlarmName: <your-cw-alarm> per ogni allarme che desideri utilizzare.

Come aggiornare un endpoint con una policy di aggiornamento (API) blu/verde esistente

Quando utilizzi l'API CreateEndpoint per creare un endpoint, puoi facoltativamente specificare una configurazione di implementazione da riutilizzare per i futuri aggiornamenti degli endpoint. Puoi utilizzare le stesse opzioni DeploymentConfig del precedente esempio di API UpdateEndpoint. Non sono state apportate modifiche al comportamento dell'API CreateEndpoint. Specificare la configurazione di implementazione non significa che l’aggiornamento blu/verde sull'endpoint venga eseguito automaticamente.

La possibilità di utilizzare una configurazione di implementazione precedente si verifica quando si utilizza l'API UpdateEndpoint per aggiornare l'endpoint. Quando aggiorni l'endpoint, puoi utilizzare l'opzione RetainDeploymentConfig per mantenere la configurazione di implementazione specificata durante la creazione dell'endpoint.

Quando chiami l'API UpdateEndpoint, imposta RetainDeploymentConfig su True in modo da mantenere le opzioni DeploymentConfig della configurazione originale dell'endpoint.

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

Come aggiornare un endpoint (CLI)

Se utilizzi il AWS CLI, l'esempio seguente mostra come avviare un’implementazione tutto in una sola volta blu/verde utilizzando il comando update-endpoint.

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

Per configurare l’opzione di spostamento del traffico tutto in una sola volta, procedi come segue:

  • Per endpoint-name, utilizza il nome dell'endpoint che desideri aggiornare.

  • Per endpoint-config-name, utilizza il nome della configurazione dell'endpoint che desideri utilizzare.

  • Per deployment-config, utilizza un oggetto JSON BlueGreenUpdatePolicy.

Nota

Se preferisci salvare il tuo oggetto JSON in un file, consulta Generazione dello skeleton AWS CLI e dei parametri di input nella Guida per l'utente AWS CLI.