¿Qué es CloudFormation y para qué sirve?
CloudFormation es el servicio nativo de AWS para gestionar infraestructura como código. Permite crear, modificar y eliminar recursos de AWS mediante plantillas JSON o YAML. Sirve para aprovisionar infraestructura de forma automatizada, versionar cambios, gestionar múltiples recursos como una unidad (stack) y garantizar consistencia entre entornos. Es gratuito (solo pagas por los recursos creados) y tiene integración nativa con todos los servicios AWS.
CloudFormation es la herramienta nativa de AWS para gestionar infraestructura como código. Si trabajas exclusivamente con AWS, CloudFormation es una excelente opción. En este artículo te explico qué es CloudFormation y para qué sirve.
¿Qué es CloudFormation?
CloudFormation gestiona recursos como una unidad llamada "stack". Un stack es un conjunto de recursos de AWS que creas, actualizas o eliminas como una sola unidad.
¿Para qué sirve CloudFormation?
- Crear infraestructura de AWS de forma automatizada y reproducible
- Gestionar múltiples recursos AWS como una unidad (stack)
- Versionar cambios en infraestructura mediante plantillas
- Garantizar consistencia entre entornos (dev, staging, producción)
- Eliminar infraestructura completa de forma segura
- Gestionar dependencias entre recursos automáticamente
- Rollback automático si algo falla durante el despliegue
- Reutilizar plantillas para crear infraestructura similar
Formato de Plantillas CloudFormation
- JSON: Más verboso pero ampliamente soportado
- YAML: Más legible y fácil de escribir (recomendado)
- Ambas opciones son válidas y equivalentes
Ejemplo de Plantilla CloudFormation
AWSTemplateFormatVersion: "2010-09-09"
Description: "Crear un bucket S3"
Resources:
MiBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: mi-bucket-2025
Tags:
- Key: Name
Value: Mi Bucket
Key: Environment
Value: Producción
Outputs:
BucketName:
Description: "Nombre del bucket"
Value: !Ref MiBucket
Conceptos Clave de CloudFormation
| Concepto | Descripción |
|---|---|
| Stack | Colección de recursos gestionados como una unidad |
| Template | Archivo JSON/YAML que describe la infraestructura |
| Resources | Recursos AWS definidos en la plantilla |
| Parameters | Valores que puedes pasar al crear el stack |
| Outputs | Valores que el stack expone después de crearse |
| Change Sets | Preview de cambios antes de aplicarlos |
| Drift Detection | Detecta cambios fuera de CloudFormation |
| Nested Stacks | Stacks dentro de otros stacks para modularidad |
Ventajas de CloudFormation
- Integración nativa con AWS: Soporte inmediato para servicios nuevos
- Rollback automático: Revierte cambios si algo falla
- Drift Detection: Detecta cambios manuales en recursos
- Stack Policies: Control de acceso granular
- Gratis: Solo pagas por los recursos creados
- Change Sets: Preview de cambios antes de aplicarlos
- Nested Stacks: Modularidad y reutilización
- Soporte oficial: Mantenido directamente por AWS
CloudFormation vs. Terraform
| Aspecto | CloudFormation | Terraform |
|---|---|---|
| Proveedores | Solo AWS | Multi-cloud (AWS, Azure, GCP) |
| Sintaxis | JSON/YAML | HCL (más legible) |
| Rollback | Automático | Manual |
| Drift Detection | Nativo | Requiere herramientas adicionales |
| Soporte servicios nuevos | Inmediato | Depende de la comunidad |
| Curva de aprendizaje | Media-Alta | Media |
¿Cuándo usar CloudFormation?
- Trabajas exclusivamente con AWS
- Necesitas soporte inmediato para servicios nuevos de AWS
- Valoras el rollback automático
- Tu organización estándar es CloudFormation
- Quieres integración nativa con otros servicios AWS
- Necesitas drift detection nativo
Cómo Empezar con CloudFormation
- Aprende la sintaxis YAML (más fácil que JSON)
- Crea tu primera plantilla simple (un bucket S3)
- Usa la consola de AWS para generar plantillas
- Aprende sobre Parameters y Outputs
- Explora plantillas de ejemplo de AWS
- Practica creando stacks y eliminándolos
- Aprende sobre Change Sets y Drift Detection
Conclusión
CloudFormation es una herramienta poderosa y nativa de AWS para gestionar infraestructura como código. Si trabajas exclusivamente con AWS, CloudFormation ofrece integración nativa, rollback automático y soporte inmediato para servicios nuevos. Es una excelente opción para equipos que están 100% en AWS y valoran las características nativas de la plataforma.
¿Quieres aprender más sobre esto?
Únete a talleres gratuitos o accede a contenido premium en la comunidad.
Gratuitos
De pago