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 canary
Con lo spostamento del traffico Canary, puoi testare una parte del tuo traffico dell’endpoint sul nuovo parco istanze, mentre il vecchio parco istanze gestisce il resto del traffico. Questa fase di test è un guardrail di sicurezza che convalida la funzionalità del nuovo parco istanze prima di spostare tutto il traffico verso il nuovo parco istanze. Continui ad avere i vantaggi di un'implementazione blu/verde e la funzionalità Canary aggiunta ti consente di assicurarti che il tuo nuovo parco istanze (verde) sia in grado di gestire l’inferenza prima di consentirgli di gestire il 100% del traffico.
La parte del tuo parco istanze verde che si attiva per ricevere traffico è denominata canary e puoi scegliere la dimensione di questo canary. Tieni presente che la dimensione del canary non deve superare il 50% della capacità del nuovo parco istanze. Quando il periodo di baking termina e non viene attivato alcun allarme Amazon CloudWatch prestabilito, il resto del traffico passa dal vecchio parco istanze (blu) a quello verde. Lo spostamento del traffico Canary ti offre maggiore sicurezza durante l'implementazione, poiché qualsiasi problema con il modello aggiornato ha un impatto solo sul canary.
Il diagramma seguente mostra come lo spostamento del traffico Canary gestisce la distribuzione del traffico tra i parchi istanze blu e verdi.
Una volta eseguito il provisioning del parco verde, SageMaker AI instrada una parte del traffico in entrata (ad esempio, il 25%) verso il canary. Inizia quindi il periodo di baking, durante il quale gli allarmi CloudWatch monitorano le prestazioni del parco istanze verde. Durante questo periodo, sia il parco istanze blu che quello verde sono parzialmente attivi e ricevono traffico. Se uno qualsiasi degli allarmi si attiva durante il periodo di baking, SageMaker AI avvia un rollback e tutto il traffico ritorna al parco blu. Se nessuno degli allarmi viene attivaro, tutto il traffico si sposta verso il parco istanze verde e c’è un ultimo periodo di baking. Se l’ultimo periodo di baking termina senza che si attivi alcun allarme, il parco verde gestisce tutto il traffico e SageMaker AI termina il parco blu.
Prerequisiti
Prima di configurare un’implementazione con lo spostamento del traffico canary, devi creare allarmi Amazon 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 Canary
Quando è tutto pronto per l’implementazione e hai configurato gli allarmi Amazon CloudWatch per l’endpoint, puoi avviare l’implementazione utilizzando l’API UpdateEndpoint di Amazon SageMaker AI o il comando update-endpoint in AWS CLI.
Argomenti
Come aggiornare un endpoint (API)
L’esempio seguente dell’API UpdateEndpoint mostra come aggiornare un endpoint con lo spostamento del traffico canary.
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>" } ] } } )
Per configurare l’opzione di spostamento del traffico canary, 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
DeploymentConfigeBlueGreenUpdatePolicy, inTrafficRoutingConfiguration, imposta il parametroTypesuCANARY. Ciò specifica che l'implementazione utilizza lo spostamento del traffico canary.Nel campo
CanarySize, puoi modificare la dimensione del canary modificando i parametriTypeeValue. PerType, usaCAPACITY_PERCENT, ovvero la percentuale del parco istanze verde che desideri utilizzare come canary, quindi impostaValuesu30. In questo esempio, utilizzi il 30% della capacità del parco istanze verde come canary. Tieni presente che la dimensione del canary non deve superare il 50% della capacità del nuovo parco istanze.Per
WaitIntervalInSeconds, utilizza600. Il parametro indica a SageMaker AI di attendere la quantità di tempo specificata (espressa in secondi) tra ogni spostamento di intervallo. Questo intervallo è la durata del periodo di baking del canary. Nell’esempio precedente, SageMaker AI attende 10 minuti dopo lo spostamento del canary e poi completa il secondo e ultimo spostamento di traffico.Per
TerminationWaitInSeconds, utilizza600. 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, utilizza1800. 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 campoAlarms, puoi aggiungere gli allarmi CloudWatch per nome. Crea una voceAlarmName:per ogni allarme che desideri utilizzare.<your-cw-alarm>
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 canary 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": "CANARY", "CanarySize": {"Type": "CAPACITY_PERCENT", "Value": 30}, "WaitIntervalInSeconds": 600}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'
Per configurare l’opzione di spostamento del traffico canary, 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.