Si necesitas configurar Amazon Virtual Private Cloud (VPC), puedes hacerlo a través de la Consola de Administración de AWS, ¡pero automatizarlo es mucho más divertido! En un escenario de DevOps, construir servicios de AWS mediante herramientas como Terraform es un enfoque más escalable y automatizado para la provisión de recursos en la nube.
En este tutorial, aprenderás cómo construir y ejecutar una configuración de Terraform para crear una VPC de Terraform desde cero.
Prerrequisitos
Esta publicación será un tutorial paso a paso. Si deseas seguirlo, asegúrate de tener lo siguiente:
- Una cuenta de AWS
- Terraform – Este tutorial utilizará Terraform v0.14.9 ejecutándose en Ubuntu 18.04.5 LTS, pero cualquier sistema operativo con Terraform debería funcionar.
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should have one that understands the HCL Terraform language. Try out Visual Studio (VS) Code.
Comprensión de las VPC de AWS
La nube de AWS tiene docenas de servicios variados, desde computación, almacenamiento, redes y más. Cada uno de estos servicios puede comunicarse entre sí como lo hacen los servicios de un centro de datos local. Sin embargo, cada uno de estos servicios es independiente entre sí y no necesariamente está aislado de otros servicios. El VPC de AWS cambia eso.
Un VPC de AWS es una red única que te permite lanzar servicios de AWS dentro de una red aislada única. Técnicamente, un VPC de AWS es casi lo mismo que poseer un centro de datos, pero con beneficios adicionales incorporados de escalabilidad, tolerancia a fallos, almacenamiento ilimitado, etc.

Los VPC de AWS están restringidos por región. No puedes tener un VPC que abarque varias regiones, con hasta cinco VPC admitidos por región.
Creación de la Configuración de Terraform para un VPC de AWS
Basta de charla, ¡vamos a construir!
1. Para empezar, crea una carpeta para almacenar tus archivos de configuración de Terraform. Este tutorial creará una carpeta llamada terraform-vpc-demo en tu directorio de inicio.
2. Abre tu editor de código favorito y copia/pega la siguiente configuración que ya está creada para ti, guardando el archivo como main.tf dentro del directorio ~/terraform-vpc-demo. La información sobre cada recurso a crear está en línea.
El archivo main.tf contiene todos los recursos que deben aprovisionarse.
Terraform utiliza varios tipos diferentes de archivos de configuración. Cada archivo está escrito en formato de texto plano o formato JSON. Tienen una convención de nomenclatura específica, ya sea en formato .tf o formato .tfjson.
La configuración de Terraform a continuación:
- Crea una VPC
- Crea una puerta de enlace a Internet y la adjunta a la VPC para permitir que el tráfico dentro de la VPC sea alcanzable desde el mundo exterior.
- Crea subredes públicas y privadas
Las subredes son redes dentro de redes. Están diseñadas para ayudar a que el flujo de tráfico de red sea más eficiente y proporcionar ‘trozos’ más pequeños y manejables de direcciones IP
- Crea una tabla de rutas para las subredes públicas y privadas y asocia la tabla con ambas subredes
- Crea una puerta de enlace NAT para permitir que las subredes privadas se conecten a Internet sin necesidad de asignar una dirección IP externa enrutable a cada recurso.
3. Ahora, crea otro archivo dentro del directorio ~/terraform-vpc-demo, nómbralo vars.tf y pega el contenido a continuación.
Vars.tf es un archivo de variables de Terraform que contiene todas las variables a las que hace referencia el archivo de configuración.
Puedes ver las referencias a variables en el archivo de configuración mediante:
var.region
var.main_vpc_cidr
var.public_subnets
var.private_subnets
Es posible incluir todos los valores de configuración en un solo archivo de configuración. Para mantener las cosas claras y facilitar el trabajo a los desarrolladores y administradores, es importante dividir las cosas.
4. Crea un archivo más dentro del directorio ~/terraform-vpc-demo, pega el siguiente código y nómbralo como provider.tf para definir el proveedor de AWS. El tutorial creará recursos en la región us-east-2
.
El archivo de proveedores define proveedores como AWS, Oracle o Azure, etc., para que Terraform pueda conectarse con los servicios en la nube correctos.
provider "aws" { region = "us-east-2" }
5. Finalmente, crea un archivo más dentro del directorio ~/terraform-vpc-demo, nómbralo terraform.tfvars, y pega el código a continuación. Este archivo de variables contiene los valores que Terraform utilizará para reemplazar las referencias de variables dentro del archivo de configuración.
Ahora, abre tu terminal favorita (Bash en este caso) y verifica que todos los archivos requeridos estén contenidos en la carpeta ejecutando el comando tree
.

Ejecutando Terraform para crear el VPC de AWS
Ahora que tienes el archivo de configuración de Terraform y los archivos de variables listos para usar, ¡es hora de iniciar Terraform y crear la VPC! Para aprovisionar una configuración de Terraform, Terraform típicamente utiliza un enfoque de tres etapas terraform init → terraform plan → terraform apply. Vamos a repasar cada etapa ahora.
1. Abre una terminal y navega hasta el directorio ~\terraform-vpc-demo.
2. Ejecuta el comando terraform init
en el mismo directorio. El comando terraform init
inicializa los complementos y proveedores que son necesarios para trabajar con recursos.
Si todo va bien, deberías ver el mensaje Terraform se ha inicializado correctamente
en la salida, como se muestra a continuación.

3. Ahora, ejecuta el comando terraform plan
. Esta es una acción opcional, pero recomendada, para asegurarte de que la sintaxis de tu configuración sea correcta y te dé una visión general de los recursos que se aprovisionarán en tu infraestructura. terraform plan
Si tienes éxito, deberías ver un mensaje como Plan: "X" para añadir, "Y" para cambiar o "Z" para destruir
en la salida para indicar que el comando fue exitoso. También verás todos los recursos de AWS que Terraform tiene la intención de crear.

4. A continuación, dile a Terraform que realmente provisione la VPC de AWS y los recursos usando terraform apply
. Cuando invocas terraform apply
, Terraform leerá la configuración (main.tf) y los otros archivos para compilar una configuración. Luego enviará esa configuración a AWS como instrucciones para construir la VPC y otros componentes.

Observa los IDs definidos en la salida de Terraform. Necesitarás estos IDs para correlacionar los recursos creados en la siguiente sección.
El comando Terraform se ejecutó correctamente, así que cambiemos a la Consola de Administración de AWS para confirmar que la VPC y los componentes fueron creados con éxito.
Verificación de la VPC de Terraform de AWS
En este punto, deberías haber creado la VPC con Terraform. Verifiquemos manualmente si la VPC está en la Consola de Administración de AWS.
1. Abre tu navegador web favorito y navega hasta la Consola de Administración de AWS e inicia sesión.
2. Mientras estés en la Consola, haz clic en la barra de búsqueda en la parte superior, busca ‘vpc’ y haz clic en el elemento de menú VPC.

3. Una vez en la página de VPC, haz clic en Tus VPCs. Deberías ver la VPC creada con el mismo ID que Terraform devolvió anteriormente.

4. Dado que Terraform creó más que solo el recurso VPC sino todos los recursos requeridos para el VPC, entonces deberías encontrar cada recurso en esta página también.




Con todos los componentes creados exitosamente, usando Terraform, ¡este VPC está listo para funcionar!
Conclusión
En este tutorial, has aprendido cómo usar Terraform para implementar un VPC de AWS y sus componentes usando Terraform.
Construir una Amazon Virtual Private Cloud con Terraform te permite crear recursos rápidamente, fácilmente y de manera predecible. Ahora estás listo para usar este conocimiento con otros servicios de AWS y construir servicios poderosos sobre él.