Cambio de tráfico de valor controlado - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cambio de tráfico de valor controlado

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 CloudWatch alarma de Amazon previamente especificada, el resto del tráfico pasa de la flota antigua (azul) a la 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.

Un exitoso cambio de tráfico de valor controlado de dos pasos de la flota antigua a la flota nueva.

Una vez que se SageMaker aprovisiona la flota verde, SageMaker dirige una parte del tráfico entrante (por ejemplo, el 25%) hacia el Canario. A continuación, comienza el período de inactividad, durante el cual CloudWatch las alarmas monitorizan el rendimiento de la flota ecológica. 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, se SageMaker 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 inactividad finaliza sin que se active ninguna alarma, la flota verde atenderá a todo el tráfico y pondrá SageMaker fin a la flota azul.

Requisitos previos

Antes de configurar una implementación con Canary Traffic Shifting, debes crear CloudWatch alarmas de Amazon para monitorear las métricas desde tu 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 información sobre cómo configurar CloudWatch las alarmas en un punto final, consulta la página de requisitos previosConfiguración y monitorización de la reversión automática. Para obtener más información sobre CloudWatch las alarmas, consulta Uso de CloudWatch las alarmas de Amazon en la Guía del CloudWatch usuario de Amazon.

Configurar cambio de tráfico de valor controlado

Cuando esté listo para la implementación y haya configurado CloudWatch las alarmas de Amazon para su terminal, puede usar la SageMaker UpdateEndpointAPI de Amazon o el comando update-endpoint AWS CLI para iniciar la implementación.

Cómo actualizar un punto de conexión (API)

En el siguiente ejemplo de la UpdateEndpointAPI, se muestra cómo actualizar un punto final con el tráfico de Canary Traffic Shifting.

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 DeploymentConfig y BlueGreenUpdatePolicy, en TrafficRoutingConfiguration, establezca el parámetro Type en CANARY. 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ámetros Type y Value. En Type, utilice CAPACITY_PERCENT, es decir, el porcentaje de su flota verde que quiera usar como valor controlado y, a continuación, establezca Value en 30. 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, utilice 600. El parámetro indica SageMaker que hay que esperar el tiempo especificado (en segundos) entre cada turno de intervalo. Este intervalo es la duración del período de cocción de los valores controlados. En el ejemplo anterior, SageMaker espera 10 minutos después del turno de canarios y, a continuación, completa el segundo y último turno de tráfico.

  • En TerminationWaitInSeconds, utilice 600. Este parámetro indica SageMaker que hay que esperar el tiempo especificado (en segundos) hasta que la flota verde esté completamente activa antes de finalizar las instancias de la flota azul. En este ejemplo, SageMaker espere 10 minutos después del último período de cocción antes de cerrar la flota azul.

  • En MaximumExecutionTimeoutInSeconds, utilice 1800. 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.

  • EnAutoRollbackConfiguration, dentro del Alarms campo, puede añadir sus CloudWatch alarmas por nombre. Cree una entrada AlarmName: <your-cw-alarm> para cada alarma que quiera utilizar.

Cómo actualizar un punto de conexión con una política de actualización (API) azul/verde existente

Cuando usa la CreateEndpointAPI para crear un punto final, puede especificar opcionalmente una configuración de implementación para reutilizarla en futuras actualizaciones del punto final. Puede usar las mismas DeploymentConfig opciones que en el ejemplo de UpdateEndpoint API anterior. No hay cambios en el comportamiento de la CreateEndpoint API. 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 UpdateEndpointAPI para actualizar el punto final. 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 UpdateEndpointAPI, configúrela en esta opción RetainDeploymentConfig True para mantener las DeploymentConfig opciones de la configuración original de su punto final.

response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", RetainDeploymentConfig=True )

Cómo actualizar un punto de conexión (CLI)

Si utilizas la AWS CLI, en el siguiente ejemplo se muestra cómo iniciar una implementación de Canary 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.

  • Para ellodeployment-config, utilice un objeto JSON. BlueGreenUpdatePolicy

nota

Si prefiere guardar el objeto JSON en un archivo, consulte Generación de parámetros AWS CLI básicos y de entrada en la Guía del AWS CLI usuario.