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.
Uso de implementaciones continuas
Cuando actualiza su punto de conexión, puede especificar una implementación continua para cambiar gradualmente el tráfico de su flota anterior a una flota nueva. Puede controlar el tamaño de los pasos del cambio de tráfico, así como especificar un período de evaluación para monitorizar las nuevas instancias en busca de problemas antes de cerrar las instancias de la flota anterior. Con las implementaciones sucesivas, las instancias de la flota anterior se limpian después de cada cambio de tráfico a la nueva flota, lo que reduce la cantidad de instancias adicionales necesarias para actualizar el punto de conexión. Esto resulta especialmente útil para las instancias aceleradas que tienen una gran demanda.
Las implementaciones sucesivas sustituyen gradualmente la implementación anterior de la versión del modelo por la nueva versión mediante la actualización del punto de conexión en tamaños de lote configurables. El comportamiento de cambio de tráfico de las implementaciones sucesivas es similar al modo de cambio de tráfico lineal de la blue/green deployments, but rolling deployments provide you with the benefit of reduced capacity requirements when compared to blue/green deployments. With rolling deployments, fewer instances are active at a time, and you have more granular control over how many instances you want to update in the new fleet. You should consider using a rolling deployment instead of a blue/green implementación si tiene modelos grandes o un punto final grande con muchas instancias.
En la siguiente lista se describen las características clave de las implementaciones sucesivas en Amazon SageMaker AI:
-
Período de cocción.El período de cocción es un período de tiempo establecido para monitorizar la nueva flota antes de pasar a la siguiente fase de implementación. Si alguna de las alarmas preespecificadas se activa durante un período de inactividad, todo el tráfico de los puntos de conexión se transfiere a la flota anterior. El período de cocción le ayuda a aumentar la confianza en su actualización antes de hacer que el cambio de tráfico sea permanente.
-
Tamaño del lote continuo. Tiene control granular sobre el tamaño de cada lote para el cambio de tráfico o la cantidad de instancias que desea actualizar en cada lote. Este número puede oscilar entre el 5 y el 50 % del tamaño de su flota. Puede especificar el tamaño del lote como un número de instancias o como el porcentaje total de su flota.
-
Reversiones automáticas. Puedes especificar CloudWatch las alarmas de Amazon que la SageMaker IA utilizará para monitorizar la nueva flota. Si un problema con el código actualizado activa alguna de las alarmas, la SageMaker IA inicia una reversión automática a la flota anterior para mantener la disponibilidad y minimizar así el riesgo.
nota
Si su punto de conexión utiliza alguna de las características enumeradas en la página Exclusiones, no podrá utilizar implementaciones continuas.
Funcionamiento
Durante un despliegue continuo, la SageMaker IA proporciona la infraestructura necesaria para transferir el tráfico de la flota antigua a la nueva sin tener que aprovisionar todas las instancias nuevas a la vez. SageMaker La IA sigue los siguientes pasos para transferir el tráfico:
-
SageMaker La IA aprovisiona el primer lote de instancias de la nueva flota.
-
Una parte del tráfico se desplaza de las instancias antiguas al primer lote de instancias nuevas.
-
Tras el periodo de cocción, si no se CloudWatch activa ninguna alarma de Amazon, la SageMaker IA limpia un lote de instancias antiguas.
-
SageMaker La IA continúa aprovisionando, desplazando y limpiando las instancias por lotes hasta que se complete la implementación.
Si se activa una alarma durante uno de los períodos de espera, el tráfico vuelve a la flota anterior en lotes del tamaño que usted especifique. Como alternativa, puede especificar la implementación continua para que el 100 % del tráfico vuelva a la flota anterior en caso de que se active una alarma.
El siguiente diagrama muestra la progresión de una implementación continua correcta, tal y como se describe en los pasos anteriores.

Para crear una implementación continua, solo tiene que especificar la configuración de la implementación que desee. Luego, la SageMaker IA se encarga del aprovisionamiento de nuevas instancias, la cancelación de las antiguas y el traslado del tráfico por usted. Puede crear y administrar su implementación a través de la CreateEndpoint SageMaker API UpdateEndpointy AWS Command Line Interface los comandos existentes.
Requisitos previos
Antes de configurar una implementación continua, debes crear CloudWatch alarmas de Amazon para ver las métricas desde tu punto de conexión. Si alguna de las alarmas se activa durante el período de cocción, el tráfico empezará a repercutir en su flota anterior. Para obtener información sobre cómo configurar CloudWatch las alarmas en un punto final, consulte la página de requisitos previos: configuración y supervisió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.
Además, consulte la página Exclusiones para asegurarse de que su punto de conexión cumple con los requisitos para una implementación continua.
Determine el tamaño del lote continuo
Antes de actualizar el punto de conexión, determine el tamaño del lote que quiera utilizar para transferir el tráfico de forma gradual a la nueva flota.
En las implementaciones continuas, puede especificar un tamaño de lote que represente entre el 5 y el 50 % de la capacidad de su flota. Si elige un tamaño de lote grande, la implementación se completa más rápidamente. Sin embargo, tenga en cuenta que el punto de conexión requiere más capacidad durante la actualización, aproximadamente la sobrecarga del tamaño del lote. Si elige un tamaño de lote más pequeño, la implementación tardará más, pero utilizará menos capacidad durante la implementación.
Configurar una implementación continua
Cuando esté listo para la implementación y haya configurado CloudWatch las alarmas para su terminal, puede utilizar la UpdateEndpointAPI de SageMaker IA o el comando update-endpoint AWS Command Line Interface para iniciar la implementación.
¿Cómo actualizar un punto de conexión?
En el siguiente ejemplo, se muestra cómo puede actualizar su terminal mediante un despliegue continuo mediante el método update_endpoint
Para configurar una implementación continua, utilice el ejemplo y los campos siguientes:
-
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 el
AutoRollbackConfiguration
objeto, dentro delAlarms
campo, puede añadir sus CloudWatch alarmas por nombre. Cree una entradaAlarmName: <your-cw-alarm>
para cada alarma que quiera utilizar. -
En
DeploymentConfig
, para el objetoRollingUpdatePolicy
, especifique los siguientes campos:-
MaximumExecutionTimeoutInSeconds
: el límite de tiempo para la implementación total. Si se supera este límite, el tiempo de espera se agota. El valor máximo que puede especificar para este campo es de 28800 segundos u 8 horas. -
WaitIntervalInSeconds
— La duración del período de cocción, durante el cual la SageMaker IA monitorea las alarmas de cada lote de la nueva flota. -
MaximumBatchSize
: especifique elType
del lote que quiera utilizar (el número de instancias o el porcentaje total de su flota) y elValue
o tamaño de cada lote. -
RollbackMaximumBatchSize
: utilice este objeto para especificar la estrategia de reversión en caso de que se active una alarma. Especifique elType
del lote que quiera utilizar (número de instancias o porcentaje total de su flota) y elValue
o tamaño de cada lote. Si no especificas estos campos o si estableces el valor en el 100% del punto final, la SageMaker IA utiliza una estrategia de reducción azul/verde y devuelve todo el tráfico a la flota anterior cuando se activa una alarma.
-
import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", DeploymentConfig={ "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>
" }, ] }, "RollingUpdatePolicy": { "MaximumExecutionTimeoutInSeconds": number, "WaitIntervalInSeconds": number, "MaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, "RollbackMaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, } } )
Tras actualizar el dispositivo, es posible que desee comprobar el estado de su implementación continua y comprobar el estado de su punto de conexión. Puedes revisar el estado de tu terminal en la consola de SageMaker IA o puedes revisar el estado de tu punto final mediante la API. DescribeEndpoint
En el objeto VariantStatus
devuelto por la API DescribeEndpoint
, el campo Status
indica el estado actual de implementación o funcionamiento de su dispositivo de punto de conexión. Para obtener más información sobre los posibles estados y su significado, consulte ProductionVariantStatus.
Si ha intentado realizar una implementación continua y el estado de su punto de conexión es UpdateRollbackFailed
, consulte la siguiente sección para obtener ayuda con la solución de problemas.
Administración de errores
Si las implementaciones continuas fallan y la reversión automática también falla, el punto de conexión puede quedarse con el estado de UpdateRollbackFailed
. Este estado significa que se han implementado diferentes configuraciones de punto de conexión en las instancias situadas detrás de su punto de conexión y que este está en servicio con una combinación de configuraciones de punto de conexión antiguas y nuevas.
Puede realizar otra llamada a la UpdateEndpointAPI para devolver el punto final a un estado correcto. Especifique la configuración del punto de conexión y la configuración de implementación que quiera (ya sea una implementación continua, una implementación azul/verde o ninguna de las dos) para actualizar su punto de conexión.
Puedes llamar a la DescribeEndpointAPI para comprobar de nuevo el estado de tu punto final, que se devuelve en el VariantStatus
objeto como Status
campo. Si la actualización se realiza correctamente, el Status
del punto de conexión devolverá InService
.