Cambio de tráfico lineal - 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 lineal

El cambio lineal del tráfico le permite transferir gradualmente el tráfico de su flota anterior (flota azul) a su nueva flota (flota verde). Con el cambio de tráfico lineal, puede desplazar el tráfico en varios pasos, lo que minimiza la posibilidad de que se produzca una interrupción en su punto de conexión. Esta opción de implementación azul/verde le brinda el control más detallado sobre los cambios de tráfico.

Puede elegir el número de instancias o el porcentaje de la capacidad de la flota verde que se activará en cada paso. Cada paso lineal solo debe representar entre el 10 y el 50 % de la capacidad de la flota verde. Para cada paso, hay un período de cocción durante el cual las CloudWatch alarmas de Amazon preespecificadas monitorean las métricas de la flota ecológica. Cuando finalice el período de cocción y no se active ninguna alarma, la parte activa de su flota verde seguirá recibiendo tráfico y comenzará un nuevo paso. Si las alarmas se activan durante alguno de los períodos de cocción, el 100 % del tráfico de los puntos de conexión se transfiere a la flota azul.

El siguiente diagrama muestra cómo el tráfico lineal desvía el tráfico hacia las flotas azul y verde.

Un cambio lineal exitoso de tres pasos del tráfico de la flota antigua a la nueva flota.

Una vez que se SageMaker aprovisiona la nueva flota, la primera parte de la flota verde se enciende y recibe el tráfico. SageMaker desactiva una parte del mismo tamaño de la flota azul y comienza el período de inactividad. Si se activa alguna alarma, todo el tráfico de los puntos de conexión se transfiere a la flota azul. Al finalizar el período de cocción, comienza el siguiente paso. Otra parte de la flota verde se activa y recibe tráfico, otra parte de la flota azul se desactiva y comienza otro período de cocción. El mismo proceso se repite hasta que la flota azul esté completamente desactivada y la flota verde esté completamente activa y reciba todo el tráfico. Si suena una alarma en cualquier momento, SageMaker finaliza el proceso de cambio y el 100% del tráfico vuelve a la flota azul.

Requisitos previos

Antes de configurar una implementación con un cambio lineal del tráfico, debe crear CloudWatch alarmas para monitorear las métricas desde su terminal. 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, consulte 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 el cambio de tráfico lineal

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

Cómo actualizar un punto final () API

En el siguiente ejemplo se UpdateEndpointAPImuestra cómo se puede actualizar un punto final con un cambio de tráfico lineal.

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>" } ] } } )

Para configurar la opción de cambio de tráfico lineal, 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 LINEAR. Esto especifica que la implementación utiliza el desplazamiento lineal del tráfico.

  • En el campo LinearStepSize, puede cambiar el tamaño de los pasos modificando los parámetros Type y Value. En Type, utilice CAPACITY_PERCENT, es decir, el porcentaje de su flota verde que quiera utilizar como tamaño de paso y, a continuación, establezca Value en 20. En este ejemplo, se activa el 20 % de la capacidad de la flota verde para cada paso de cambio de tráfico. Tenga en cuenta que, al personalizar el tamaño de su paso lineal, solo debe usar pasos que ocupen entre el 10 y el 50 % de la capacidad de la flota verde.

  • En WaitIntervalInSeconds, utilice 300. El parámetro indica SageMaker que hay que esperar el tiempo especificado (en segundos) entre cada cambio de tráfico. Este intervalo es la duración del período de cocción entre cada paso lineal. En el ejemplo anterior, SageMaker espera 5 minutos entre cada cambio de tráfico.

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

  • En MaximumExecutionTimeoutInSeconds, utilice 3600. 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 1 hora 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 final con una política de actualización azul/verde existente () API

Cuando se utiliza CreateEndpointAPIpara crear un punto final, si lo desea, puede especificar una configuración de despliegue para volver a utilizarla en futuras actualizaciones del punto final. Puede utilizar las mismas DeploymentConfig opciones que en el UpdateEndpoint API ejemplo anterior. No hay cambios en el CreateEndpoint API comportamiento. 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 UpdateEndpointAPIpara 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 al UpdateEndpointAPI, RetainDeploymentConfig True configúrelo en para mantener las DeploymentConfig opciones de su configuración de punto final original.

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

Cómo actualizar un punto final (CLI)

Si está utilizando el AWS CLI, en el siguiente ejemplo se muestra cómo iniciar una implementación lineal 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": "LINEAR", "LinearStepSize": {"Type": "CAPACITY_PERCENT", "Value": 20}, "WaitIntervalInSeconds": 300}, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

Para configurar la opción de cambio de tráfico lineal, 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. BlueGreenUpdatePolicyJSON

nota

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