🏗️Infraestructura como Código

¿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#aws#infraestructura como código#iac#aws devops

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

ConceptoDescripción
StackColección de recursos gestionados como una unidad
TemplateArchivo JSON/YAML que describe la infraestructura
ResourcesRecursos AWS definidos en la plantilla
ParametersValores que puedes pasar al crear el stack
OutputsValores que el stack expone después de crearse
Change SetsPreview de cambios antes de aplicarlos
Drift DetectionDetecta cambios fuera de CloudFormation
Nested StacksStacks 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

AspectoCloudFormationTerraform
ProveedoresSolo AWSMulti-cloud (AWS, Azure, GCP)
SintaxisJSON/YAMLHCL (más legible)
RollbackAutomáticoManual
Drift DetectionNativoRequiere herramientas adicionales
Soporte servicios nuevosInmediatoDepende de la comunidad
Curva de aprendizajeMedia-AltaMedia

¿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.