Puntos de control
Create multiple web server instances
/ 30
Configure the load balancing service
/ 20
Create an HTTP load balancer
/ 50
Configura balanceadores de cargas de red y HTTP
- GSP007
- Descripción general
- Qué aprenderás
- Configuración y requisitos
- Tarea 1: Configura la región y la zona predeterminadas para todos los recursos
- Tarea 2: Crea varias instancias de servidor web
- Tarea 3: Configura el servicio de balanceo de cargas
- Tarea 4: Envía tráfico a tus instancias
- Tarea 5: Crea un balanceador de cargas HTTP
- Tarea 6: Prueba el tráfico enviado a las instancias
- ¡Felicitaciones!
GSP007
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 por tu cuenta, 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
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)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
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 Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
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: Ordene 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. -
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.
-
Haz clic en Siguiente.
-
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.
-
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 podría generar cargos adicionales. -
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.
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.
- Haz clic en 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:
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.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1: Configura la región y la zona predeterminadas para todos los recursos
-
Configura la región predeterminada:
gcloud config set compute/region {{{project_0.default_region | Region}}} -
En Cloud Shell, configura la zona predeterminada:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}} 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
-
Crea una máquina virtual www1 en tu zona predeterminada con el siguiente código:
gcloud compute instances create www1 \ --zone={{{project_0.default_zone | 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' -
Crea una máquina virtual www2 en tu zona predeterminada con el siguiente código:
gcloud compute instances create www2 \ --zone={{{project_0.default_zone | 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' -
Crea una máquina virtual www3 en tu zona predeterminada.
gcloud compute instances create www3 \ --zone={{{project_0.default_zone | 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' -
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.
-
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 -
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.
Crear varias instancias de servidor web
Tarea 3: Configura el servicio de balanceo de cargas
Cuando configuras el servicio de balanceo de cargas, tus instancias de máquina virtual reciben 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.
-
Crea una dirección IP externa estática para tu balanceador de cargas:
gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | 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]. -
Agrega un recurso de verificación de estado HTTP heredado:
gcloud compute http-health-checks create basic-check -
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.default_region | Region}}} --http-health-check basic-check -
Agrega las instancias al grupo:
gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3 -
Agrega una regla de reenvío:
gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | 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.
-
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.default_region | Region}}} -
Accede a la dirección IP externa:
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress) -
Muestra la dirección IP externa:
echo $IPADDRESS -
Utiliza el comando
curl
para acceder a la dirección IP externa (reemplazaIP_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. -
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. Puedes 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 sí 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.
-
Primero crea la plantilla del balanceador de cargas:
gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | 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.
-
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.default_zone | Zone}}} -
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
y35.191.0.0/16
). En este lab, se utiliza la etiqueta de destinoallow-health-check
para identificar las VMs. -
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 -
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. -
Crea un servicio de backend:
gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global -
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.default_zone | Zone}}} \ --global -
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.
-
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 -
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
Haz clic en Revisar mi progreso a continuación para verificar que creaste un balanceador de cargas HTTP(S) L7.
Tarea 6: Prueba el tráfico enviado a las instancias
-
En la consola de Google Cloud, desde el Menú de navegación, ve a Servicios de red > Balanceo de cargas.
-
Haz clic en el balanceador de cargas que acabas de crear (
web-map-http
). -
En la sección Backend, haz clic en el nombre del backend y confirma que las VMs estén En buen estado. De lo contrario, espera unos minutos y vuelve a cargar la página.
-
Cuando las VMs están en buen estado, prueba el balanceador de cargas en un navegador web. Ve a
http://IP_ADDRESS/
(reemplazaIP_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 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
- Cómo configurar un balanceador de cargas de red con un servicio de backend
- Configura un balanceador de cargas de HTTPS externo simple
- Descripción general del balanceo de cargas HTTP(S) externo
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.
Actualización más reciente del manual: 19 de septiembre de 2023
Prueba más reciente del lab: 19 de septiembre 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.