Create mynetwork and its resources

Revisar mi progreso

/ 100

Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.

Descripción general

Terraform te permite crear, cambiar y mejorar infraestructura de forma segura y predecible. Es una herramienta de código abierto que codifica las APIs en archivos de configuración declarativa que se pueden compartir entre los miembros de un equipo, tratar como código, editar, revisar o cambiar de versión.

En este lab, crearás una configuración de Terraform con un módulo para automatizar la implementación de la infraestructura de Google Cloud. En particular, implementarás una red de modo automático con una regla de firewall y dos instancias, como se muestra en este diagrama:

Diagrama de configuración de Terraform

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Crear una configuración para una red de modo automático
  • Crear una configuración para una regla de firewall
  • Crear un módulo para instancias
  • Crear e implementar una configuración
  • Verificar la implementación de una configuración

Configuración

En cada lab, recibirás un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón Abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haga clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda. Ícono del menú de navegación

Tarea 1: Instala Terraform y Cloud Shell

En esta tarea, configurarás tu entorno de Cloud Shell para que use Terraform.

Activa Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.

Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. Haz clic en Continuar.

El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

ID del proyecto destacado en la terminal de Cloud Shell

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.

  • Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

Instala Terraform

Terraform no está preinstalado en Cloud Shell. Debes instalar la CLI de Terraform y configurarla para que persista en tus sesiones de Cloud Shell.

  1. Para configurar el repositorio de HashiCorp e instalar Terraform, y asegurarte de que esta instalación persista en sesiones futuras, ejecuta los siguientes comandos en la terminal de Cloud Shell:
cat <<'EOF' > ~/.customize_environment # Set up HashiCorp repository and install Terraform wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list sudo apt update && sudo apt install -y terraform EOF bash ~/.customize_environment
  1. Para verificar que Terraform se haya instalado correctamente, ejecuta el siguiente comando:
terraform --version

En el resultado, se debería mostrar la versión instalada (v1.5.7 o posterior):

Terraform v1.9.0

Crea los archivos de configuración

Ahora que instalaste Terraform, crea el directorio y los archivos para tu configuración de Terraform.

  1. Ejecuta el siguiente comando para crear un directorio para tu configuración de Terraform:
mkdir tfinfra
  1. En Cloud Shell, haz clic en Abrir editor (Ícono del Editor de Cloud Shell).

Nota: Si ves el mensaje "No se puede cargar el editor de código porque las cookies de terceros no están habilitadas", haz clic en Abrir en una ventana nueva. El editor de código se abrirá en una pestaña nueva. Regresa a la pestaña original, haz clic en Abrir terminal y luego vuelve a la pestaña del editor de código. Deberás volver varias veces a la terminal de Cloud Shell en este lab.

  1. En el panel izquierdo del editor de código, expande la carpeta tfinfra.

Inicializa Terraform

Terraform usa una arquitectura basada en complementos para admitir la gran cantidad de proveedores de servicio y de infraestructura disponibles. Cada "proveedor" es su propio objeto binario encapsulado y distribuido por separado de Terraform. Configura Google como proveedor para inicializar Terraform.

  1. Para crear un archivo nuevo en la carpeta tfinfra, haz clic con el botón derecho en la carpeta tfinfra y, luego, haz clic en New File.
  2. Asígnale el nombre provider.tf al archivo nuevo y, luego, ábrelo.
  3. Copia el código en provider.tf:
provider "google" {}
  1. Para guardar provider.tf, haz clic en File > Save.

  2. Para inicializar Terraform, ejecuta el siguiente comando:

cd tfinfra terraform init

Ya puedes comenzar a trabajar con Terraform en Cloud Shell.

Tarea 2: Crea mynetwork y sus recursos

En esta tarea, crearás la red de modo automático mynetwork junto con su regla de firewall y dos instancias de VM (mynet_vm_1 y mynet_vm_2).

Configura mynetwork

Crea una configuración nueva y define mynetwork.

  1. Para crear un archivo nuevo dentro en la carpeta tfinfra, haz clic con el botón derecho en la carpeta tfinfra y, luego, haz clic en New File.
  2. Asígnale el nombre mynetwork.tf al archivo nuevo y, luego, ábrelo.
  3. Copia el siguiente código base en mynetwork.tf:
# Crea la red mynetwork resource [RESOURCE_TYPE] "mynetwork" { name = [RESOURCE_NAME] # Aquí van las propiedades del RECURSO }

Esta plantilla base es un gran punto de partida para todos los recursos de Google Cloud. El campo name permite asignarle un nombre al recurso y el campo type permite especificar el recurso de Google Cloud que quieres crear. También puedes definir propiedades, aunque para algunos recursos son opcionales.

  1. En mynetwork.tf, reemplaza [RESOURCE_TYPE] por "google_compute_network" (con las comillas).

Nota: El recurso google_compute_network es una red de VPC. Los recursos disponibles se encuentran en la documentación del proveedor de Google Cloud. Obtén más información sobre este recurso en particular en la documentación de Terraform.

  1. En mynetwork.tf, reemplaza [RESOURCE_NAME] por "mynetwork" (con las comillas).
  2. Agrega la siguiente propiedad a mynetwork.tf:
auto_create_subnetworks = true

Por definición, una red de modo automático crea una subred en cada región automáticamente. Por lo tanto, debes configurar auto_create_subnetworks como true.

  1. Verifica que el archivo mynetwork.tf se vea de la siguiente manera:
# Crea la red mynetwork resource "google_compute_network" "mynetwork" { name = "mynetwork" # Aquí van las propiedades del RECURSO auto_create_subnetworks = true }
  1. Para guardar mynetwork.tf, haz clic en File > Save.

Configura la regla de firewall

Define una regla de firewall para permitir el tráfico HTTP, SSH, ICMP y RDP en mynetwork.

  1. Agrega el siguiente código base a mynetwork.tf:
# Agrega una regla de firewall para permitir el tráfico HTTP, SSH, ICMP y RDP en mynetwork resource [RESOURCE_TYPE] "mynetwork-allow-http-ssh-rdp-icmp" { name = [RESOURCE_NAME] # Aquí van las propiedades del RECURSO }
  1. En mynetwork.tf, reemplaza [RESOURCE_TYPE] por "google_compute_firewall" (con las comillas).

Nota: El recurso google_compute_firewall es una regla de firewall. Obtén más información sobre este recurso en particular en la documentación de Terraform.

  1. En mynetwork.tf, reemplaza [RESOURCE_NAME] por "mynetwork-allow-http-ssh-rdp-icmp" (con las comillas).
  2. Agrega la siguiente propiedad a mynetwork.tf:
network = google_compute_network.mynetwork.self_link

Nota: Dado que la regla de firewall depende de su red, usa la referencia google_compute_network.mynetwork.self_link para indicarle a Terraform que resuelva esos recursos en un orden dependiente. En este caso, se crea la red antes que la regla de firewall.

  1. Agrega las siguientes propiedades a mynetwork.tf:
allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"]

En la lista de reglas allow, se especifica qué protocolos y puertos se permiten.

  1. Verifica que el archivo mynetwork.tf se vea de la siguiente manera:
# Crea la red mynetwork resource "google_compute_network" "mynetwork" { name = "mynetwork" # Aquí van las propiedades del RECURSO auto_create_subnetworks = "true" } # Agrega una regla de firewall para permitir el tráfico HTTP, SSH, ICMP y RDP en mynetwork resource "google_compute_firewall" "mynetwork-allow-http-ssh-rdp-icmp" { name = "mynetwork-allow-http-ssh-rdp-icmp" # Aquí van las propiedades del RECURSO network = google_compute_network.mynetwork.self_link allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] }
  1. Para guardar mynetwork.tf, haz clic en File > Save.

Configura la instancia de VM

Crea un módulo para definir las instancias de VM. Un módulo es una configuración reutilizable dentro de una carpeta. Usarás ese módulo para ambas instancias de VM de este lab.

  1. Para crear una carpeta nueva en tfinfra, selecciona la carpeta tfinfra y haz clic en File > New Folder.
  2. Asígnale el nombre instance a la carpeta nueva.
  3. Para crear un archivo nuevo dentro de instance, haz clic con el botón derecho en la carpeta instance y, luego, haz clic en New File.
  4. Asígnale el nombre main.tf al archivo nuevo y, luego, ábrelo.

Debería tener la siguiente estructura de carpetas en Cloud Shell:

Estructura de carpetas

  1. Copia el siguiente código base en main.tf:
resource [RESOURCE_TYPE] "vm_instance" { name = [RESOURCE_NAME] # Aquí van las propiedades del RECURSO }
  1. En main.tf, reemplaza [RESOURCE_TYPE] por "google_compute_instance" (con las comillas).

Nota: El recurso google_compute_instance es una instancia de Compute Engine. Obtén más información sobre este recurso en particular en la documentación de Terraform.

  1. En main.tf, reemplaza [RESOURCE_NAME] por "${var.instance_name}" (con las comillas).

Debido a que usarás este módulo para ambas instancias de VM, definirás el nombre de la instancia como una variable de entrada. Así, podrás controlar el nombre de la variable desde mynetwork.tf. Obtén más información sobre las variables de entrada en la guía para definir variables de entrada de Terraform.

  1. Agrega las siguientes propiedades a main.tf:
zone = "${var.instance_zone}" machine_type = "${var.instance_type}"

Estas propiedades definen la zona y el tipo de máquina de la instancia como variables de entrada.

  1. Agrega las siguientes propiedades a main.tf:
boot_disk { initialize_params { image = "debian-cloud/debian-12" } }

Esta propiedad define el disco de arranque para que use la imagen de SO de Debian 12. Debido a que ambas instancias de VM usarán la misma imagen, hacer que esta propiedad esté hard-coded en el módulo.

  1. Agrega las siguientes propiedades a main.tf:
network_interface { network = "${var.instance_network}" access_config { # Asígnale una IP con NAT uno a uno a la instancia } }

Esta propiedad define la interfaz de red brindando su nombre como una variable de entrada y la configuración de acceso. Si se deja vacía la configuración de acceso, el resultado será una dirección IP externa efímera (que es uno de los requisitos de este lab). Para crear instancias con solo una dirección IP interna, quita la sección access_config. Para obtener más información, consulta la documentación de Terraform.

  1. Verifica que main.tf se vea tal como se muestra a continuación, incluidas las llaves {}:
resource "google_compute_instance" "vm_instance" { name = "${var.instance_name}" zone = "${var.instance_zone}" machine_type = "${var.instance_type}" boot_disk { initialize_params { image = "debian-cloud/debian-12" } } network_interface { network = "${var.instance_network}" access_config { # Asígnale una IP con NAT uno a uno a la instancia } } }
  1. Para guardar main.tf, haz clic en File > Save.
  2. Para crear un archivo nuevo dentro de instance, haz clic con el botón derecho en la carpeta instance y, luego, haz clic en New File.
  3. Asígnale el nombre variables.tf al archivo nuevo y, luego, ábrelo.
  4. Define las 4 variables de entrada en variables.tf.
variable "instance_name" {} variable "instance_zone" {} variable "instance_type" { default = "e2-micro" } variable "instance_network" {}

Cuando le asignas un valor predeterminado a instance_type, haces que la variable sea opcional. Los valores de instance_name, instance_zone e instance_network son obligatorios y los definirás en mynetwork.tf.

  1. Para guardar variables.tf, haz clic en File > Save.
  2. Agrega las siguientes instancias de VM a mynetwork.tf:
# Crea la instancia mynet-vm-1 module "mynet-vm-1" { source = "./instance" instance_name = "mynet-vm-1" instance_zone = "{{{project_0.default_zone|Zone}}}" instance_network = google_compute_network.mynetwork.self_link } # Crea la instancia mynet-vm-2 module "mynet-vm-2" { source = "./instance" instance_name = "mynet-vm-2" instance_zone = "{{{project_0.default_zone_2|Zone 2}}}" instance_network = google_compute_network.mynetwork.self_link }

Estos recursos aprovechan el módulo de la carpeta instance y proporcionan el nombre, la zona y la red como entradas. Puesto que esas instancias dependen de una red de VPC, debes utilizar la referencia google_compute_network.mynetwork.self_link para indicarle a Terraform que resuelva esos recursos en un orden dependiente. En este caso, la red se crea antes que la instancia.

Nota: El beneficio de escribir un módulo de Terraform es que se puede reutilizar en varios parámetros de configuración. En lugar de escribir tu propio módulo, también puedes aprovechar otros disponibles en el registro de módulos de Terraform.

  1. Para guardar mynetwork.tf, haz clic en File > Save.

  2. Verifica que mynetwork.tf se vea tal como se muestra a continuación, incluidas las llaves {}

# Crea la red mynetwork resource "google_compute_network" "mynetwork" { name = "mynetwork" # Aquí van las propiedades del RECURSO auto_create_subnetworks = "true" } # Agrega una regla de firewall para permitir el tráfico HTTP, SSH, ICMP y RDP en mynetwork resource "google_compute_firewall" "mynetwork-allow-http-ssh-rdp-icmp" { name = "mynetwork-allow-http-ssh-rdp-icmp" # Aquí van las propiedades del RECURSO network = google_compute_network.mynetwork.self_link allow { protocol = "tcp" ports = ["22", "80", "3389"] } allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] } # Crea la instancia mynet-vm-1 module "mynet-vm-1" { source = "./instance" instance_name = "mynet-vm-1" instance_zone = "{{{project_0.default_zone|Zone}}}" instance_network = google_compute_network.mynetwork.self_link } # Crea la instancia mynet-vm-2 module "mynet-vm-2" { source = "./instance" instance_name = "mynet-vm-2" instance_zone = "{{{project_0.default_zone_2|Zone 2}}}" instance_network = google_compute_network.mynetwork.self_link }

Crea mynetwork y sus recursos

Llegó la hora de aplicar la configuración mynetwork.

  1. Para volver a escribir los archivos de configuración de Terraform en un formato y estilo canónicos, ejecuta el siguiente comando:
terraform fmt

El resultado debería verse así:

mynetwork.tf

Nota: Si recibes un mensaje de error, revisa los pasos anteriores para asegurarte de que tu configuración coincida con las instrucciones del lab. Si no puedes solucionar el problema de configuración, descarga y consulta estos archivos terminados:

  1. Para inicializar Terraform, ejecuta el siguiente comando:
terraform init

El resultado debería verse así:

Initializing modules... - mynet-vm-2 in instance - mynet-vm-2 in instance ... Terraform has been successfully initialized!

Nota: Si recibes un mensaje de error, revisa los pasos anteriores para asegurarte de que cuentas con la estructura de carpetas y archivos correcta. Si el problema persiste, consulta los archivos de configuración terminados que vinculamos anteriormente. Una vez resuelto el problema, vuelve a ejecutar el comando anterior.

  1. Para crear un plan de ejecución, ejecuta el siguiente comando:
terraform plan

El resultado debería verse así:

... Plan: 4 to add, 0 to change, 0 to destroy. ...

Terraform determinó que se deben agregar los siguientes 4 recursos:

Nombre Descripción
mynetwork Red de VPC
mynetwork-allow-http-ssh-rdp-icmp Regla de firewall para permitir HTTP, SSH, ICMP y RDP
mynet-vm-2 Instancia de VM en
mynet-vm-2 Instancia de VM en
  1. Para aplicar los cambios deseados, ejecuta el siguiente comando:
terraform apply
  1. Para confirmar las acciones planificadas, escribe lo siguiente:
yes

El resultado debería verse así:

... Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear mynetwork y sus recursos

Nota: Si recibes un mensaje de error durante la ejecución, vuelve a revisar los pasos anteriores para asegurarte de que cuentas con la estructura de carpetas y archivos correcta. Si el problema persiste, consulta los archivos de configuración terminados que vinculamos anteriormente. Una vez resuelto el problema, vuelve a ejecutar el comando anterior.

Tarea 3: Verifica tu implementación

En la consola de Google Cloud, verifica que se hayan creado los recursos.

Verifica tu red de nube privada virtual (VPC) en la consola de Google Cloud

  1. En el menú de navegación (Ícono del menú de navegación) de la consola de Google Cloud, haz clic en Red de VPC > Redes de VPC.
  2. Visualiza la red de VPC mynetwork con una subred en cada región.
  3. En el menú de navegación, haz clic en Red de VPC > Firewall.
  4. Ordena las reglas de firewall por Red.
  5. Consulta la regla de firewall mynetwork-allow-http-ssh-rdp-icmp para mynetwork.

Verifica tus instancias de VM en la consola de Cloud

  1. En el menú de navegación (Ícono del menú de navegación), haz clic en Compute Engine > Instancias de VM.
  2. Revisa que estén las instancias mynet-vm-1 y mynet-vm-2.
  3. Toma nota de la dirección IP interna de mynet-vm-2.
  4. En mynet-vm-1, haz clic en SSH para iniciar una terminal y conectarte.
  5. Para probar la conectividad con la dirección IP interna de mynet-vm-2, ejecuta el siguiente comando en la terminal SSH (reemplaza la dirección IP interna de mynet-vm-2 por el valor que anotaste antes):
ping -c 3 <Ingresa aquí la IP interna de mynet-vm-2> Nota: Este comando debería funcionar porque ambas instancias de VM están en la misma red y la regla de firewall permite el tráfico de ICMP.

Tarea 4: Haz un repaso

En este lab, creaste una configuración de Terraform con un módulo para automatizar la implementación de la infraestructura de Google Cloud. A medida que cambia tu configuración, Terraform puede crear planes de ejecución incrementales, lo que te permitirá crear tu configuración general paso a paso.

El módulo de instancia te permitió reutilizar la misma configuración para varios recursos y te brindó propiedades como variables de entrada. Puedes aprovechar la configuración y el módulo que creaste como punto de partida en implementaciones futuras.

Finaliza el lab

Cuando hayas completado el lab, haz clic en Finalizar lab. Google Skills quitará los recursos que usaste y limpiará la cuenta.

Tendrás la oportunidad de calificar tu experiencia en el lab. Selecciona la cantidad de estrellas que corresponda, ingresa un comentario y haz clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Ni satisfecho ni insatisfecho
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puedes cerrar el cuadro de diálogo si no deseas proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, usa la pestaña Asistencia.

Copyright 2026 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.