Uso de configuraciones de implementación en CodeDeploy - AWS CodeDeploy

Uso de configuraciones de implementación en CodeDeploy

Una configuración de implementación es un conjunto de reglas y condiciones de éxito y error que CodeDeploy utiliza durante una implementación. Estas reglas y condiciones son diferentes en función de si realiza la implementación en una plataforma de informática EC2/en las instalaciones, una plataforma de informática AWS Lambda o una plataforma de informática Amazon ECS.

Configuraciones de implementación en una plataforma de informática EC2/en las instalaciones

Cuando se realiza la implementación en una plataforma de computación EC2/en las instalaciones, la configuración de implementación especifica, a través de un valor mínimo de hosts en buen estado, el número o porcentaje de instancias que deben estar disponibles en cualquier momento durante una implementación.

Puede utilizar una de las tres configuraciones de implementación predefinidas proporcionada por AWS, o bien crear una configuración de implementación personalizada. Para obtener más información sobre la creación de configuraciones de implementación personalizadas, consulte Create a Deployment Configuration. Si no especifica una configuración de implementación, CodeDeploy usará la configuración de implementación CodeDeployDefault.OneAtATime.

Para obtener más información sobre el modo en que CodeDeploy monitoriza y evalúa el estado de las instancias durante la implementación, consulte Instance Health. Para ver una lista de las configuraciones de implementación ya registradas en su cuenta de AWS, consulte View Deployment Configuration Details.

Configuraciones de implementación predefinidas para una plataforma de informática EC2/en las instalaciones

La siguiente tabla muestra las configuraciones de implementación predefinidas.

nota

No hay configuraciones de implementación predefinidas que admitan la característica zonal configuration (que es la función que le permite especificar la cantidad de hosts en buen estado por zona de disponibilidad). Si desea utilizar esta característica, debe crear su propia configuración de implementación.

Configuración de implementación Descripción
CodeDeployDefault.AllAtOnce

Implementaciones in situ:

Intenta implementar una revisión de aplicación en tantas instancias a la vez como sea posible. El estado de la implementación global se muestra como Realizado correctamente cuando la revisión de la aplicación se haya implementado en una o más instancias. El estado de la implementación global se muestra como Error cuando la revisión de la aplicación no se ha implementado en ninguna instancia. Tomando como ejemplo nueve instancias, CodeDeployDefault.AllAtOnce intenta implementar en las nueve a la vez. La implementación global tiene éxito si se realiza de forma correcta incluso la implementación en una sola instancia. Devuelve un error solo si se produce un error en las implementaciones de las nueve instancias.

Implementaciones azul/verde:

  • Implementación en entorno de sustitución: sigue las mismas reglas que CodeDeployDefault.AllAtOnce para las implementaciones in situ.

  • Redirección del tráfico: dirige el tráfico a todas las instancias del entorno de sustitución a la vez. Tiene éxito si el tráfico se dirige correctamente a al menos una instancia. Fracasa si la redirección del tráfico falla para todas las instancias.

CodeDeployDefault.HalfAtATime

Implementaciones in situ:

Implementa hasta en la mitad de las instancias a la vez (redondeando a la baja). La implementación global tiene éxito si la revisión de la aplicación se implementa en al menos la mitad de las instancias (redondeando al alza). De lo contrario, la implementación produce un error. En el ejemplo de nueve instancias, se implementa hasta en cuatro instancias a la vez. La implementación global tiene éxito si la implementación es correcta en cinco o más instancias. De lo contrario, la implementación produce un error.

nota

Si está implementando en instancias de varios grupos de escalado automático, CodeDeploy implementará hasta la mitad de las instancias a la vez, independientemente del grupo de escalado automático en el que se encuentren. Por ejemplo, supongamos que tiene dos grupos de escalado automático, ASG1 y ASG2, cada uno con 10 instancias. En este escenario, CodeDeploy podría implementarse en 10 instancias en solo ASG1 y considerarlo un éxito porque se implementó en al menos la mitad de las instancias.

Implementaciones azul/verde:

  • Implementación en entorno de sustitución: sigue las mismas reglas que CodeDeployDefault.HalfAtATime para las implementaciones in situ.

  • Redirección del tráfico: dirige el tráfico hacia la mitad de las instancias del entorno de sustitución a la vez, como máximo. Tiene éxito si la redirección es correcta para al menos la mitad de las instancias. De lo contrario, devuelve un error.

CodeDeployDefault.OneAtATime

Implementaciones in situ:

Implementa la revisión de la aplicación en solo una instancia cada vez.

En el caso de grupos de implementaciones que contengan más de una instancia:

  • La implementación global tiene éxito si la revisión de la aplicación se implementa en todas las instancias. La excepción a esta regla se da cuando falla la implementación en la última instancia: la implementación global sigue teniendo éxito. Esto se debe a que, con la configuración CodeDeployDefault.OneAtATime, CodeDeploy solo permite desactivar una instancia cada vez.

  • La implementación global fracasa si la implementación de la revisión de la aplicación falla en cualquier instancia, salvo la última.

  • En el ejemplo con nueve instancias, la implementación se hace en una instancia cada vez. La implementación global tiene éxito si la implementación en las primeras ocho instancias se realiza de forma correcta. La implementación global genera un error si la implementación en alguna de las primeras ocho instancias devuelve un error.

En el caso de grupos de implementaciones que contengan una única instancia, la implementación global solo tiene éxito si la implementación en la única instancia es correcta.

Implementaciones azul/verde:

  • Implementación en entorno de sustitución: sigue las mismas reglas que CodeDeployDefault.OneAtATime para las implementaciones in situ.

  • Redirección del tráfico: dirige el tráfico a una instancia del entorno de sustitución cada vez. Tiene éxito si el tráfico se redirige correctamente a todas las instancias de sustitución. Fracasa en cuanto la redirección falla. La excepción a esta regla se da cuando no puede registrarse la última instancia: la implementación global sigue teniendo éxito.

Configuraciones de implementación en una plataforma de informática de Amazon ECS

Cuando la implementación se realiza en una plataforma de informática de Amazon ECS, la configuración de implementación especifica cómo se desvía el tráfico al conjunto de tareas actualizado de Amazon ECS. Puede desviar el tráfico mediante una configuración de implementación de valor controlado, lineal o integral. Para obtener más información, consulte Configuración de implementación.

También puede crear su propia configuración de implementación "canary" o "linear". Para obtener más información, consulte Create a Deployment Configuration.

Configuraciones de implementación predefinidas para una plataforma de informática de Amazon ECS

La siguiente tabla muestra las configuraciones predefinidas disponibles para implementaciones de Amazon ECS.

nota

Cuando se utiliza un Equilibrador de carga de red, solo se admite la configuración de implementación predefinida CodeDeployDefault.ECSAllAtOnce.

Configuración de implementación Descripción

CodeDeployDefault.ECSLinear10PercentEvery1Minutes

Desvía el 10 por ciento del tráfico cada minuto hasta que se desvía todo el tráfico.

CodeDeployDefault.ECSLinear10PercentEvery3Minutes

Desvía el 10 por ciento del tráfico cada tres minutos hasta que se desvía todo el tráfico.

CodeDeployDefault.ECSCanary10Percent5Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa cinco minutos más tarde.

CodeDeployDefault.ECSCanary10Percent15Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa 15 minutos más tarde.

CodeDeployDefault.ECSAllAtOnce

Desvía todo el tráfico al contenedor de Amazon ECS actualizado a la vez.

Configuraciones de implementación para implementaciones azul/verde de CloudFormation (Amazon ECS)

Si se realiza una implementación en Amazon ECS a través de implementaciones azul/verde de CloudFormation, la configuración de implementación especifica cuánto tráfico se envía al contenedor de Amazon ECS actualizado. Puede desviar el tráfico mediante una configuración de implementación de valor controlado, lineal o integral. Para obtener más información, consulte Configuración de implementación.

Con las implementaciones azul/verde de CloudFormation, no puede crear su propia configuración de implementación de valor controlado o lineal personalizada. Para obtener instrucciones paso a paso sobre cómo utilizar CloudFormation para administrar las implementaciones azul/verde de Amazon ECS, consulte Automatizar implementaciones azul/verde de ECS a través de CodeDeploy usando CloudFormation en la Guía del usuario de CloudFormation.

nota

La administración de implementaciones azul/verde de Amazon ECS con CloudFormation no está disponible en las regiones de Europa (Milán), África (Ciudad del Cabo) ni Asia Pacífico (Osaka).

Configuraciones de implementación en una plataforma de informática de AWS Lambda

Si realiza la implementación en una plataforma de informática de AWS Lambda, la configuración de implementación especifica el modo en que se desvía el tráfico a las nuevas versiones de la función de Lambda de la aplicación. Puede desviar el tráfico mediante una configuración de implementación de valor controlado, lineal o integral. Para obtener más información, consulte Configuración de implementación.

También puede crear su propia configuración de implementación "canary" o "linear". Para obtener más información, consulte Create a Deployment Configuration.

Configuraciones de implementación predefinidas para una plataforma de informática de AWS Lambda

La siguiente tabla muestra las configuraciones predefinidas disponibles para implementaciones de AWS Lambda.

Configuración de implementación Descripción

CodeDeployDefault.LambdaCanary10Percent5Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa cinco minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent10Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa 10 minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent15Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa 15 minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent30Minutes

Desvía el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa 30 minutos más tarde.

CodeDeployDefault.LambdaLinear10PercentEvery1Minute

Desvía el 10 por ciento del tráfico cada minuto hasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery2Minutes

Desvía el 10 por ciento del tráfico cada dos minutos hasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery3Minutes

Desvía el 10 por ciento del tráfico cada tres minutos hasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery10Minutes Desvía el 10 por ciento del tráfico cada 10 minutos hasta que se desvía todo el tráfico.
CodeDeployDefault.LambdaAllAtOnce

Desvía todo el tráfico a las funciones Lambda actualizadas a la vez.

Temas