View a markdown version of this page

Implemente pilas de AWS CloudFormation más rápido con el modo rápido - AWS CloudFormation

Implemente pilas de AWS CloudFormation más rápido con el modo rápido

Con el modo rápido de CloudFormation, puede completar las operaciones de pila tan pronto como CloudFormation aplique la configuración de los recursos, sin esperar a que estos se estabilicen por completo. Utilice el modo rápido para crear, actualizar y eliminar pilas de forma significativamente más rápida durante los flujos de trabajo de desarrollo iterativo.

El modo rápido funciona con todas las plantillas de CloudFormation existentes. No es necesario hacer ningún cambio en la plantilla para utilizar el modo rápido.

Cuándo usar el modo rápido

Utilice el modo rápido para los flujos de trabajo de desarrollo e iteración en los que la velocidad es más importante que esperar a que se estabilicen todos los recursos. Utilice el modo rápido en las siguientes situaciones:

  • Durante el desarrollo, hay iteración de los cambios de plantilla.

  • Desea obtener información más rápida sobre si las configuraciones de sus recursos son válidas.

  • No tiene que esperar a que los recursos estén completamente operativos para continuar.

En el caso de las implementaciones de producción en las que necesite comprobar que los recursos estén totalmente estabilizados y operativos antes de dar por finalizada la implementación, utilice el modo de implementación predeterminado.

Cómo funciona el modo rápido

En el modo de implementación predeterminado, CloudFormation espera a que cada recurso alcance un estado completamente estabilizado antes de informar que el recurso está completo. Por ejemplo, al crear una instancia de Amazon EC2, CloudFormation espera a que la instancia esté en el estado running.

En el modo rápido, CloudFormation normalmente considera que la operación de un recurso se ha completado en cuanto se realiza correctamente la llamada a la API para crear, actualizar o eliminar el recurso. En la mayoría de los casos, CloudFormation no espera a que el recurso alcance su estado operativo final.

Esto significa que, una vez completada una operación de apilado en modo rápido:

  • Es posible que los recursos sigan inicializando o propagando los cambios.

  • Es posible que los recursos aún no estén preparados para atender el tráfico o aceptar conexiones.

  • Puede ser que las operaciones de eliminación estén todavía en curso.

Cómo gestiona CloudFormation las dependencias en modo rápido

El modo rápido respeta las dependencias de recursos definidas en la plantilla. Si un recurso hace referencia al identificador o atributo de otro recurso (mediante Ref o Fn::GetAtt), CloudFormation confirma que se ha aplicado la configuración del recurso al que se hace referencia antes de iniciar el recurso dependiente. Si un recurso dependiente encuentra un error transitorio porque un recurso al que se hace referencia no está listo, CloudFormation vuelve a intentar la operación.

Los recursos que no dependen unos de otros pueden proceder en paralelo.

El modo rápido no cambia el orden de dependencia de los recursos. Cambia cuando la operación de pila notifica que se ha completado.

Introducción al modo rápido

Puede usar el modo rápido con AWS Command Line Interface (AWS CLI), AWS Cloud Development Kit (AWS CDK) (AWS CDK), la consola de CloudFormation y los conjuntos de cambios. En las secciones siguientes se describe cómo activar el modo rápido con cada método.

Uso del modo rápido con la AWS CLI

Para usar el modo rápido con la AWS CLI, añada el parámetro --deployment-config a sus comandos de operación de pila.

Creación de una pila con el modo rápido

El siguiente comando crea una pila con el modo rápido:

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Actualización de una pila con el modo rápido

El siguiente comando actualiza una pila mediante el modo rápido:

aws cloudformation update-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Eliminación de una pila con el modo rápido

El siguiente comando elimina una pila mediante el modo rápido:

aws cloudformation delete-stack --stack-name my-stack \ --deployment-config '{"mode": "EXPRESS"}'

Uso del modo rápido con el AWS CDK

Para usar el modo rápido con AWS Cloud Development Kit (AWS CDK) (AWS CDK), use el indicador --express con el comando cdk deploy:

cdk deploy --express

Uso del modo rápido con AWS SAM

Para usar el modo rápido con la CLI de AWS SAM, añada el indicador --express a sus comandos de implementación o sincronización:

sam deploy --express
sam sync --express

Para conservar el ajuste en la configuración del proyecto, utilice --save-params:

sam deploy --express --save-params

Esto guarda express = true en su archivo samconfig.toml para que las implementaciones posteriores utilicen el modo rápido de forma automática.

Cuando el modo rápido está habilitado, la CLI de AWS SAM pasa la configuración de implementación a CloudFormation. El indicador --disable-rollback controla el comportamiento de reversión en la configuración de implementación.

Uso del modo rápido con la consola

Al crear o actualizar una pila en la consola de CloudFormation, puede habilitar el modo rápido en el paso Configuración de las opciones de pila. En Opciones de implementación, seleccione Rápido para el modo de implementación.

Uso del modo rápido con conjuntos de cambios

Puede utilizar el modo rápido con conjuntos de cambios al especificar la configuración de implementación cuando se crea el conjunto de cambios:

aws cloudformation create-change-set --stack-name my-stack \ --change-set-name my-change-set \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'

Al ejecutar el conjunto de cambios, CloudFormation aplica la configuración de implementación en modo rápido especificada durante la creación del conjunto de cambios.

Comportamiento de la reversión con el modo rápido

Cuando se utiliza el modo rápido, CloudFormation deshabilita la reversión de forma predeterminada. Si se produce un error en una operación de recursos, CloudFormation no revierte automáticamente los cambios.

Para volver a habilitar la reversión al utilizar el modo rápido, configure disableRollback en false en el parámetro --deployment-config:

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS", "disableRollback": false}'

Modo rápido y pilas anidadas

Cuando se utiliza el modo rápido en una pila principal, la configuración se propaga a todas las pilas anidadas de la jerarquía. No se tiene que especificar el modo rápido para cada pila anidada por separado. Todos los recursos de la pila raíz y sus pilas anidadas se completan en cuanto se aplica su configuración.

Consideraciones de preparación de los recursos

El modo rápido completa las operaciones de los recursos antes de que estos alcancen un estado totalmente estabilizado, por lo que cualquier recurso puede necesitar más tiempo para estar completamente preparado para atender el tráfico o completar la propagación multirregional. En la siguiente tabla, se muestran los tipos de comportamiento de los recursos que cabe esperar, mediante ejemplos de distintos tipos de recursos. Estos ejemplos son ilustrativos y no representan una lista completa de los recursos admitidos.

Tipo de recurso Operación Comportamiento de preparación
Distribución de Amazon CloudFront Creación/Actualización Puede que la distribución tarde varios minutos en implementarse globalmente una vez aplicada la configuración.
Instancia de Amazon EC2 Creación Es posible que la instancia siga inicializándose (ejecutando scripts de datos de usuario, comprobaciones de estado) una vez finalizada la operación de apilamiento.
AWSFunción de Lambda Eliminar Es posible que los recursos de la función sigan limpiándose una vez que la operación de eliminación haya finalizado.
Servicios de Amazon Elastic Container Service (Amazon ECS) Creación/Actualización Es posible que las tareas de servicio sigan iniciándose o alcanzando un estado estable una vez finalizada la operación de apilamiento.

Características y limitaciones no compatibles

Las siguientes funciones y servicios no son compatibles con el modo rápido:

CloudFormation StackSets

CloudFormation no admite el modo rápido con las operaciones de StackSets.

Los siguientes recursos tienen un comportamiento específico con el modo rápido:

Recursos personalizados

Los recursos personalizados (incluidos los recursos AWS::CloudFormation::CustomResource y Custom::*) siguen su comportamiento predeterminado. CloudFormation espera a que el recurso personalizado envíe una señal de respuesta antes de dar por finalizada la operación, incluso en modo rápido. Para evitar que un recurso personalizado lento o atascado retrase los flujos de trabajo de iteración rápida, se debe establecer un tiempo de espera máximo con la propiedad ServiceTimeout. Para obtener más información, consulte Tiempo de espera de respuesta.

Comparación con las implementaciones de cambio en caliente de AWS CDK

En la siguiente tabla se compara el modo rápido con las implementaciones de cambio en caliente de AWS CDK.

Característica Modo rápido Cambio en caliente de AWS CDK
Mecanismo de implementación Utiliza CloudFormation para todas las operaciones de recursos Omite CloudFormation y llama directamente a las API de servicio
Compatibilidad de plantillas Funciona con todas las plantillas de CloudFormation existentes. Admite un conjunto limitado de tipos de recursos
Estado de pila El estado de la pila sigue siendo coherente con el de la plantilla El estado de la pila puede diferir del de la plantilla
Compatibilidad con la reversión Admite la reversión (deshabilitada de forma predeterminada) Sin compatibilidad con la reversión
Cobertura de recursos Todos los tipos de recursos de CloudFormation Tipos de recursos limitados (AWS Lambda, Amazon ECS, AWS Step Functions y otros)
Uso recomendado Flujos de trabajo de desarrollo e iteración Flujos de trabajo de desarrollo solo con recursos compatibles