Proyectos de Terraform: Infraestructura Real, Habilidades Reales
Una coleccion de proyectos reales con Terraform. Cada uno lo construi para resolver un problema practico, no solo para marcar una casilla. Esto es lo que hay:
Empece este repositorio para trabajar directamente con Terraform e infraestructura en la nube. Cada proyecto es un escenario real que queria resolver, no una demo. Me tope con muchos casos borde, y aprendi bastante sobre como se comportan AWS y Azure en la practica. Aqui va un vistazo mas detallado:
1. Base de Datos Postgres RDS con Backups Automatizados
Queria un modulo reutilizable para AWS RDS. Levanta una instancia de Postgres, maneja subnet groups, seguridad y tags. La validacion de inputs esta integrada, asi que no puedes desplegar accidentalmente en la subnet equivocada ni saltarte los backups. Los backups automatizados vienen configurados por defecto. El modulo esta listo para usarse en cualquier proyecto.
Algo que aprendi: las instancias de AWS RDS necesitan estar en diferentes zonas de disponibilidad. Si intentas crearlas en la misma AZ, te da error. Tambien dedique tiempo a asegurar que el modulo valide los inputs del usuario, para que no termines con una configuracion rota. El modulo es flexible, pero estricto donde importa.
Tecnologia: Terraform, AWS RDS, VPC, subnets, security groups, validacion de inputs
2. VPN Site-to-Site: AWS <-> Azure
Este proyecto configura una VPN completa site-to-site entre AWS y Azure. Usa tuneles IPsec para trafico seguro, con alta disponibilidad (tuneles dobles, gateways dobles). Cada nube tiene su propia configuracion de red, y la VPN permite que las VMs privadas se comuniquen entre si. Maneje ruteo estatico y dinamico (BGP), y me asegure de que el failover funcione. El README tiene diagramas y output real de recursos desplegados.
Configurar una VPN entre AWS y Azure no es tan sencillo como seguir la documentacion. Azure no te deja definir una ubicacion global como AWS, asi que hay que usar variables o locals. Tambien tuve que lidiar con las diferencias en como cada nube maneja gateways y tuneles. Hacer que BGP funcionara para ruteo dinamico requirio bastante prueba y error. Me asegure de que la configuracion sea resiliente; si un tunel se cae, el trafico cambia automaticamente.
El proyecto incluye capturas de pantalla y output real de recursos desplegados, para que puedas ver lo que realmente pasa cuando lo ejecutas. Quise hacer la documentacion lo mas clara posible, porque el networking multi-nube se puede poner confuso rapido.
Tecnologia: Terraform, AWS, Azure, IPsec, BGP, VPC, Virtual Network Gateway, alta disponibilidad
3. Despliegue Multi-Entorno: Dev, Staging, Produccion
Construi una configuracion que usa Terraform workspaces para mantener dev, staging y produccion aislados. Cada entorno tiene sus propios buckets S3 y estado. El codigo se mantiene DRY: un modulo, tres entornos. Esto facilita CI/CD y mantiene produccion a salvo de experimentos. El README explica como ejecutarlo y lo que aprendi sobre la gestion de workspaces.
Manejar multiples entornos es obligatorio en cualquier proyecto real. Los workspaces de Terraform permiten mantener el estado separado, para que no sobrescribas produccion accidentalmente cuando estas probando en dev. Configure el proyecto para que cada entorno tenga sus propios recursos, y el naming deja claro a que pertenece cada cosa. La documentacion cubre como usar workspaces y archivos tfvars para mantener todo organizado.
CI/CD es mas facil cuando tu codigo de infraestructura es DRY y parametrizado. Aprendi que mantener todo en un modulo, y solo cambiar parametros, reduce errores y simplifica el mantenimiento.
Tecnologia: Terraform, AWS S3, workspaces, CI/CD, separacion de estado
Cada proyecto esta documentado, con comentarios y capturas de pantalla. Me enfoco en detalles practicos: validacion de inputs, alta disponibilidad y output real de despliegue. Si quieres ver como trabajo infraestructura como codigo, este repo es un buen punto de partida.
Si te interesa el detalle fino, revisa los READMEs y el codigo. Intento ser honesto: que funciono, que no, y que tuve que arreglar en el camino. La infraestructura es desordenada, pero ahi es donde esta el aprendizaje real.