Uso de cambio de tráfico todo a la vez
Dado que el tráfico cambia todo a la vez, puede implementar rápidamente una actualización de punto de conexión utilizando las barreras de protección de una implementación azul/verde. Puede utilizar esta opción de cambio de tráfico para minimizar la duración de la actualización y, al mismo tiempo, aprovechar las garantías de disponibilidad de las implementaciones azul/verde. La función de período de cocción le ayuda a monitorizar el rendimiento y la funcionalidad de las nuevas instancias antes de cerrar las antiguas, lo que garantiza que su nueva flota esté en pleno funcionamiento.
El siguiente diagrama muestra cómo los cambios de tráfico gestionan simultáneamente las flotas antiguas y nuevas.
Cuando utiliza el cambio de tráfico todo a la vez, SageMaker AI enruta el 100 % del tráfico a la nueva flota (flota verde). Una vez que la flota verde comienza a recibir tráfico, comienza el período de cocción. El período de cocción es un período de tiempo establecido en el que las alarmas preespecificadas de Amazon CloudWatch supervisan el rendimiento de la flota verde. Si no se activa ninguna alarma durante el período de cocción, SageMaker AI cancela la flota anterior (flota azul). Si alguna alarma se activa durante el período de cocción, se inicia una reversión automática y el 100 % del tráfico vuelve a la flota azul.
Requisitos previos
Antes de configurar una implementación con un cambio de tráfico todo a la vez, debe crear alarmas de Amazon CloudWatch para observar las métricas desde su punto de conexión. Si alguna de las alarmas se activa durante el período de cocción, el tráfico vuelve a su flota azul. Para obtener información acerca de cómo configurar las alarmas de CloudWatch en un punto de conexión, consulte la página de requisitos previos Configuración y monitorización de la reversión automática. Para obtener más información acerca de la creación de alarmas de CloudWatch, consulte Uso de las alarmas de Amazon CloudWatch en la Guía del usuario de Amazon CloudWatch.
Configurar cambio de tráfico todo a la vez
Cuando esté preparado para la implementación y haya configurado las alarmas de CloudWatch para su punto de conexión, puede utilizar la API UpdateEndpoint de SageMaker AI o el comando update-endpoint en AWS Command Line Interface para iniciar la implementación.
Temas
Cómo actualizar un punto de conexión (API)
El siguiente ejemplo muestra cómo actualizar su punto de conexión con un cambio de tráfico todo a la vez mediante UpdateEndpoint en la API de 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>" }, ] } } )
Para configurar la opción de cambio de tráfico todo a la vez, haga lo siguiente:
En
EndpointName, utilice el nombre del punto de conexión existente que quiera actualizar.En
EndpointConfigName, utilice el nombre de la configuración de punto de conexión que quiera utilizar.En
DeploymentConfigyBlueGreenUpdatePolicy, inTrafficRoutingConfiguration, establezca el parámetroTypeenALL_AT_ONCE. Esto especifica que la implementación utiliza el modo de cambio de tráfico todo a la vez.En
TerminationWaitInSeconds, utilice600. Este parámetro indica a SageMaker AI que espere el tiempo especificado (en segundos) después de que la flota verde esté completamente activa antes de finalizar las instancias de la flota azul. En este ejemplo, SageMaker AI espera 10 minutos después del último período de cocción antes de cerrar la flota azul.En
MaximumExecutionTimeoutInSeconds, utilice1800. Este parámetro establece el período máximo de tiempo durante el cual puede ejecutarse la implementación antes de que transcurra el tiempo de espera. En el ejemplo anterior, la implementación tiene un límite de 30 minutos para finalizar.En
AutoRollbackConfiguration, dentro del campoAlarms, puede añadir sus alarmas de CloudWatch por nombre. Cree una entradaAlarmName:para cada alarma que quiera utilizar.<your-cw-alarm>
Cómo actualizar un punto de conexión con una política de actualización (API) azul/verde existente
Cuando utilice la API CreateEndpoint para crear un punto de conexión, puede especificar, si lo desea, una configuración de implementación para reutilizarla en futuras actualizaciones del punto de conexión. Puede usar las mismas opciones de DeploymentConfig que en el ejemplo anterior de la API UpdateEndpoint. No hay cambios en el comportamiento de la API CreateEndpoint. Al especificar la configuración de implementación, no se realiza automáticamente ninguna actualización azul/verde en el punto de conexión.
La opción de usar una configuración de implementación anterior se produce cuando se usa la API UpdateEndpoint para actualizar el punto de conexión. Al actualizar el punto de conexión, puede utilizar la opción RetainDeploymentConfig para conservar la configuración de implementación que haya especificado al crear el punto de conexión.
Al llamar a la API UpdateEndpoint, establezca RetainDeploymentConfig en True para mantener las opciones DeploymentConfig de la configuración de su punto de conexión original.
response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", RetainDeploymentConfig=True )
Cómo actualizar un punto de conexión (CLI)
Si utiliza el AWS CLI, en el siguiente ejemplo se muestra cómo iniciar una implementación azul/verde todo a la vez mediante el 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>"}]}'
Para configurar la opción de cambio de tráfico todo a la vez, haga lo siguiente:
En
endpoint-name, use el nombre del punto de conexión que quiera actualizar.En
endpoint-config-name, utilice el nombre de la configuración del punto de conexión que quiera utilizar.En
deployment-config, utilice un objeto JSON BlueGreenUpdatePolicy.
nota
Si prefiere guardar el objeto JSON en un archivo, consulte Generación de parámetros esquemáticos AWS CLI y de entrada en la Guía del usuario de AWS CLI.