AWS CloudFormation Esencialdesde 2011
Un servicio de IaC que define y aprovisiona recursos AWS como código mediante plantillas
Qué hace
AWS CloudFormation es un servicio de Infrastructure as Code (IaC) que permite definir recursos AWS en plantillas JSON o YAML y aprovisionarlos automáticamente. Al describir la infraestructura como código, puedes crear, actualizar y eliminar entornos de forma reproducible. Los recursos se gestionan como "stacks", y si ocurre un error durante la actualización, se revierte automáticamente.
Casos de uso
Se utiliza para gestión de infraestructura reproducible, construcción automatizada de entornos multi-etapa (desarrollo, staging, producción), estandarización de infraestructura organizacional, recuperación ante desastres y gestión de configuración auditable. Es la base de la gestión de infraestructura AWS.
Analogía cotidiana
Piensa en él como un plano arquitectónico. Así como un arquitecto dibuja planos y los constructores construyen exactamente según ellos, CloudFormation construye la infraestructura exactamente como se describe en la plantilla. Si necesitas el mismo entorno en otro lugar, solo usa el mismo plano.
¿Qué es AWS CloudFormation?
AWS CloudFormation es un servicio de IaC que gestiona la infraestructura AWS como código. En lugar de crear recursos manualmente desde la consola, defines toda la configuración en un archivo de plantilla (JSON o YAML) y CloudFormation crea y configura automáticamente los recursos. Esto permite construir exactamente el mismo entorno de forma repetible.
Plantillas y stacks
Una plantilla de CloudFormation describe los recursos AWS que deseas crear y sus configuraciones. Cuando despliegas una plantilla, se crea un "stack" que agrupa todos los recursos como una unidad. Puedes actualizar o eliminar todos los recursos del stack de una vez. Las plantillas soportan parámetros, condiciones, outputs y referencias cruzadas entre recursos.
Gestión de cambios y rollback
Cuando actualizas un stack, CloudFormation calcula las diferencias y aplica solo los cambios necesarios. Los Change Sets te permiten previsualizar los cambios antes de aplicarlos. Si una actualización falla, CloudFormation revierte automáticamente al estado anterior, evitando estados inconsistentes. También puedes configurar protección contra eliminación para stacks críticos. Para comprender la gestión de cambios en profundidad, los libros en Amazon son un buen recurso.
Cómo empezar
Crea un archivo YAML con la sección Resources definiendo al menos un recurso (por ejemplo, un bucket S3). En la consola de CloudFormation, haz clic en "Crear stack", sube tu plantilla y sigue el asistente. CloudFormation creará los recursos automáticamente. Para plantillas más complejas, considera usar SAM (para serverless) o CDK (para definir con lenguajes de programación).
Aspectos a tener en cuenta
- Al actualizar un stack, algunos recursos pueden requerir reemplazo (eliminación y recreación). Verifíquelo de antemano con un change set
- El límite de tamaño de plantilla es de 1 MB vía S3. Para plantillas grandes, considere dividirlas en stacks anidados
- Un stack en estado ROLLBACK_COMPLETE no se puede actualizar; es necesario eliminarlo y volver a crearlo