Implementa una red de concentrador y radio mediante el intercambio de tráfico entre redes de VPC

En este instructivo, se muestra cómo configurar una red de concentrador y radio en Google Cloud mediante la capacidad de intercambio de tráfico entre redes de Virtual Private. Nube (VPC). El intercambio de tráfico entre redes de VPC te permite conectar redes de VPC para que las cargas de trabajo que se encuentran en redes de VPC diferentes puedan comunicarse de forma interna. El tráfico permanece dentro de la red de Google y no pasa por la Internet pública.

En el siguiente diagrama, se muestra la arquitectura que implementas. Consta de dos redes de VPC de radio, cada una con una red de VPC de concentrador central. Un túnel VPN entre una de las redes de VPC de radio y la red de VPC de concentrador habilita la conectividad entre radios.

Arquitectura de concentrador y radio mediante el intercambio de tráfico entre redes de VPC

Para obtener más información sobre esta arquitectura y otras alternativas de diseño, consulta Arquitectura de red de concentrador y radio.

Objetivos

Aprovisionar los siguientes recursos en Google Cloud mediante una plantilla de Terraform que proporciona Google:

  • Tres redes de VPC, una designada como concentrador y las otras dos como radios.
  • Una subred en cada una de las redes de VPC de una región específica.
  • Configuraciones de intercambio de tráfico entre redes de VPC entre cada red de VPC de radio y la red de VPC del concentrador.
  • Un conjunto de reglas de firewall para cada red de VPC.
  • Una puerta de enlace de Cloud NAT para cada red de VPC de radio.
  • Una instancia de prueba de Compute Engine para cada red de VPC.
  • Un clúster de prueba de Google Kubernetes Engine (GKE) con un solo grupo de nodos en la red de VPC de radio-2.
  • Una cuenta de servicio para las instancias de Compute Engine.
  • Una cuenta de servicio para los nodos de GKE.
  • Puertas de enlace de Cloud VPN estáticas en la red de VPC del concentrador y en la red de VPC del radio-2, con un solo túnel cada una.

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices este instructivo, podrás borrar los recursos creados para evitar que se te siga facturando. Para obtener más información, consulta cómo hacer una limpieza.

Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Antes de comenzar

  1. Decide si deseas implementar los recursos en un proyecto existente o en un proyecto nuevo que Terraform cree.

  2. Obtén los permisos necesarios.

    Para crear y administrar recursos mediante las plantillas de Terraform proporcionadas, la cuenta de Google o servicio necesita las siguientes funciones de Identity and Access Management (IAM):

    • Administrador de Compute (roles/compute.admin)
    • Administrador de Kubernetes Engine (roles/container.admin)
    • Administrador de cuenta de servicio (roles/iam.serviceAccountAdmin)
    • Administrador del proyecto de IAM (roles/resourcemanager.projectIamAdmin)
    • Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin)
    • Creador del proyecto (roles/resourcemanager.projectCreator) (obligatorio para implementar los recursos en un proyecto nuevo)

    Si no tienes un permiso necesario o no estás seguro, comunícate con el administrador de tu organización.

  3. Omite este paso si deseas implementar los recursos en un proyecto nuevo que cree Terraform (opcional).

    Para usar un proyecto existente o uno que crees, completa los siguientes pasos:

    1. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

      Ir al selector de proyectos

    2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

    3. Habilita las API de Compute Engine, GKE, IAM, Service Usage y Resource Manager.

      Habilita las API

Prepara el entorno

Puedes completar este instructivo mediante Cloud Shell o tu host local. Cloud Shell ya tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.

Para usar Cloud Shell, sigue estos pasos:

  • Descarga y abre las plantillas de ejemplo de Terraform en Cloud Shell.

    Abre en Cloud Shell

    Cloud Shell se inicia en otra pestaña del navegador y las plantillas de ejemplo de Terraform se descargan en el directorio $HOME/cloudshell_open de tu entorno de Cloud Shell.

Para usar el host local

Completa los siguientes pasos:

  1. Instala Terraform versión 0.13.0 o posterior.

  2. Descarga las plantillas de ejemplo de Terraform desde Ejemplos y módulos de Terraform para Google Cloud.

  3. Crear una cuenta de servicio y una clave

    Cloud Console

    Crea una cuenta de servicio:

    1. En Cloud Console, ve a la página Crear cuenta de servicio.

      Ir a Crear cuenta de servicio
    2. Selecciona un proyecto
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. Cloud Console completa el campo ID de cuenta de servicio según este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Haz clic en el campo Seleccionar una función.

      En Acceso rápido, haz clic en Básico y, luego, en Propietario.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

    Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En Cloud Console, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave, luego haz clic en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.

    Línea de comandos

    Puedes ejecutar los siguientes comandos con el SDK de Cloud en tu máquina local o en Cloud Shell.

    1. Crea la cuenta de servicio. Reemplaza NAME por un nombre para la cuenta de servicio.

      gcloud iam service-accounts create NAME
    2. Otorga permisos a la cuenta de servicio. Reemplaza PROJECT_ID por el ID del proyecto.

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/owner"
    3. Genera el archivo de claves. Reemplaza FILE_NAME por un nombre para el archivo de claves.

      gcloud iam service-accounts keys create FILE_NAME.json --iam-account=NAME@PROJECT_ID.iam.gserviceaccount.com
  4. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS para proporcionar credenciales de autenticación al código de la aplicación. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

    Linux o macOS

    export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    Reemplaza KEY_PATH por la ruta de acceso del archivo JSON que contiene la clave de tu cuenta de servicio.

    Por ejemplo:

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Windows

    Para PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

    Reemplaza KEY_PATH por la ruta de acceso del archivo JSON que contiene la clave de tu cuenta de servicio.

    Por ejemplo:

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

    Para el símbolo del sistema:

    set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

    Reemplaza KEY_PATH por la ruta de acceso del archivo JSON que contiene la clave de tu cuenta de servicio.

Configura las variables de Terraform

El código de Terraform que descargaste incluye variables que puedes usar para personalizar la implementación según tus requisitos. Por ejemplo, puedes ajustar los rangos de CIDR de la subred y especificar el proyecto en el que se deben implementar los recursos.

  1. En el código que descargaste (en tu host local o en Cloud Shell), ve al subdirectorio networking/hub-and-spoke-peering.

    cd networking/hub-and-spoke-peering
    
  2. Abre el archivo variables.tf.

    Las variables de entrada para la configuración de Terraform se declaran en este archivo. Algunas de las variables tienen un valor default.

  3. Identifica las variables a las que necesitas asignar valores:

    • Variables que no tienen un valor predeterminado (por ejemplo, project_id).
    • Variables con un valor predeterminado que deseas cambiar.

      Por ejemplo, ip_ranges tiene rangos de CIDR predeterminados, pero es posible que debas usar rangos diferentes para la implementación.

    Para cada variable que identifiques, lee su description y anota su type.

  4. Crea un archivo de texto llamado terraform.tfvars.

  5. En el archivo terraform.tfvars o , asigna los valores adecuados a las variables que identificaste antes.

    Ejemplo:

    ip_ranges = {
      hub     = "10.0.0.0/24"
      spoke-1 = "10.0.24.0/24"
      spoke-2 = "10.0.48.0/24"
    }
    
    prefix = "dev"
    
    project_id = "my-project"
    
    region = "us-central1"
    
  6. Inicializa Terraform mediante este comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    
  7. Verifica que la configuración no tenga errores:

    terraform validate
    

    Si el comando muestra un error, realiza las correcciones necesarias en la configuración y vuelve a ejecutar terraform validate.

    Repite este paso hasta que el comando muestre el siguiente mensaje:

    Success! The configuration is valid.
    
  8. Revisa los recursos definidos en la configuración:

    terraform plan
    

    En el resultado, se enumeran los recursos que Terraform aprovisiona cuando aplicas la configuración.

    Si deseas realizar algún cambio, edita la configuración y, luego, vuelve a ejecutar terraform validate y terraform plan.

Aprovisionamiento de recursos

Cuando no se necesiten más cambios en la configuración, implementa los recursos de la siguiente manera:

  1. Ejecuta el siguiente comando:

    terraform apply
    

    Terraform muestra una lista de los recursos que se crearán.

  2. Cuando se te solicite que realices las acciones, ingresa yes.

    Si Terraform muestra un mensaje de error que indica que una o más API no están habilitadas, usa cada vínculo que se muestra en el mensaje para habilitar las API requeridas.

    Terraform muestra mensajes que señalan el progreso de la implementación. Una vez que se hayan creado todos los recursos, Terraform mostrará el siguiente mensaje:

    Apply complete!
    

Ya implementaste una red de concentrador y radio en Google Cloud.

Agrega, cambia o quita recursos

Para agregar, cambiar o quitar recursos, edita la configuración de Terraform y, luego, ejecuta los comandos terraform validate, terraform plan y terraform apply en ese orden.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que creaste en este instructivo, borra todos los recursos cuando no los necesites.

  1. Ejecuta el siguiente comando:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se crearán.

  2. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    

¿Qué sigue?