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:
|
| 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. notaSi 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, Implementaciones azul/verde:
|
| 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:
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:
|
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