Introducción
Conforme tu infraestructura crece, mantener el código organizado y reutilizable se vuelve esencial. Terraform ofrece una solución poderosa para esto: los módulos. En este post, aprenderás cómo funcionan los módulos, cómo crearlos y cuáles son sus beneficios.

¿Qué es un módulo en Terraform?
Un módulo en Terraform es un conjunto de archivos .tf
que encapsulan recursos relacionados para ser reutilizados fácilmente en diferentes partes de tu infraestructura o en distintos proyectos.
¿Cómo crear un módulo?
Crear un módulo es simple. Debes estructurar tus archivos de la siguiente manera:
modulo-ejemplo/
├── main.tf
├── variables.tf
├── outputs.tf
Ejemplo de un módulo para instancias EC2
Archivo main.tf
resource "aws_instance" "servidor" {
ami = var.ami
instance_type = var.instance_type
tags = {
Name = var.nombre
}
}
Archivo variables.tf
variable "ami" {}
variable "instance_type" {}
variable "nombre" {}
Archivo outputs.tf
output "id_instancia" {
value = aws_instance.servidor.id
}
Usar un módulo
Para utilizar este módulo en otro archivo Terraform, haz lo siguiente:
module "servidor_web" {
source = "./modulo-ejemplo"
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
nombre = "ServidorWeb"
}
Esto simplifica enormemente la creación y gestión de recursos, especialmente en infraestructuras grandes o proyectos colaborativos.
Beneficios de usar módulos
- Organización: Facilitan la gestión y claridad del código.
- Reutilización: Permiten aprovechar configuraciones ya probadas en múltiples entornos.
- Escalabilidad: Facilitan la expansión de la infraestructura de forma ordenada y coherente.
- Colaboración: Mejoran la cooperación entre equipos al definir estándares comunes.
Los módulos en Terraform mejoran significativamente la organización, reutilización y escalabilidad de tu infraestructura. Adoptarlos es una excelente práctica que te permitirá gestionar proyectos cada vez más complejos con mayor facilidad. En el siguiente post, veremos cómo manejar múltiples proveedores en Terraform para aumentar la flexibilidad. ¡Nos vemos allí!