AWS CloudFormation
Infraestructura como código: declaras los recursos en una plantilla y AWS los crea, actualiza y borra por ti.
En palabras simples
Es la receta escrita en vez del cocinero que se acuerda: cualquiera la lee, se repite igual todas las veces y se puede corregir revisando el texto.
Cuándo aplicarlo
Cuando la infraestructura debe poder recrearse desde cero, replicarse en otro entorno o revisarse antes de aplicarse.
- ▸Levantar entornos idénticos de desarrollo, pruebas y producción
- ▸Versionar la infraestructura junto al código de la aplicación
- ▸Borrar de una sola vez todo lo creado para un taller
- ▸Revisar en una solicitud de cambios qué recursos se van a modificar
Vocabulario mínimo
- Plantilla
- El archivo YAML o JSON que describe los recursos deseados y sus relaciones.
- Pila (stack)
- La instancia desplegada de una plantilla. Borrar la pila borra todo lo que creó.
- Conjunto de cambios
- La vista previa de qué se crearía, modificaría o destruiría antes de aplicar una actualización.
- Reversión
- Si algo falla a mitad del despliegue, CloudFormation deshace lo hecho y vuelve al estado anterior.
- Desviación (drift)
- La diferencia entre lo que dice la plantilla y lo que alguien cambió a mano en la consola.
Costo y capa gratuita
- Cómo se cobra
- CloudFormation es gratuito para los recursos propios de AWS. Solo se paga la infraestructura que crea. Los tipos de recurso de terceros tienen un costo por operación.
- Capa gratuita
- El servicio no consume capa gratuita: lo que se factura son los recursos declarados en la plantilla.
Cuidado con los créditos
- ⚠Una pila creada para un taller y no borrada: sigue costando todo lo que hay dentro.
- ⚠Recursos con política de retención que sobreviven al borrado de la pila y quedan facturando en silencio.
- ⚠Copiar plantillas de ejemplo sin revisar qué crean: algunas incluyen NAT Gateways o balanceadores.
Descripción
Crear recursos a mano en la consola es la forma más rápida de empezar y la peor de mantener: nadie recuerda exactamente qué se hizo, no se puede repetir en otra cuenta y no queda rastro revisable de por qué existe cada cosa.
CloudFormation cambia el enfoque. Se declara el estado deseado en una plantilla y el servicio calcula qué crear, cambiar o borrar para llegar a él. La infraestructura pasa a ser un archivo en el repositorio, con su historial, su revisión por pares y su capacidad de recrearse desde cero.
Cómo funciona
- Escribes una plantilla que describe los recursos y sus dependencias.
- Creas una pila a partir de ella; CloudFormation resuelve el orden de creación.
- Para modificar algo, editas la plantilla y generas un conjunto de cambios que muestra qué va a pasar antes de aplicarlo.
- Si un recurso falla al crearse, el servicio revierte todo lo hecho en esa operación.
- Borrar la pila borra todos sus recursos, que es la forma más segura de terminar una práctica.
Manos a la obra
- Escribe una plantilla mínima que cree un bucket de S3 y despliégala como pila.
- Añade una política al bucket, genera el conjunto de cambios y léelo antes de aplicar.
- Cambia algo del bucket a mano desde la consola y ejecuta la detección de desviación.
- Borra la pila y comprueba que el bucket desaparece con ella.
- Guarda la plantilla en el repositorio del club: eso es infraestructura como código.
Ejemplo visual
Para un club, la ventaja práctica es doble: el taller se repite igual en cada cuenta, y al terminar se borra todo con una sola acción en lugar de ir recurso por recurso.
Cuándo NO es la mejor opción
- AWS CDK — si prefieres declarar la infraestructura en TypeScript o Python: por debajo genera CloudFormation.
- Terraform — si la organización trabaja con varias nubes y quiere una sola herramienta para todas.
- AWS SAM — si el proyecto es serverless: es una extensión de CloudFormation con sintaxis más corta.
Se usa junto con
Aparece en certificaciones
- AWS Certified Cloud Practitioner
- AWS Certified Solutions Architect – Associate
- AWS Certified DevOps Engineer – Professional