arrow_back

Balanceo de cargas modular con Terraform: balanceador de cargas regional

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Balanceo de cargas modular con Terraform: balanceador de cargas regional

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP191

Labs de autoaprendizaje de Google Cloud

Descripción general

El balanceo de cargas en Google Cloud es diferente al de otros proveedores de servicios en la nube. Google Cloud usa reglas de reenvío en lugar de instancias de enrutamiento. Esas reglas de reenvío se combinan con servicios de backend, grupos de destino, mapas de URL y proxies de destino para desarrollar un balanceador de cargas funcional en varias regiones y grupos de instancias.

Terraform es una herramienta de administración de infraestructura de código abierto capaz de simplificar el aprovisionamiento de balanceadores de cargas en Google Cloud utilizando módulos.

Objetivos

En este lab, aprenderás a hacer lo siguiente:

  • Usar los módulos de balanceo de cargas para Terraform
  • Crear un balanceador de cargas TCP regional
  • Crear un balanceador de cargas TCP regional interno
  • Crear un balanceador de cargas HTTP global con Kubernetes Engine
  • Crear un balanceador de cargas HTTPS global basado en contenido

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su 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
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

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

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

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

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

Activa Cloud Shell

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. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Descripción general de los módulos de Terraform

El repositorio que usarás en este lab contiene algunos módulos de balanceadores de cargas. En primer lugar, aprenderás qué son los módulos y, luego, clonarás el repositorio y los usarás.

terraform-google-lb (regla de reenvío regional)

Este módulo crea un balanceador de cargas de red TCP para el balanceo de cargas regional mediante un grupo de instancias administrado. Tú proporcionas una referencia a un grupo de instancias administrado, y el módulo lo agrega a un grupo de destino. Se crea una regla de reenvío regional para desviar tráfico a instancias en buen estado dentro del grupo de destino.

Los servicios de balanceo de cargas y de backend, con una ruta desde google_compute_firewall hasta google_compute_instance_template.

Fragmento de ejemplo:

module "gce-lb-fr" { source = "github.com/GoogleCloudPlatform/terraform-google-lb" region = "${var.region}" name = "group1-lb" service_port = "${module.mig1.service_port}" target_tags = ["${module.mig1.target_tags}"] }

terraform-google-lb-internal (regla de reenvío interno regional)

Este módulo crea un balanceador de cargas interno para realizar el balanceo de cargas regional de recursos internos. Tú proporcionas una referencia a un grupo de instancias administrado, y el módulo lo agrega a un servicio de backend regional. Se crea una regla de reenvío interno para desviar tráfico a instancias en buen estado.

Los servicios de balanceo de cargas y de backend, con una ruta desde google_compute_region_backend_service hasta google_compute_instance_group_manager.

Fragmento de ejemplo:

module "gce-ilb" { source = "github.com/GoogleCloudPlatform/terraform-google-lb-internal" region = "${var.region}" name = "group2-ilb" ports = ["${module.mig2.service_port}"] health_port = "${module.mig2.service_port}" source_tags = ["${module.mig1.target_tags}"] target_tags = ["${module.mig2.target_tags}","${module.mig3.target_tags}"] backends = [ { group = "${module.mig2.instance_group}" }, { group = "${module.mig3.instance_group}" }, ] }

terraform-google-lb-http (regla de reenvío HTTP(S) global)

Este módulo crea un balanceador de cargas HTTP global para el balanceo de cargas multirregional basado en contenido. Proporcionas una referencia a un grupo de instancias administrado, certificados opcionales para terminación SSL, y el módulo crea un servicio de backend HTTP, un mapa de URL, un proxy de destino HTTP(S) y la regla de reenvío HTTP global para enrutar el tráfico basado en rutas de acceso HTTP a instancias en buen estado.

Los servicios de balanceo de cargas y de backend, con una ruta desde google_compute_backend_service hasta google_compute_instance_group_manager.

Fragmento de ejemplo:

module "gce-lb-http" { source = "github.com/GoogleCloudPlatform/terraform-google-lb-http" name = "group-http-lb" target_tags = ["${module.mig1.target_tags}", "${module.mig2.target_tags}"] backends = { "0" = [ { group = "${module.mig1.instance_group}" }, { group = "${module.mig2.instance_group}" } ], } backend_params = [ # health check path, port name, port number, timeout seconds. "/,http,80,10" ] }

Comencemos.

Tarea 1. Clona el repositorio de ejemplo

  1. Haz clic en el ícono Activar Cloud Shell en la esquina superior derecha de la consola de Cloud para abrir una nueva pestaña de Cloud Shell.

  2. Ejecuta el siguiente comando para clonar el repositorio terraform-google-examples:

git clone https://github.com/GoogleCloudPlatform/terraform-google-lb cd ~/terraform-google-lb/examples/basic

Tarea 2: Crea un balanceador de cargas TCP con una regla de reenvío regional

En este lab, se crea un grupo de instancias administrado con dos instancias en la misma región y un balanceador de cargas de red TCP.

  1. Comienza por exportar el ID de tu proyecto:
export GOOGLE_PROJECT=$(gcloud config get-value project)

El comando terraform init se usa para inicializar un directorio de trabajo que contiene archivos de configuración de Terraform. Este comando realiza varios pasos de inicialización diferentes con el fin de preparar un directorio de trabajo para su uso. Se recomienda ejecutar este comando varias veces para que se actualice el directorio de trabajo con los cambios en la configuración.

  1. Ejecuta el comando terraform init:
terraform init

Resultado de ejemplo:

Initializing modules... - module.mig1 - module.gce-lb-fr Initializing provider plugins... The following providers do not have any version constraints in configuration, so the latest version was installed. To prevent automatic upgrades to new major versions that may contain breaking changes, it is recommended to add version = "..." constraints to the corresponding provider blocks in configuration, with the constraint strings suggested below. - provider.google: version = "~> 1.13" - provider.null: version = "~> 1.0" - provider.template: version = "~> 1.0" Terraform has been successfully initialized! ...
  1. En el archivo terraform-google-lb/examples/basic/variables.tf, ejecuta los siguientes comandos para reemplazar la región predeterminada con la región asignada por el lab de .
export REGION={{{project_0.default_region | REGION}}} sed -i 's/us-central1/'"$REGION"'/g' variables.tf

El comando terraform plan se usa para crear un plan de ejecución. Terraform realiza una actualización, a menos que se la inhabilite explícitamente, y, luego, determina qué acciones son necesarias para alcanzar el estado deseado que se especificó en los archivos de configuración. Este comando proporciona un modo conveniente de comprobar si un plan de ejecución de un conjunto de cambios coincide con tus expectativas sin que tengas que modificar el estado o los recursos reales. Por ejemplo, se podría ejecutar terraform plan antes de confirmar un cambio en el control de versión para garantizar que se comportará según lo esperado.

  1. Ejecuta el comando terraform plan:
terraform plan
  1. Cuando se te solicite ingresar un valor para el ID del proyecto, usa .

El comando terraform apply se usa para aplicar los cambios requeridos para lograr el estado deseado de la configuración o el conjunto de acciones predeterminadas que genera un plan de ejecución terraform plan.

  1. Ejecuta el comando terraform apply:
terraform apply
  1. Cuando se te solicite ingresar un valor para el ID del proyecto, usa .

  2. Escribe yes para continuar cuando se muestre el siguiente mensaje.

Resultado de ejemplo:

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

Luego de unos minutos, las instancias y el balanceador de cargas estarán listos.

  1. Comprueba el estado de tu balanceador de cargas en la consola de Cloud. Para ello, navega al Menú de navegación > Servicios de red > Balanceo de cargas.

  2. Ejecuta el siguiente comando para abrir la URL del balanceador de cargas en un navegador:

EXTERNAL_IP=$(terraform output | grep load_balancer_default_ip | cut -d = -f2 | xargs echo -n) echo "http://${EXTERNAL_IP}"
  1. En el resultado, haz clic en la dirección http://${EXTERNAL_IP} para abrir el vínculo al balanceador de cargas.

  2. Actualiza varias veces para ver el balanceo de tráfico a través de ambas instancias en la región .

Haz clic en Revisar mi progreso para verificar el objetivo. Balanceador de cargas TCP con una regla de reenvío regional

¡Felicitaciones!

En este lab, aprendiste a usar los módulos de balanceo de cargas. Con Terraform, implementaste un balanceador de cargas TCP regional, un balanceador de cargas TCP interno regional, un balanceador de cargas HTTPS global con Kubernetes Engine y un balanceador de cargas basado en contenido HTTPS.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 7 de diciembre de 2023

Prueba más reciente del lab: 7 de diciembre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.