¿Cómo empezar con el despliegue de recursos en Azure con Terraform?
Terraform es una herramienta poderosa para gestionar infraestructuras como código, y Azure es uno de los proveedores de servicios en la nube más populares hoy en día. Una vez que has agregado el proveedor de Azure dentro de Terraform, puedes empezar a desplegar recursos sin mayor problema. El primer paso en tu script, después de la configuración del proveedor, es agregar un recurso, específicamente un grupo de recursos en Azure.
¿Qué son los grupos de recursos y por qué son importantes?
Los grupos de recursos en Azure te permiten agrupar diferentes recursos bajo una misma categoría. Puedes agruparlos como desees: por equipos, proyectos, clientes, etc. Este agrupamiento te ayuda a organizar y gestionar tus recursos eficazmente. Además, crear un grupo de recursos es generalmente el primer paso cuando comienzas a desplegar en Azure.
¿Cómo se configura un grupo de recursos en Terraform?
Una vez que tienes claro cómo funcionan los grupos de recursos, puedes regresar a Visual Studio Code y seguir estos pasos:
Escribe el bloque de recursos: Puedes comenzar escribiendo resource, lo que, gracias a IntelliSense de VS Code, te facilita la tarea al sugerirte automáticamente opciones relevantes.
Selecciona el tipo de recurso: Por ejemplo, escribe azurerm_resource_group para crear un grupo de recursos.
Configura los atributos necesarios: Dos de los atributos obligatorios son:
Location (Ubicación): Define dónde se desplegará tu grupo de recursos. Ejemplo: "México Central".
Name (Nombre): Elige un nombre para tu grupo de recursos dentro de las comillas. Ejemplo: "mi-primer-grupo-platsi".
¿Cómo elegir la ubicación correcta para desplegar?
La elección de la ubicación no es arbitraria, ya que Microsoft ofrece una variedad de centros de datos distribuidos por todo el mundo. Para ver todas las ubicaciones disponibles en tu suscripción de Azure, usa el siguiente comando en tu terminal:
az account list-locations
Este comando te mostrará un archivo JSON con todas las ubicaciones disponibles, donde deberás elegir la que esté más cercana geográficamente para minimizar la latencia en la creación de tus recursos.
¿Cómo inicializar Terraform para trabajar con Azure?
Una vez configurado tu recurso, inicializa Terraform con el siguiente comando:
terraform init
Este comando instalará el proveedor específico de Azure, Azure RM, y te confirmará una inicialización exitosa. Al finalizar este proceso, verás que en tus archivos de VS Code ahora hay dos elementos nuevos: un archivo .terraform.log.hcl que se actualiza constantemente, y una carpeta .terraform que contiene los proveedores descargados.
¿Qué importancia tiene inicializar correctamente Terraform?
La correcta inicialización es crucial, ya que:
Prepara el entorno: Terraform está listo para evaluar y desplegar recursos.
Verifica configuraciones: Asegura que no haya errores en la configuración antes de proceder.
Organiza dependencias: Descarga y almacena los proveedores necesarios, útiles para mantener un proyecto limpio y eficiente.
Con estos pasos, ya puedes comenzar a desplegar tus recursos en Azure con confianza y eficacia. Espero que esta guía te sirva de impulso para continuar tu aprendizaje y desarrollo en el mundo de la infraestructura como código. ¡Adelante, el mundo de Terraform y Azure te esperan!
Hola, las carpetas generadas al final deberían ser ignoradas por git?
Asumo que te refieres a la carpeta de .terraform cierto? Si es así si, deben ser ignoradas para los controles de versiones.
Es mas facil si usas ayudas como:
Debes indicar que vas a utilizar Terraform y te indica los archivos que deberias ignorar en tus repos, cuando trabajas con terraform.
¡Hola! Les comparto mi adaptación del curso a AWS. En lugar de Resource Group, aquí el punto de partida es la VPC.
Les detallo qué hace cada bloque del archivo:
terraform {
required_providers {
aws = {
source = "hashicorp/aws" # El "traductor" oficial para hablar con AWS
version = "~> 5.0"
}
}
}
# Configura la conexión con tu cuenta
provider "aws" {
region = "us-east-1" # La ubicación física donde vivirán tus recursos
}
# El recurso principal: Nuestra red privada virtual
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16" # El rango de IPs disponible para toda tu red
}
Si quieren ver todas las regiones disponibles en tu cuenta, el equivalente al comando de Azure (az account list-locations) es:
aws ec2 describe-regions --output table
He estado organizando la informacion vista aqui, y tomando lo que dice alguno que otro comentario, y lo he colocado en Notion
Sí tienen alguna sugerencia, o desean que le agregue x informacion, dejen el comentario aqui
🚀 Primeros pasos con Terraform y Azure: Creando tu primer recurso en la nube
🌐 El proveedor de Azure en Terraform
El punto de partida para trabajar con Terraform en Azure es agregar el proveedor AzureRM. Esto permite que Terraform entienda cómo conectarse con la nube de Microsoft y empezar a crear infraestructura.
Tras configurar el proveedor, ya es posible desplegar recursos.
El primer recurso recomendado es un Resource Group (grupo de recursos), que funciona como contenedor lógico dentro de Azure.
🔑 Idea clave: antes de crear cualquier servicio (máquinas virtuales, bases de datos, redes), lo ideal es contar con un grupo de recursos que organice y clasifique los despliegues.
📦 Grupos de recursos en Azure
Un Resource Group es una agrupación flexible de recursos. Se puede organizar según:
Equipos de trabajo.
Proyectos específicos.
Clientes o entornos (desarrollo, QA, producción).
Ejemplo práctico:
RG-Dev-Marketing → Recursos del área de marketing en entorno de desarrollo.
RG-Prod-Finanzas → Recursos críticos en producción para el área de finanzas.
Los grupos de recursos no impactan en el rendimiento ni en el costo, pero ayudan a gestionar ordenadamente la infraestructura.
💻 VS Code e IntelliSense: aliados para Terraform
El desarrollo con Terraform se vuelve más ágil con Visual Studio Code y sus extensiones.
Al escribir resource "azurerm_resource_group", IntelliSense sugiere automáticamente la sintaxis correcta.
Terraform exige atributos obligatorios como:
location → región donde se desplegarán los recursos.
name → nombre único del grupo de recursos.
Ejemplo:
location = "Mexico Central"
name = "mi-primer-grupo-platzi"
🌍 Selección de la región: rendimiento y latencia
Azure ofrece docenas de regiones en todo el mundo. Elegir la adecuada no es trivial:
Entre más cercana esté la región a tus usuarios o equipo, menor latencia tendrás.
Ejemplos de regiones: Brazil South, Israel Central, Italy North, South Africa North, East Asia.
Para explorar todas las regiones disponibles en tu suscripción, se puede consultar mediante la terminal y obtener un archivo JSON con las ubicaciones habilitadas.
⚙️ Inicialización de Terraform
Antes de aplicar los cambios, es obligatorio ejecutar:
terraform init → Inicializa el directorio de trabajo, instala el proveedor AzureRM y prepara los archivos necesarios.
Resultados clave tras la inicialización:
Se genera .terraform.lock.hcl → archivo que asegura la consistencia de versiones de proveedores.
Se crea la carpeta .terraform/ → almacena los proveedores descargados (su tamaño dependerá de la cantidad de proveedores usados).
Este paso confirma que Terraform está listo para:
Validar los recursos definidos.
Planificar y desplegar infraestructura real en Azure.
📝 Conclusión y recomendaciones
Crear un Resource Group es la puerta de entrada para trabajar con Terraform en Azure. Este ejercicio muestra conceptos clave que acompañan cualquier despliegue:
Proveedor: conexión con la nube (AzureRM en este caso).
Organización lógica: siempre comienza con un grupo de recursos.
Regiones: la elección afecta la latencia y experiencia del usuario final.
Automatización: con terraform init, se prepara el entorno para una infraestructura reproducible y segura.
👉 Recomendación práctica:
Usa nombres claros y consistentes para los grupos de recursos.
Documenta la elección de regiones para evitar confusiones entre entornos.
Automatiza el flujo completo con un pipeline CI/CD (por ejemplo, GitHub Actions) para garantizar despliegues consistentes y auditables.
Según estuve revisando, en AWS no existe algo exactamente igual a un “resource group” como en Azure. Los recursos simplemente viven dentro de la cuenta.
Para este primer ejemplo decidí crear algo simple: un usuario IAM.
Algo así:
terraform { required_providers { aws ={ source ="hashicorp/aws" version ="6.31.0"}}}provider "aws"{ region ="us-east-1"}resource "aws_iam_user""demo"{ name ="usuario-terraform-demo"}
Aquí estamos definiendo:
El provider de AWS (qué plugin usar)
La región
El recurso aws_iam_user con su propiedad principal (name)
Luego el primer paso siempre es:
terraform init
Cuando ejecutamos init, Terraform:
Lee el bloque required_providers
Descarga el provider de AWS
Crea la carpeta .terraform
Deja todo listo para trabajar
En este punto todavía no crea nada en AWS, pero ya queda preparado para usar las credenciales que configuramos antes con aws configure (las Access Key y Secret Key guardadas en el sistema).
Esas credenciales son las que el provider usará después para autenticarse contra AWS.
Hola,tengo una duda,si ya hice el terraform init y tal vez se me olvido agregarle algo,tengo que volver a darle terraform init o ya puedo realizar con el siguiente comando?Muchas Gracias
Terraform init solo aplica para la configuración base de terraform, es decir, que proveedor vas a usar o que versión vas a usar ( por ejemplo ). Si no cambia nada de la configuración base puedes continuar con los siguientes pasos, pero si cambia algo de la configuración base debes hacer nuevamente el init.
En caso de tener dudas de como configurar su gitignore , en este repositorio encontraran una gran variedad de gitignore para usar como plantilla:
En caso de no poder usar el comando az se requiere instalar azure cli
luego de instalado debes de ejecutar az login en la terminal y loguearte con la cuenta de azure.