Puntos de control
Configure HTTP and health check firewall rules
/ 25
Configure instance templates and instance group
/ 25
Configure the HTTP Load Balancer
/ 25
Blacklist the siege-vm
/ 25
Balanceador de cargas HTTP con Cloud Armor
- GSP215
- Descripción general
- Configuración y requisitos
- Tarea 1: Configura reglas de firewall de HTTP y de verificación de estado
- Tarea 2. Configura las plantillas de instancias y crea los grupos de instancias
- Tarea 3: Configura el balanceador de cargas HTTP
- Tarea 4: Prueba el balanceador de cargas HTTP
- Tarea 5: Agrega siege-vm a la lista de bloqueo
- ¡Felicitaciones!
GSP215
Descripción general
El balanceo de cargas HTTP(S) de Google Cloud se implementa en el perímetro de la red de Google, en los puntos de presencia (POP) de Google de todo el mundo. El tráfico de usuario dirigido a un balanceador de cargas HTTP(S) ingresa al POP que se encuentra más cerca del usuario. Luego, su carga se balancea a través de la red global de Google al backend más cercano que cuente con capacidad disponible suficiente.
Con las listas de direcciones IP permitidas y las de direcciones IP bloqueadas de Cloud Armor, puedes restringir o permitir el acceso a tu balanceador de cargas HTTP(S) en el perímetro de Google Cloud, lo más cerca que se pueda del usuario y del tráfico malicioso. Esto evita que los usuarios o el tráfico malintencionados consuman recursos o ingresen a tus redes de nube privada virtual (VPC).
En este lab, configurarás un balanceador de cargas HTTP con backends globales, como se muestra en el siguiente diagrama. Luego, lo someterás a una prueba de esfuerzo y, a continuación, incluirás la IP de la prueba en una lista de bloqueo con Cloud Armor.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Crear reglas de firewall de HTTP y de verificación de estado
- Configurar dos plantillas de instancias
- Crear dos grupos de instancias administrados
- Configurar un balanceador de cargas HTTP con IPv4 e IPv6
- Someter el balanceador de cargas HTTP a una prueba de esfuerzo
- Agregar una dirección IP a la lista de bloqueo para restringir el acceso a un balanceador 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.
Tarea 1: Configura reglas de firewall de HTTP y de verificación de estado
Configura reglas de firewall para permitir el tráfico HTTP a los backends y el tráfico de TCP desde el verificador de estado de Google Cloud.
Crea la regla de firewall de HTTP
Crea una regla de firewall para permitir el tráfico HTTP a los backends.
-
En la consola de Cloud, navega al menú de navegación () > Red de VPC > Firewall.
-
Observa las reglas de firewall existentes de ICMP, internas, RDP y SSH.
Cada proyecto de Google Cloud comienza con la red predeterminada y estas reglas de firewall.
-
Haz clic en Crear regla de firewall.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre default-allow-http Red predeterminado Destinos Etiquetas de destino especificadas Etiquetas de destino http-server Filtro de origen Rangos de IPv4 Rangos de IPv4 de origen 0.0.0.0/0 Protocolos y puertos Protocolos y puertos especificados; marca TCP y escribe 80
Asegúrate de incluir el valor /0 en Rangos de IPv4 de origen para especificar todas las redes.
- Haz clic en Crear.
Crea las reglas de firewall de verificación de estado
Las verificaciones de estado determinan qué instancias de un balanceador de cargas pueden recibir conexiones nuevas. En el balanceo de cargas HTTP, los sondeos de verificación de estado de tus instancias de balanceo de cargas provienen de las direcciones dentro de los rangos 130.211.0.0/22
y 35.191.0.0/16
. Tus reglas de firewall deben permitir esas conexiones.
-
En la página Políticas de firewall, haz clic en Crear regla de firewall.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre default-allow-health-check Red predeterminado Destinos Etiquetas de destino especificadas Etiquetas de destino http-server Filtro de origen Rangos de IPv4 Rangos de IPv4 de origen 130.211.0.0/22
,35.191.0.0/16
Protocolos y puertos Protocolos y puertos especificados; marca TCP Nota: Asegúrate de ingresar los dos rangos IPv4 de origen, uno a la vez, y de agregar un ESPACIO entre ellos. -
Haz clic en Crear.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2. Configura las plantillas de instancias y crea los grupos de instancias
Un grupo de instancias administrado usa una plantilla de instancias para crear un grupo de instancias idénticas. Úsalas para crear los backends del balanceador de cargas HTTP.
Configura las plantillas de instancias
Una plantilla de instancias es un recurso de API que puedes usar para crear instancias de VM y grupos de instancias administrados. Las plantillas de instancias definen el tipo de máquina, la imagen de disco de arranque, la subred, las etiquetas y otras propiedades de las instancias.
Crea una plantilla de instancias para
-
En la consola de Cloud, ve al menú de navegación () > Compute Engine > Plantillas de instancia y, luego, haz clic en Crear plantilla de instancias.
-
En Nombre, escribe
-template. -
En Ubicación, selecciona Global.
-
En Serie, selecciona E2.
-
En Tipo de máquina, selecciona e2-micro.
-
Haz clic en Opciones avanzadas.
-
Haz clic en Herramientas de redes. Establece el siguiente valor y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Etiquetas de red http-server -
Haz clic en predeterminada en Interfaces de red. Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Red predeterminado Subred predeterminado Haz clic en Listo.
La etiqueta de red http-server garantiza que las reglas de firewall de HTTP y de verificación de estado se apliquen a estas instancias.
-
Haz clic en la pestaña Administración.
-
En Metadatos, haz clic en AGREGAR ELEMENTO y especifica lo siguiente:
Clave Valor startup-script-url gs://cloud-training/gcpnet/httplb/startup.sh
La clave startup-script-url
especifica una secuencia de comandos que se ejecuta cuando se inician las instancias. Esta secuencia de comandos instala Apache y cambia la página de bienvenida para incluir la IP de cliente y el nombre, la región y la zona de la instancia de VM. Puedes explorar esta secuencia de comandos.
- Haz clic en Crear.
- Espera a que se cree la plantilla de instancias.
Ahora copia
- Haz clic en
-template y, luego, en la opción +CREAR UNA SIMILAR de la parte superior. - En Nombre, escribe
-template. - Asegúrate de que en Ubicación esté seleccionada la opción Global.
- Haz clic en Opciones avanzadas.
- Haz clic en Herramientas de redes.
- Asegúrate de agregar http-server como una etiqueta de red.
- En Interfaces de red, selecciona predeterminada (
) para Subred. - Haz clic en Listo.
- Haz clic en Crear.
Crea los grupos de instancias administrados
Crea un grupo de instancias administrado en
-
En Compute Engine, haz clic en Grupos de instancias, en el menú de la izquierda.
-
Haz clic en Crear grupo de instancias.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre -mig (si es necesario, quita los espacios adicionales del nombre) Plantilla de instancia -template Ubicación Varias zonas Región Número mínimo de instancias 1 Número máximo de instancias 2 Indicadores de ajuste de escala automático > haz clic en el menú desplegable > Tipo de indicador Uso de CPU Uso de CPU objetivo 80, haz clic en Listo. Período de inicialización 45
Los grupos de instancias administrados ofrecen funciones de ajuste de escala automático que te permiten agregar o quitar esas instancias automáticamente, según los aumentos o las disminuciones de la carga. El ajuste de escala automático ayuda a tus aplicaciones a administrar correctamente los aumentos en el tráfico y a reducir los costos cuando la necesidad de recursos es menor. Solo debes definir la política de ajuste de escala automático, y el escalador automático realiza el ajuste según la carga medida.
- Haz clic en Crear.
Ahora repite el mismo procedimiento para crear un segundo grupo de instancias para
-
Haz clic en Crear grupo de instancias.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre -mig Plantilla de instancia -template Ubicación Varias zonas Región Número mínimo de instancias 1 Número máximo de instancias 2 Indicadores de ajuste de escala automático > haz clic en el menú desplegable > Tipo de indicador Uso de CPU Uso de CPU objetivo 80, haz clic en Listo. Período de inicialización 45 -
Haz clic en Crear.
Haz clic en Revisar mi progreso para verificar el objetivo.
Verifica los backends
Verifica que las instancias de VM se creen en ambas regiones y accede a sus sitios HTTP.
-
En Compute Engine, haz clic en Instancias de VM, en el menú de la izquierda.
-
Toma nota de las instancias que comienzan con
-mig y -mig. Estas forman parte de los grupos de instancias administrados.
-
Haz clic en la IP externa de una instancia de
-mig. Deberías ver la IP de cliente (tu dirección IP), el Nombre de host (comienza con
-mig) y la Ubicación del servidor (una zona en ). -
Haz clic en la IP externa de una instancia de
-mig. Deberías ver la IP de cliente (tu dirección IP), el Nombre de host (comienza con
-mig) y la Ubicación del servidor (una zona en ).
Tarea 3: Configura el balanceador de cargas HTTP
Configura el balanceador de cargas HTTP para balancear el tráfico entre los dos backends (
Inicia la configuración
-
En la consola de Cloud, haz clic en el menú de navegación () > Servicios de red > Balanceo de cargas.
-
Haz clic en Crear balanceador de cargas.
-
En Balanceador de cargas de aplicaciones HTTP(S), haz clic en Siguiente.
-
En Orientado al público o para uso interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
-
En Implementación global o de una sola región, selecciona Ideal para cargas de trabajo globales y haz clic en Siguiente.
-
En Crear balanceador de cargas, haz clic en Configurar.
-
Configura el nombre del nuevo balanceador de cargas HTTP(S) como
http-lb
.
Configura el frontend
Las reglas de host y ruta de acceso determinan cómo se dirigirá tu tráfico. Por ejemplo, puedes dirigir el tráfico de video a un backend y el tráfico estático a otro. Sin embargo, no configuraremos dichas reglas en este lab.
-
Haz clic en Configuración de frontend.
-
Especifica los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Protocolo HTTP Versión de IP IPv4 Dirección IP Efímera Puerto 80 -
Haz clic en Listo.
-
Haz clic en Agregar IP y puerto de frontend.
-
Especifica los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Protocolo HTTP Versión de IP IPv6 Dirección IP Asignación automática Puerto 80 -
Haz clic en Listo.
El balanceo de cargas HTTP(S) admite tanto direcciones IPv4 como IPv6 para el tráfico de clientes. Las solicitudes de clientes IPv6 terminan en la capa del balanceo de cargas global y, luego, son dirigidas mediante proxy de IPv4 a tus backends.
Configura el backend
Los servicios de backend dirigen el tráfico entrante a uno o más backends adjuntos. Cada backend está compuesto por un grupo de instancias y metadatos con capacidad de entrega adicional.
-
Haz clic en Configuración de backend.
-
En Servicios y buckets de backend, haz clic en Crear un servicio de backend.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (selecciona la opción como se especifica) Nombre http-backend Grupo de instancias -mig Números de puerto 80 Modo de balanceo Tasa Máximo de RPS 50 Capacidad 100
Esta configuración significa que el balanceador de cargas intentará mantener cada instancia de
-
Haz clic en Listo.
-
Haz clic en Agregar un backend.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (selecciona la opción como se especifica) Grupo de instancias -mig Números de puerto 80 Modo de balanceo Utilización Utilización máxima del backend 80 Capacidad 100
Esta configuración significa que el balanceador de cargas intentará mantener cada instancia de
-
Haz clic en Listo.
-
En Verificación de estado, selecciona Crear una verificación de estado.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (selecciona la opción como se especifica) Nombre http-health-check Protocolo TCP Puerto 80
Las verificaciones de estado determinan qué instancias reciben conexiones nuevas. Esta verificación de estado HTTP sondea las instancias cada 5 segundos, espera hasta 5 segundos para recibir una respuesta y considera que 2 intentos exitosos o 2 intentos con errores indican que están en buen estado o en mal estado, respectivamente.
- Haz clic en Guardar.
- Marca la casilla Habilitar registro.
- Configura la Tasa de muestreo como
1
. - Haz clic en Crear para crear el servicio de backend.
- Haz clic en Aceptar.
Revisa y crea el balanceador de cargas HTTP
- Haz clic en Revisar y finalizar.
- Revisa los servicios de Backend y Frontend.
- Haz clic en Crear.
- Espera a que se cree el balanceador de cargas.
- Haz clic en el nombre del balanceador de cargas (http-lb).
- Toma nota de las direcciones IPv4 e IPv6 del balanceador de cargas para la siguiente tarea. Se llamarán
[LB_IP_v4]
y[LB_IP_v6]
, respectivamente.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4: Prueba el balanceador de cargas HTTP
Ahora que creaste el balanceador de cargas HTTP para tus backends, verifica que el tráfico se desvíe al servicio de backend.
Accede al balanceador de cargas HTTP
Para probar el acceso de IPv4 al balanceador de cargas HTTP, abre una nueva pestaña en tu navegador y navega a http://[LB_IP_v4]
. Asegúrate de reemplazar [LB_IP_v4]
por la dirección IPv4 del balanceador de cargas.
Si tienes una dirección IPv6 local, prueba la dirección IPv6 del balanceador de cargas HTTP. Para ello, navega a http://[LB_IP_v6]
. Asegúrate de reemplazar [LB_IP_v6]
por la dirección IPv6 del balanceador de cargas.
Somete el balanceador de cargas HTTP a una prueba de esfuerzo
Crea una VM nueva para simular una carga en el balanceador de cargas HTTP con siege
. Luego, determina si el tráfico se balancea entre ambos backends cuando la carga es alta.
-
En la consola, ve al menú de navegación () > Compute Engine > Instancias de VM.
-
Haz clic en Crear instancia.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre siege-vm Región Zona Serie E2
Dado que
- Haz clic en Crear.
- Espera a que se cree la instancia siege-vm.
- En siege-vm, haz clic en SSH para iniciar una terminal y conectarse.
- Ejecuta el siguiente comando para instalar siege:
- Para almacenar la dirección IPv4 del balanceador de cargas HTTP en una variable de entorno, ejecuta el siguiente comando y reemplaza
[LB_IP_v4]
por la dirección IPv4:
- Para simular una carga, ejecuta el siguiente comando:
- En la consola de Cloud, en el menú de navegación (), haz clic en Servicios de red > Balanceo de cargas.
- Haz clic en Backends.
- Haz clic en http-backend.
- Navega a http-lb.
- Haz clic en la pestaña Monitoring.
- Supervisa el valor de Ubicación de frontend (tráfico total entrante) entre Norteamérica y los dos backends durante 2 o 3 minutos.
Primero, el tráfico se dirige solo a
Esto demuestra que el tráfico se desvía al backend más cercano de forma predeterminada. Sin embargo, si la carga es muy alta, el tráfico puede distribuirse en los backends.
- Regresa a la terminal SSH de siege-vm.
- Presiona CTRL+C para detener siege si se sigue ejecutando.
El resultado debería verse así:
Tarea 5: Agrega siege-vm a la lista de bloqueo
Usa Cloud Armor para incluir siege-vm en la lista de bloqueo y evitar que acceda al balanceador de cargas HTTP.
Crea la política de seguridad
Crea una política de seguridad de Cloud Armor con una regla de lista de bloqueo para siege-vm.
- En la consola, ve al menú de navegación () > Compute Engine > Instancias de VM.
- Toma nota de la IP externa de siege-vm. Se llamará
[SIEGE_IP]
.
-
En la consola de Cloud, navega al menú de navegación > Seguridad de red > Políticas de Cloud Armor.
-
Haz clic en Crear política.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Nombre denylist-siege Acción de la regla predeterminada Permitir -
Haz clic en Próximo paso.
-
Haz clic en Agregar una regla.
-
Establece los siguientes valores y deja el resto con la configuración predeterminada:
Propiedad Valor (escribe el valor o selecciona la opción como se especifica) Condición > Coincidencia Ingresa la SIEGE_IP. Acción Rechazar Código de respuesta 403 (Prohibido) Prioridad 1,000 -
Haz clic en Listo.
-
Haz clic en Próximo paso.
-
Haz clic en Agregar destino.
-
En Tipo, selecciona Servicio de backend (balanceador de cargas de aplicaciones externo).
-
En Destino, selecciona http-backend.
-
Haz clic en Crear política.
- Espera a que se cree la política antes de continuar con el siguiente paso.
Haz clic en Revisar mi progreso para verificar el objetivo.
Verifica la política de seguridad
Verifica que siege-vm no pueda acceder al balanceador de cargas HTTP.
- Regresa a la terminal SSH de siege-vm.
- Para acceder al balanceador de cargas, ejecuta el siguiente comando:
El resultado debería verse así:
- Abre una pestaña nueva en tu navegador y ve a
http://[LB_IP_v4]
. Asegúrate de reemplazar[LB_IP_v4]
por la dirección IPv4 del balanceador de cargas.
- En la terminal SSH de siege-vm, ejecuta el siguiente comando para simular una carga:
Este comando no generará ningún resultado.
Explora los registros de la política de seguridad para determinar si también se bloquea este tráfico.
- En la consola, ve al menú de navegación > Seguridad de red > Políticas de Cloud Armor.
- Haz clic en denylist-siege.
- Haz clic en Registros.
- Haz clic en Ver registros de políticas.
- En la página de Logging, asegúrate de borrar todo el texto en la Vista previa de la consulta. Selecciona el recurso para el Balanceador de cargas de aplicaciones > http-lb-forwarding-rule > http-lb, luego, haz clic en Aplicar.
- Haz clic en Ejecutar consulta.
- Expande una entrada de registro en Resultados de la consulta.
- Expande httpRequest.
La solicitud debería ser de la dirección IP de siege-vm. Si no es así, expande otra entrada de registro.
- Expande jsonPayload.
- Expande enforcedSecurityPolicy.
- Ten en cuenta que configuredAction se configuró como
DENY
para el nombredenylist-siege
.
Las políticas de seguridad de Cloud Armor crean registros que puedes explorar para determinar cuándo se rechaza o permite el tráfico, además de conocer su origen.
¡Felicitaciones!
Configuraste un balanceador de cargas HTTP con backends en
Próximos pasos y más información
-
Para obtener más información sobre los conceptos básicos de Cloud Armor, consulta la documentación de Cloud Armor.
-
Para obtener más información, consulta la documentación sobre balanceo de cargas.
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: 18 de abril de 2024
Prueba más reciente del lab: 18 de abril de 2024
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.