Terraform: de IaC básico a la diferencia entre variables y locals

Terraform te permite automatizar infraestructuras en la nube. Aprende la diferencia entre variable y locals, su alcance por módulo, ejemplos en AWS y buenas prácticas.

23 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Automatizar la construcción y operación de entornos cloud es el punto fuerte de Terraform. En este artículo organizamos los conceptos fundamentales y el uso de Terraform y profundizamos en uno de los puntos que más confusión genera: la diferencia entre variable y locals. Explicamos esta diferencia comparándola con el scope en JavaScript y con ejemplos concretos en AWS para que puedas visualizar su uso en entornos reales.

Por qué usar Terraform. Tradicionalmente, construir infraestructura en AWS de forma manual desde la consola o la CLI genera problemas comunes. Errores humanos por operaciones manuales. Falta de reproducibilidad al reconstruir entornos para recuperación ante desastres o despliegues nuevos. Silos de conocimiento cuando los procedimientos están solo en la cabeza de alguien. Limitaciones al escalar: no es viable administrar manualmente infraestructuras grandes. Gestión de cambios opaca: difícil rastrear quién hizo qué y cuándo. La solución es Infrastructure as Code IaC, definir la infraestructura como código para lograr reproducibilidad, automatización y trazabilidad. Terraform es una de las herramientas más usadas para esto.

Características clave de Terraform. Soporte multi cloud: no solo AWS, Azure y GCP, también Kubernetes, GitHub y muchos proveedores más. Sintaxis declarativa: se declara lo que se quiere y Terraform resuelve dependencias. Gestión de estado: mantiene el estado en terraform.tfstate para dejar claras las diferencias entre código y realidad. Modularización: encapsula configuraciones comunes como módulos reutilizables.

Bloques básicos. provider Configura el proveedor cloud o servicio que se usará como región y credenciales. resource Define recursos de infraestructura como EC2 S3 VPC. data Referencia recursos existentes. variable Punto de entrada para valores externos. locals Define valores reutilizables dentro del código. module Colección reutilizable de recursos. output Expone valores hacia el exterior como una IP pública de EC2.

Diferencias clave entre variable y locals. variable es la entrada para valores externos. Puede recibir valores desde flags CLI, variables de entorno o archivos tfvars. Se usa para manejar diferencias entre entornos como region, env o tipo de instancia. locals son valores para reutilizar dentro del código. No pueden ser sobrescritos externamente. Mejoran la legibilidad al centralizar etiquetas comunes o reglas de nombres.

Ejemplo en AWS. variables.tf variable region { description = AWS region type = string default = ap-northeast-1 } variable env { description = Environment name type = string default = dev } locals.tf locals { common_tags = { Project = sample-app Environment = var.env } } s3.tf provider aws { region = var.region } resource aws_s3_bucket this { bucket = var.env-app-bucket tags = local.common_tags } En este ejemplo region y env pueden cambiarse externamente mientras common_tags es un valor interno reutilizado entre recursos.

Diferencia con el scope en lenguajes como JavaScript o Python. En JavaScript o Python una variable definida dentro de una función no se puede referenciar fuera de ella. En Terraform locals pueden referenciarse entre archivos que pertenezcan al mismo módulo, es decir siguen scope de módulo y no de archivo.

Referenciar dentro de un módulo. locals.tf locals { prefix = demo } ec2.tf resource aws_instance this { ami = ami-123456 instance_type = t2.micro tags = { Name = local.prefix-server } } Aunque los archivos estén separados, pertenecen al mismo módulo por lo que local.prefix está disponible en todo el módulo.

Referenciar entre módulos. No puedes acceder directamente a locals de otro módulo. En ese caso debes exponer valores a través de outputs. modules/network/locals.tf locals { vpc_cidr = 10.0.0.0/16 } modules/network/output.tf output vpc_cidr { value = local.vpc_cidr } main.tf module network { source = ./modules/network } resource aws_subnet this { cidr_block = module.network.vpc_cidr } Recuerda que locals tienen alcance de módulo no de archivo, y para cruzar módulos necesitas outputs.

Comandos esenciales. terraform init Inicializa el proyecto y descarga plugins. terraform plan Muestra un preview de cambios antes de aplicar. terraform apply Aplica los cambios y crea la infraestructura. terraform destroy Destruye recursos gestionados. terraform fmt Formatea el código. terraform validate Valida la sintaxis. terraform output Muestra valores de salida. terraform state Inspecciona y gestiona el archivo de estado.

Estructura ejemplo de proyecto con módulos. environments dev main.tf prod main.tf modules nginx main.tf variables.tf locals.tf environments dev y prod capturan diferencias específicas por entorno mientras modules nginx encapsula la lógica común.

Buenas prácticas. Gestionar los archivos de estado de forma remota por ejemplo S3 con bloqueo en DynamoDB o con Terraform Cloud. Fijar versiones de proveedores y de Terraform. Dividir módulos por responsabilidad para mayor claridad. Centralizar reglas de nombres y etiquetas con locals. Automatizar terraform fmt validate y plan en CI CD.

Terraform y tu empresa. En Q2BSTUDIO somos especialistas en desarrollo de software y aplicaciones a medida, e integramos IaC y servicios cloud para ofrecer despliegues repetibles y seguros. Si necesitas soporte para migraciones o gestión de infraestructuras en la nube ofrecemos servicios cloud AWS y Azure y acompañamiento en automatización y despliegue continuo. Conecta tus proyectos a soluciones de software a medida con nuestro equipo en desarrollo de aplicaciones y software a medida y optimiza tu infraestructura con servicios cloud AWS y Azure.

Servicios complementarios. Además de infraestructura como código, Q2BSTUDIO ofrece inteligencia artificial para empresas, agentes IA, servicios de inteligencia de negocio y soluciones como Power BI para visualización y reporting. También cubrimos ciberseguridad y pentesting para asegurar tus despliegues y procesos. Al combinar software a medida aplicaciones a medida y servicios cloud obtienes proyectos escalables y seguros con capacidades de IA y analítica integradas.

Resumen final. Terraform es una herramienta potente para gestionar infraestructura como código. variable es la puerta de entrada para valores externos mientras locals centraliza valores internos compartidos. El scope en Terraform es a nivel de módulo: locals son accesibles entre archivos del mismo módulo pero para cruzar módulos hay que usar outputs. A diferencia del scope de función en JavaScript, los locals de Terraform facilitan la reutilización entre archivos del mismo módulo y favorecen la limpieza y consistencia del código de infraestructura.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.