Utilizzare lo spostamento del traffico lineare - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzare lo spostamento del traffico lineare

Lo spostamento del traffico lineare consente di spostare gradualmente il traffico dal vecchio parco istanze (parco istanze blu) al nuovo parco istanze (parco istanze verde). Con lo spostamento del traffico lineare, puoi spostare il traffico in più fasi, riducendo al minimo la possibilità di interruzione dell'endpoint. Questa opzione di implementazione blu/verde ti offre il controllo più granulare sullo spostamento del traffico.

Puoi scegliere il numero di istanze o la percentuale della capacità del parco istanze verde da attivare durante ogni fase. Ogni fase lineare deve essere compresa solo tra il 10 e il 50% della capacità del parco istanze verde. Per ogni fase, è previsto un periodo di baking durante il quale gli allarmi Amazon CloudWatch preimpostati monitorano i parametri del parco istanze verde. Una volta terminato il periodo di baking e non scatta alcun allarme, la parte attiva del tuo parco istanze flotta verde continua a ricevere traffico e inizia una nuova fase. Se gli allarmi scattano durante uno qualsiasi dei periodi di baking, il 100% del traffico finale ritorna al parco istanze blu.

Il diagramma seguente mostra come il traffico lineare sposta il traffico verso i parchi istanze blu e verdi.

Uno spostamento in tre fasi del traffico lineare riuscito dal parco precedente al nuovo parco.

Una volta che SageMaker AI effettua il provisioning del nuovo parco, la prima parte del parco verde si attiva e riceve traffico. SageMaker AI disattiva la parte del parco blu della stessa dimensione e inizia il periodo di incorporamento. Se scatta un allarme, tutto il traffico degli endpoint torna al parco istanze blu. Se il periodo di baking termina, ha inizio la fase successiva. Un'altra parte del parco istanze verde si attiva e riceve traffico, una parte del parco istanze blu si disattiva e inizia un altro periodo di baking. Lo stesso processo si ripete fino a quando il parco istanze blu non viene completamente disattivato e il parco istanze verde è completamente attivo e riceve tutto il traffico. Se in qualsiasi momento si attiva un allarme, SageMaker AI termina il processo di spostamento e il 100% del traffico torna al parco blu.

Prerequisiti

Prima di configurare un’implementazione con lo spostamento del traffico lineare, devi creare allarmi CloudWatch per monitorare i parametri dal tuo endpoint. Gli allarmi sono attivi durante il periodo di baking e, se qualche allarme si attiva, tutto il traffico degli endpoint torna al parco istanze blu. 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.

Configurare lo spostamento del traffico lineare

Una volta giunto il momento dell’implementazione, dopo aver configurato gli allarmi CloudWatch per il tuo endpoint, puoi utilizzare l’API UpdateEndpoint di Amazon SageMaker AI o il comando update-endpoint nell’AWS CLI per avviare l’implementazione.

Come aggiornare un endpoint (API)

L’esempio seguente dell’API UpdateEndpoint mostra come aggiornare un endpoint con lo spostamento del traffico lineare.

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>" } ] } } )

Per configurare l’opzione di spostamento del traffico lineare, 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 LINEAR. Ciò specifica che l'implementazione utilizza lo spostamento del traffico lineare.

  • Nel campo LinearStepSize, puoi modificare la dimensione delle fasi modificando i parametri Type e Value. Per Type, usa CAPACITY_PERCENT, ovvero la percentuale del parco istanze verde che desideri utilizzare come dimensione fase, quindi imposta Value su 20. In questo esempio, attivi il 20% della capacità del parco istanze verde per ogni fase di spostamento del traffico. Tieni presente che quando personalizzi le dimensioni di fasi lineari, devi utilizzare solo fasi che rappresentano il 10-50% della capacità del parco istanze verde.

  • Per WaitIntervalInSeconds, utilizza 300. Il parametro indica a SageMaker AI di attendere la quantità di tempo specificata (espressa in secondi) tra ogni spostamento di traffico. Questo intervallo è la durata del periodo di cottura tra ogni fase lineare. Nell’esempio precedente, SageMaker AI attende 5 minuti tra uno spostamento di traffico e l’altro.

  • Per TerminationWaitInSeconds, utilizza 300. 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 5 minuti dopo l’ultimo periodo di baking prima di terminare il parco blu.

  • Per MaximumExecutionTimeoutInSeconds, utilizza 3600. Questo parametro imposta il tempo massimo di esecuzione dell’implementazione prima che scada. Nell'esempio precedente, l’implementazione ha un limite di 1 ora 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 lineare 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": "LINEAR", "LinearStepSize": {"Type": "CAPACITY_PERCENT", "Value": 20}, "WaitIntervalInSeconds": 300}, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

Per configurare l’opzione di spostamento del traffico lineare, 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.