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à.
Usa lo spostamento lineare del traffico
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.
Una SageMaker volta 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, 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 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 Amazon SageMaker UpdateEndpointAPIo il comando update-endpoint in per avviare la AWS CLI distribuzione.
Argomenti
Come aggiornare un endpoint () API
L'esempio seguente UpdateEndpointAPImostra 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
eBlueGreenUpdatePolicy
, inTrafficRoutingConfiguration
, imposta il parametroType
suLINEAR
. Ciò specifica che l'implementazione utilizza lo spostamento del traffico lineare.Nel campo
LinearStepSize
, puoi modificare la dimensione delle fasi modificando i parametriType
eValue
. PerType
, usaCAPACITY_PERCENT
, ovvero la percentuale del parco istanze verde che desideri utilizzare come dimensione fase, quindi impostaValue
su20
. 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
, utilizza300
. 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
, utilizza300
. 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
, utilizza3600
. 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 voceAlarmName:
per ogni allarme che desideri utilizzare.<your-cw-alarm>
Come aggiornare un endpoint con una politica di aggiornamento blu/verde esistente () API
Quando si utilizza CreateEndpointAPIper creare un endpoint, è possibile specificare facoltativamente una configurazione di distribuzione da riutilizzare per futuri aggiornamenti degli endpoint. È possibile utilizzare le stesse DeploymentConfig
opzioni dell'esempio precedente. UpdateEndpoint API Non sono state apportate modifiche al CreateEndpoint API comportamento. Specificare la configurazione di implementazione non significa che l’aggiornamento blu/verde sull'endpoint venga eseguito automaticamente.
La possibilità di utilizzare una configurazione di distribuzione precedente si verifica quando si utilizza UpdateEndpointAPIper 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 il UpdateEndpointAPI, impostate RetainDeploymentConfig
in modo da 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
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
, usa un oggetto. BlueGreenUpdatePolicyJSON
Nota
Se preferite salvare JSON l'oggetto in un file, consultate Generazione AWS CLI dello scheletro e dei parametri di input nella Guida per l'AWS CLI utente.