Spostamento del traffico lineare - Amazon SageMaker

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à.

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 cottura durante il quale gli CloudWatch allarmi Amazon preimpostati monitorano le metriche relative alla flotta 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.

Un trasferimento lineare del traffico riuscito in tre fasi dal vecchio parco istanze a quello nuovo, in cui ogni fase sposta il 33% del traffico.

Una volta SageMaker rifornito il nuovo parco veicoli, la prima parte della flotta verde si accende e riceve traffico. SageMaker disattiva la porzione della flotta blu della stessa dimensione e inizia il periodo di cottura. Se scatta un allarme, tutto il traffico degli endpoint torna al parco istanze blu. Se il periodo di baking termina, inizia il passaggio successivo. 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 scatta un allarme, SageMaker interrompe il processo di cambio e il 100% del traffico torna alla flotta blu.

Prerequisiti

Prima di configurare un'implementazione con spostamento lineare del traffico, devi creare CloudWatch allarmi per monitorare le metriche 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 CloudWatch allarmi su un endpoint, consulta la pagina dei prerequisiti. Configurazione e monitoraggio del rollback automatico Per ulteriori informazioni sugli CloudWatch allarmi, consulta Using Amazon CloudWatch alarms nella Amazon CloudWatch User Guide.

Configurare lo spostamento del traffico lineare

Una volta che sei pronto per la distribuzione e hai impostato gli CloudWatch allarmi per il tuo endpoint, puoi utilizzare l' SageMaker UpdateEndpointAPI Amazon o il comando update-endpoint per avviare la AWS CLI distribuzione.

Come aggiornare un endpoint (API)

Il seguente esempio di UpdateEndpointAPI mostra come aggiornare un endpoint con lo spostamento lineare del traffico.

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 SageMaker di attendere il periodo di tempo specificato (in secondi) tra ogni spostamento del traffico. Questo intervallo è la durata del periodo di cottura tra ogni fase lineare. Nell'esempio precedente, SageMaker attende 5 minuti tra un cambio di traffico e l'altro.

  • Per TerminationWaitInSeconds, utilizza 300. Questo parametro indica SageMaker di attendere il periodo di tempo specificato (in secondi) dopo che la flotta verde è completamente attiva prima di terminare le istanze nel parco istanze blu. In questo esempio, SageMaker attende 5 minuti dopo l'ultimo periodo di cottura prima di terminare la flotta 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.

  • All'interno del Alarms campo, puoi aggiungere i tuoi CloudWatch allarmi per nome. AutoRollbackConfiguration 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'CreateEndpointAPI per creare un endpoint, puoi facoltativamente specificare una configurazione di distribuzione da riutilizzare per futuri aggiornamenti degli endpoint. È possibile utilizzare le stesse DeploymentConfig opzioni dell'esempio di API precedente. UpdateEndpoint Non sono state apportate modifiche al comportamento dell' CreateEndpoint API. Specificare la configurazione di implementazione non significa che l’aggiornamento blu/verde sull'endpoint venga eseguito automaticamente.

L'opzione di utilizzare una configurazione di distribuzione precedente si verifica quando si utilizza l'UpdateEndpointAPI 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 chiamate l'UpdateEndpointAPI, impostatela in modo da RetainDeploymentConfig True mantenere le DeploymentConfig opzioni 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 una distribuzione 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.

  • Perdeployment-config, usa un oggetto JSON. BlueGreenUpdatePolicy

Nota

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