AWS CloudFormation
Servicio nativo de AWS para definir y aprovisionar infraestructura como código usando plantillas YAML o JSON, con gestión de estado y rollback automático.
¿Qué es?
AWS CloudFormation es el servicio nativo de infraestructura como código de AWS. Define recursos en plantillas YAML/JSON, y CloudFormation se encarga de crear, actualizar y eliminar recursos en el orden correcto, con rollback automático si algo falla.
Conceptos clave
- Template: archivo YAML/JSON que describe los recursos
- Stack: instancia de un template desplegado
- Change set: preview de cambios antes de aplicar
- Drift detection: detectar cambios manuales fuera de CloudFormation
- StackSets: desplegar stacks en múltiples cuentas/regiones
CloudFormation como base
Tanto CDK como SAM generan CloudFormation templates. Entender CloudFormation es fundamental para debuggear problemas en cualquiera de estos frameworks.
Limitaciones
- Verboso comparado con CDK o Terraform
- Solo AWS (no multi-cloud)
- Límite de 500 recursos por stack
- Algunos recursos no soportados inmediatamente
CloudFormation vs Terraform
| Aspecto | CloudFormation | Terraform |
|---|---|---|
| Proveedor | Solo AWS | Multi-cloud |
| Lenguaje | YAML/JSON | HCL |
| Estado | Gestionado por AWS | Archivo local o remoto |
| Costo | Gratis | Gratis (open source) |
¿Por qué importa?
CloudFormation es el servicio nativo de IaC en AWS y la base sobre la que se construyen CDK y SAM. Entenderlo es necesario incluso si usas abstracciones de nivel superior, porque los errores de despliegue y los problemas de drift se diagnostican a nivel de CloudFormation.
Referencias
- CloudFormation Documentation — AWS, 2024. Documentación oficial.
- CloudFormation Best Practices — AWS, 2024. Mejores prácticas oficiales.
- CloudFormation Resources — AWS, 2024. Recursos y ejemplos de templates.