Uso de cambio de tráfico de canario
Con el cambio de tráfico de valor controlado, puede probar una parte del tráfico de puntos de conexión en la nueva flota, mientras que la antigua flota presta servicio al resto del tráfico. Este paso de prueba es una barrera de seguridad que valida la funcionalidad de la nueva flota antes de transferir todo el tráfico a la nueva flota. Aún tienes las ventajas de una implementación azul/verde, y la función de canalización añadida le permite asegurarse de que su nueva flota (verde) puede hacer inferencias antes de dejar que gestione el 100 % del tráfico.
La parte de su flota verde que se activa para recibir tráfico se denomina valor controlado y puede elegir el tamaño de dicho valor controlado. Tenga en cuenta que el tamaño del valor controlado debe ser inferior o igual al 50 % de la capacidad de la flota nueva. Cuando finaliza el período de cocción y no se activa ninguna alarma de Amazon CloudWatch previamente especificada, el resto del tráfico pasa de la flota antigua (azul) a la flota verde. El cambio de tráfico en el valor controlado le proporciona más seguridad durante la implementación, ya que cualquier problema con el modelo actualizado solo afecta al valor controlado.
El siguiente diagrama muestra cómo el cambio de tráfico de valor controlado gestiona la distribución del tráfico entre las flotas azul y verde.
Una vez que SageMaker AI aprovisiona la flota verde, dirige una parte del tráfico entrante (por ejemplo, el 25 %) al canario. A continuación, comienza el período de cocción, durante el cual las alarmas de CloudWatch supervisan el rendimiento de la flota verde. Durante este tiempo, tanto la flota azul como la verde están parcialmente activas y reciben tráfico. Si alguna de las alarmas se activa durante el período de inactividad, SageMaker AI inicia una reversión y todo el tráfico vuelve a la flota azul. Si ninguna de las alarmas se activa, todo el tráfico pasa a la flota verde y se produce un último período de inactividad. Si el último período de cocción finaliza sin que se active ninguna alarma, la flota verde atiende a todo el tráfico y SageMaker AI pone fin a la flota azul.
Requisitos previos
Antes de configurar una implementación con el cambio de tráfico de valor controlado, debe crear alarmas de Amazon CloudWatch para monitorizar las métricas desde su punto de conexión. Las alarmas están activas durante el período de cocción y, si alguna alarma se activa, todo el tráfico de los puntos de conexión se transfiere a la flota azul. Para obtener más 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 de valor controlado
Cuando lo tenga todo preparado para la implementación y haya configurado las alarmas de Amazon CloudWatch para su punto de conexión, puede utilizar la API UpdateEndpoint de Amazon SageMaker AI o el comando update-endpoint en el AWS CLI para iniciar la implementación.
Temas
Cómo actualizar un punto de conexión (API)
El siguiente ejemplo de la API UpdateEndpoint muestra cómo se puede actualizar un punto final con cambios de tráfico de valor controlado.
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>" } ] } } )
Para configurar la opción de cambio de tráfico de valor controlado, 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, enTrafficRoutingConfiguration, establezca el parámetroTypeenCANARY. Esto especifica que la implementación utiliza el cambio de tráfico de valor controlado.En el campo
CanarySize, puede cambiar el tamaño del valor controlado modificando los parámetrosTypeyValue. EnType, utiliceCAPACITY_PERCENT, es decir, el porcentaje de su flota verde que quiera usar como valor controlado y, a continuación, establezcaValueen30. En este ejemplo, utilizas el 30% de la capacidad de la flota verde como valor controlado. Tenga en cuenta que el tamaño del valor controlado debe ser igual o inferior al 50 % de la capacidad de la flota verde.En
WaitIntervalInSeconds, utilice600. El parámetro indica a SageMaker AI que espere el período de tiempo especificado (en segundos) entre cada cambio de intervalo. Este intervalo es la duración del período de cocción de los valores controlados. En el ejemplo anterior, SageMaker AI espera 10 minutos después del turno del canario y, a continuación, completa el segundo y último cambio de tráfico.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 está utilizando el AWS CLI, el siguiente ejemplo muestra cómo iniciar una implementación de valor controlado azul/verde mediante el 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>"}]}'
Para configurar la opción de cambio de tráfico de valor controlado, haga lo siguiente:
En
endpoint-name, utilice 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.