Qué es
AWS CloudFormation implementa infraestructura como código (IaC): en lugar de crear recursos a mano en la consola, los describes en una plantilla (YAML (YAML Ain't Markup Language: formato de configuración legible) o JSON (JavaScript Object Notation: formato de datos en texto)) y CloudFormation los crea en el orden correcto, gestionando las dependencias. El conjunto de recursos creados a partir de una plantilla es una pila (stack): se actualiza y se borra como una unidad. Así los entornos son repetibles, versionables en Git y revisables como cualquier otro código.
Conceptos clave
- Secciones de una plantilla:
Resources(la única obligatoria),Parameters(valores de entrada),Mappings(tablas de valores, por ejemplo AMI (Amazon Machine Image: plantilla con el sistema operativo para arrancar instancias) por región),Conditions,Outputs(valores de salida, exportables a otras pilas) yTransform(por ejemplo, SAM). - Funciones intrínsecas:
!Ref,!GetAtt,!Sub,!ImportValue,!If… - Conjuntos de cambios (change sets): muestran qué se va a crear, modificar o reemplazar antes de aplicar una actualización.
- Reversión automática: si falla la creación o la actualización, la pila vuelve al estado anterior.
- Protección: DeletionPolicy (
RetainoSnapshot) para conservar datos al borrar, protección de terminación de la pila y políticas de pila que impiden actualizar ciertos recursos. - Detección de desviaciones (drift): descubre recursos modificados a mano fuera de CloudFormation.
- StackSets: despliegan la misma pila en muchas cuentas y regiones, por ejemplo en toda una organización.
- Pilas anidadas para reutilizar componentes, y recursos personalizados (con Lambda) para lo que no esté soportado.
- Herramientas encima: SAM (Serverless Application Model) simplifica aplicaciones sin servidores; el CDK genera plantillas desde lenguajes de programación.
Casos de uso típicos
- Crear entornos idénticos de desarrollo, pruebas y producción.
- Recuperación ante desastres: recrear la infraestructura en otra región.
- Desplegar controles comunes en todas las cuentas de una organización con StackSets.
- Canalizaciones de CI/CD (Continuous Integration / Continuous Delivery: integración y entrega continuas) que despliegan infraestructura revisada en Git.
Cuándo NO usarlo
- Si prefieres definir la infraestructura con un lenguaje de programación: el CDK (que por debajo usa CloudFormation) o Terraform.
- Para configurar el software dentro de los servidores: Systems Manager o herramientas de configuración.
- Para desplegar solo una web sencilla sin gestionar la infraestructura: Elastic Beanstalk.
Modelo de precios
CloudFormation no tiene coste para los recursos de AWS: se pagan los recursos que crea. Solo se cobran las operaciones con extensiones de terceros (registro de CloudFormation) por encima del nivel gratuito.
Seguridad y alta disponibilidad
- Rol de servicio de CloudFormation: las pilas se crean con sus permisos, no con los del usuario.
- Nunca poner secretos en la plantilla: referencias dinámicas a Secrets Manager o Parameter Store.
- Revisar los change sets y usar políticas de pila y DeletionPolicy en los recursos con datos.
- Validación con reglas (CloudFormation Guard, Hooks) antes de desplegar.
Trampas de examen
- "Infraestructura repetible como código": CloudFormation.
- "Ver qué cambiará antes de actualizar": change set.
- "Conservar la base de datos al borrar la pila": DeletionPolicy Retain o Snapshot.
- "Misma pila en 50 cuentas y 3 regiones": StackSets.
- "Alguien cambió un recurso a mano": detección de desviaciones.
- "Compartir el ID de la VPC (Virtual Private Cloud) con otra pila": Outputs con Export e
!ImportValue. - "Mismo modelo para cada región con distinta AMI": Mappings.
- "Contraseña en la plantilla": referencia dinámica a Secrets Manager.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is AWS CloudFormation?, documentación de AWS (consultada el 26/09/2026).
- Update CloudFormation stacks using change sets, documentación de AWS (consultada el 26/09/2026).
- Managing stacks across accounts and Regions with StackSets, documentación de AWS (consultada el 26/09/2026).
- DeletionPolicy attribute, documentación de AWS (consultada el 26/09/2026).