arrow_back

Cómo configurar balanceadores de cargas de red y HTTP

Unirse Acceder

Cómo configurar balanceadores de cargas de red y HTTP

1 hora 1 crédito

GSP007

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab práctico, aprenderás las diferencias entre un balanceador de cargas de red y un balanceador de cargas HTTP, y cómo configurarlos para las aplicaciones que se ejecutan en máquinas virtuales (VMs) de Compute Engine.

Existen varias formas de balancear cargas en Google Cloud. En este lab, conocerás los pasos para configurar los siguientes balanceadores de cargas:

Es aconsejable que escribas los comandos tú mismo, ya que te ayudará a aprender los conceptos básicos. Muchos labs incluyen un bloque de código que contiene los comandos necesarios. Durante el lab, puedes copiar y pegar fácilmente los comandos del bloque de código en los lugares apropiados.

Qué aprenderás

  • Configurar un balanceador de cargas de red

  • Configurar un balanceador de cargas HTTP

  • Obtener conocimientos prácticos mientras aprendes las diferencias entre los balanceadores de cargas de red y los balanceadores de cargas HTTP

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

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

Este lab práctico de Qwiklabs le permitirá llevar a cabo las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, le proporciona credenciales temporales nuevas que utilizará para acceder a Google Cloud durante todo el lab.

Qué necesita

Para completar este lab, necesitará lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
  • Tiempo para completar el lab

Nota: Si ya tiene un proyecto o una cuenta personal de Google Cloud, no los use para este lab.

Nota: Si usa un dispositivo con Chrome OS, ejecute este lab en una ventana de incógnito.

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

Active Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas de desarrollo. 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 sus recursos de GCP.

  1. En GCP Console, en la barra de herramientas superior derecha, haga clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell

  2. Haga clic en Continue (Continuar):

    cloudshell_continue

Toma unos minutos aprovisionar y conectarse con el entorno. Cuando está conectado, ya está autenticado y el proyecto está configurado en su PROJECT_ID . Por ejemplo:

Terminal de Cloud Shell

gcloud es la herramienta de línea de comandos para Google Cloud Platform. Viene preinstalada en Cloud Shell y es compatible con la función “tab-completion”.

Puede mostrar el nombre de la cuenta activa con este comando:

gcloud auth list

Resultado:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Puede mostrar el ID del proyecto con este comando:

gcloud config list project
	

Resultado:

[core]
project = <project_ID>
	

Resultado de ejemplo:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Tarea 1: Configura la región y la zona predeterminadas para todos los recursos

  1. En Cloud Shell, configura la zona predeterminada:

    gcloud config set compute/zone {{{project_0.startup_script.project_zone}}}
  2. Configura la región predeterminada:

    gcloud config set compute/region {{{project_0.startup_script.project_region}}}

    Consulta la Guía sobre regiones y zonas de Compute Engine para obtener más información sobre cómo elegirlas.

Tarea 2: Crea varias instancias de servidor web

Para esta situación de balanceo de cargas, crea tres instancias de VM de Compute Engine e instala Apache en ellas. Luego, agrega una regla de firewall que permita que el tráfico HTTP llegue a las instancias.

El código proporcionado establece la zona en . Si configuras el campo de etiquetas, podrás hacer referencia a estas instancias de una sola vez, por ejemplo, con una regla de firewall. Con estos comandos, también se instala Apache en cada instancia y se les otorga una página principal única:

  1. Crea una máquina virtual www1 en tu zona predeterminada.

    gcloud compute instances create www1 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www1

    " | tee /var/www/html/index.html'
  2. Crea una máquina virtual www2 en tu zona predeterminada.

    gcloud compute instances create www2 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www2

    " | tee /var/www/html/index.html'
  3. Crea una máquina virtual www3 en tu zona predeterminada.

    gcloud compute instances create www3 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www3

    " | tee /var/www/html/index.html'
  4. Crea una regla de firewall para permitir la entrada del tráfico externo a las instancias de VM:

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

Ahora debes obtener las direcciones IP externas de tus instancias y verificar que se estén ejecutando.

  1. Ejecuta los siguientes comandos para generar una lista de tus instancias. Encontrarás las direcciones IP en la columna EXTERNAL_IP:

    gcloud compute instances list
  2. Verifica que cada instancia se esté ejecutando con curl (reemplaza [IP_ADDRESS] por la dirección IP de cada VM):

    curl http://[IP_ADDRESS]

    Haz clic en Revisar mi progreso a continuación para verificar que creaste un grupo de servidores web.

    Crea varias instancias de servidor web

Tarea 3: Configura el servicio de balanceo de cargas

Cuando configures el servicio de balanceo de cargas, tus instancias de máquina virtual recibirán paquetes destinados a la dirección IP externa estática que configures. Las instancias creadas con una imagen de Compute Engine se configuran automáticamente para administrar esta dirección IP.

Nota: Consulta la Guía de descripción general del balanceo de cargas de redes TCP/UDP externo para obtener más información sobre cómo configurar un balanceo de cargas de este tipo.
  1. Crea una dirección IP externa estática para tu balanceador de cargas:

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.startup_script.project_region}}}

    Resultado:

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. Agrega un recurso de verificación de estado HTTP heredado:

    gcloud compute http-health-checks create basic-check
  3. Agrega un grupo de destino en la misma región que tus instancias. Ejecuta el siguiente comando para crear el grupo de destino y utilizar la verificación de estado requerida para que funcione el servicio:

    gcloud compute target-pools create www-pool \ --region {{{project_0.startup_script.project_region}}} --http-health-check basic-check
  4. Agrega las instancias al grupo:

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
  5. Agrega una regla de reenvío:

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.startup_script.project_region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    Haz clic en Revisar mi progreso a continuación para verificar que creaste un balanceador de cargas de red L4 que apunte a los servidores web.

    Configurar el servicio de balanceo de cargas

Tarea 4: Envía tráfico a tus instancias

Ahora que está configurado el servicio de balanceo de cargas, puedes comenzar a enviar tráfico a la regla de reenvío y ver cómo se dispersa el tráfico a las diferentes instancias.

  1. Ingresa el comando siguiente para ver la dirección IP externa de la regla de reenvío www-rule que usa el balanceador de cargas:

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}}
  2. Accede a la dirección IP externa:

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}} --format="json" | jq -r .IPAddress)
  3. Muestra la dirección IP externa:

    echo $IPADDRESS
  4. Utiliza el comando curl para acceder a la dirección IP externa (reemplaza IP_ADDRESS por la dirección IP externa del comando anterior):

    while true; do curl -m1 $IPADDRESS; done

    La respuesta del comando curl se alterna de manera aleatoria entre las tres instancias. Si al principio la respuesta es incorrecta, espera aproximadamente 30 segundos para que la configuración se cargue por completo y las instancias estén en buen estado antes de volver a intentarlo.

  5. Utiliza Ctrl + c para detener la ejecución del comando.

Tarea 5: Crea un balanceador de cargas HTTP

El balanceo de cargas HTTP(S) se implementa en Google Front End (GFE). Los GFE se distribuyen globalmente y operan juntos mediante el plano de control y la red global de Google. Puede configurar reglas de URL que enruten algunas URLs a un conjunto de instancias y otras URLs a otras instancias.

Las solicitudes siempre se enrutan al grupo de instancias más cercano al usuario si el grupo tiene la capacidad suficiente y es apropiado para la solicitud. Si el grupo más cercano no tiene suficiente capacidad, la solicitud se envía al grupo más cercano que la tenga.

Para configurar un balanceador de cargas con un backend de Compute Engine, tus VMs deben estar en un grupo de instancias. El grupo de instancias administrado proporciona las VMs que ejecutan los servidores de backend de un balanceador de cargas HTTP externo. En este lab, los backends entregan sus propios nombres de host.

  1. Primero crea la plantilla del balanceador de cargas:

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.startup_script.project_region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

    Los grupos de instancias administrados (MIG) te permiten operar apps en varias VMs idénticas. Puedes hacer que tus cargas de trabajo sean escalables y tengan alta disponibilidad gracias a los servicios de MIG automatizados, que incluyen el ajuste de escala automático, la reparación automática, la implementación regional (en varias zonas) y la actualización automática.

  2. Crea un grupo de instancias administrado basado en la plantilla:

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.startup_script.project_zone}}}
  3. Crea la regla de firewall fw-allow-health-check:

    gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Nota: La regla de entrada permite el tráfico de los sistemas de verificación de estado de Google Cloud (130.211.0.0/22 y 35.191.0.0/16). En este lab, se utiliza la etiqueta de destino allow-health-check para identificar las VMs.
  4. Ahora que las instancias están en funcionamiento, configura una dirección IP externa, estática y global que usarán tus clientes para llegar al balanceador de cargas:

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    Toma nota de la dirección IPv4 que estaba reservada:

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
  5. Crea una verificación de estado para el balanceador de cargas:

    gcloud compute health-checks create http http-basic-check \ --port 80 Nota: Google Cloud proporciona mecanismos de verificación de estado que determinan si las instancias de backend responden de forma adecuada al tráfico. Para obtener más información, consulta el documento Crea verificaciones de estado.
  6. Crea un servicio de backend:

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. Agrega tu grupo de instancias como backend al servicio de backend:

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.startup_script.project_zone}}} \ --global
  8. Crea un mapa de URLs para enrutar las solicitudes entrantes al servicio de backend predeterminado:

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service Nota: Un mapa de URLs es un recurso de configuración de Google Cloud que se usa para enrutar las solicitudes a servicios de backend o buckets de backend. Por ejemplo, con un balanceador de cargas HTTP(S) externo, puedes usar un solo mapa de URLs para enrutar solicitudes a diferentes destinos según las reglas configuradas en aquel mapa:

    • Las solicitudes de https://example.com/video se enrutan a un solo servicio de backend.
    • Las solicitudes de https://example.com/audio se envían a un servicio de backend diferente.
    • Las solicitudes de https://example.com/images se enrutan a un bucket de backend de Cloud Storage.
    • Las solicitudes de cualquier otra combinación de host y ruta de acceso se envían a un servicio de backend predeterminado.
  9. Crea un Proxy HTTP de destino para enrutar las solicitudes a tu mapa de URLs:

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. Crea una regla de reenvío global para enrutar las solicitudes entrantes al proxy:

gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80 Nota: Una regla de reenvío y su dirección IP correspondiente representan la configuración del frontend de un balanceador de cargas de Google Cloud. Consulta la Guía de descripción general sobre las reglas de reenvío para obtener más información acerca de los conceptos básicos.

Haz clic en Revisar mi progreso a continuación para verificar que creaste un balanceador de cargas HTTP(S) L7.

Crear un balanceador de cargas HTTP

Tarea 6: Prueba el tráfico enviado a las instancias

  1. En la consola de Cloud, en Menú de navegación, ve a Servicios de red > Balanceo de cargas.

  2. Haz clic en el balanceador de cargas que acabas de crear (web-map-http).

  3. En la sección Backend, haz clic en el nombre del backend y confirma que las VMs estén En buen estado. Si no están en buen estado, espera unos minutos y vuelve a cargar la página.

  4. Cuando las VMs están en buen estado, prueba el balanceador de cargas en un navegador web. Ve a http://IP_ADDRESS/ (reemplaza IP_ADDRESS por la dirección IP del balanceador de cargas).

Esto puede tardar de tres a cinco minutos. Si no te conectas, espera un minuto y luego vuelve a cargar el navegador.

El navegador debe mostrar una página con contenido que indique el nombre de la instancia que entregó la página, junto con su zona (por ejemplo, Page served from: lb-backend-group-xxxx).

¡Felicitaciones!

Creaste un balanceador de cargas de red y un balanceador de cargas HTTP(S) y practicaste con plantillas de instancias y grupos de instancias administrados.

Finaliza tu Quest

Este lab de autoaprendizaje forma parte de la Quest Google Cloud Essentials. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest y obtén un crédito inmediato de realización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Continúa tu Quest con Hello Node Kubernetes o revisa estos labs sugeridos:

Próximos pasos/Más información

Google Cloud Training & Certification

Aproveche al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarlo a ponerse en marcha rápidamente y a seguir aprendiendo. Para que pueda realizar nuestros cursos cuando más le convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: según demanda, presenciales y virtuales. Las certificaciones lo ayudan a validar y demostrar sus habilidades y experiencia en las tecnologías de Google Cloud.

Última actualización del manual: 12 de agosto de 2022

Prueba más reciente del lab: 12 de agosto de 2022

Copyright 2020 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.