Introducción a AWS CloudFormation

CLOUD COMPUTING

Gestión de infraestructura como código (IaC)

¿Qué es AWS CloudFormation?

  • Servicio de AWS que permite modelar, aprovisionar y administrar recursos de AWS.
     
  • Usa un enfoque de Infrastructure as Code (IaC).
     
  • Objetivo: automatizar y estandarizar la creación de infraestructura.

Infrastructure as Code (IaC)

Definición:
Gestionar infraestructura usando archivos de configuración en lugar de procesos manuales.

Ventajas:

  • Reproducibilidad
  • Escalabilidad
  • Control de versiones
  • Reducción de errores humanos

Lenguaje de CloudFormation

  • Formatos soportados:
    • YAML (más legible)
    • JSON (más estricto)

Estructura básica de un template:

Enfoque:

CloudFormation es declarativo: describes el estado final deseado y AWS se encarga de implementarlo.

  1. AWSTemplateFormatVersion
  2. Description
  3. Parameters
  4. Resources
  5. Outputs

Ejemplo simple en YAML

AWSTemplateFormatVersion: '2010-09-09'
Description: Crear una instancia EC2 simple
Resources:
  MiInstanciaEC2:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0c55b159cbfafe1f0
      InstanceType: t2.micro

Otro ejemplo en YAML

AWSTemplateFormatVersion: '2010-09-09'

Description: Plantilla básica de ejemplo con todos los elementos

Parameters:
  InstanceType:
    Type: String
    Default: t2.micro
    Description: Tipo de instancia EC2 a lanzar

Resources:
  MiInstanciaEC2:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0c55b159cbfafe1f0   # Amazon Linux 2
      InstanceType: !Ref InstanceType

Outputs:
  InstanceId:
    Description: ID de la instancia EC2 creada
    Value: !Ref MiInstanciaEC2

  PublicIP:
    Description: Dirección IP pública de la instancia
    Value: !GetAtt MiInstanciaEC2.PublicIp

Cómo se usa CloudFormation

  1. Crear el template (YAML/JSON)
     
  2. Guardarlo localmente o en S3
     
  3. Ejecutar un Stack en la consola de AWS, CLI o SDK
     
  4. AWS crea, actualiza o elimina recursos según el template

Conceptos Clave

  • Stack = conjunto de recursos gestionados como una sola unidad
     
  • Change Sets = vista previa de cambios antes de aplicarlos
     
  • Drift Detection = detectar diferencias entre template y estado real

Ventajas de usar CloudFormation

  • Automatización completa
     
  • Estandarización de entornos
     
  • Integración con CI/CD
     
  • Buenas prácticas de seguridad y compliance

Sobre esta presentación

CLOUD COMPUTING

Atribución 4.0 Internacional (CC BY 4.0)

https://creativecommons.org/licenses/by/4.0/deed.es