Ajuste de escala automático global de un servicio web en Compute Engine


En este instructivo se muestra cómo configurar un servicio web disponible a nivel global a través de grupos de instancias administrados regionales de Compute Engine, con un ajuste de escala automático para satisfacer las necesidades de capacidad. Puedes usar las técnicas que se muestran en este instructivo para implementar un proyecto escalable y distribuido a nivel global en Compute Engine.

Objetivos

  • Implementa varios grupos de instancias de Compute Engine, administrados y regionales, con el ajuste de escala automático habilitado.
  • Crea un balanceador de cargas automático entre regiones.
  • Genera tráfico de prueba desde diferentes regiones del mundo.
  • Usa la consola de Google Cloud para visualizar la forma en que el balanceador de cargas distribuye las solicitudes y los grupos de instancias realizan el ajuste de escala automático para satisfacer la demanda.

Costos

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

  • Compute Engine

Antes de comenzar

  1. En la página del selector de proyectos de la consola de Google Cloud, 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 Google Cloud.

  3. Habilita la API de Compute Engine.

    Habilita la API

Arquitectura de aplicaciones

En la aplicación se incluyen los siguientes componentes de Compute Engine:

  1. Plantilla de instancias: Una plantilla que se usa para crear cada instancia en los grupos de instancias.
  2. Grupos de instancias: Varios grupos de instancias con un ajuste de escala automático que funciona según el tráfico entrante.
  3. Balanceador de cargas: Un balanceador de cargas HTTP que distribuye el tráfico entre los grupos de instancias.
  4. Instancias: Varias instancias de prueba para generar tráfico de prueba desde diferentes partes del mundo.

Diagrama de la arquitectura del sistema que muestra un balanceador de cargas con varios grupos de instancias regionales

Configura el servicio web

Crea los grupos de instancias

Console

  1. Crea una red para los grupos de instancias.

    1. En la consola de Google Cloud, ve a la página Redes de VPC.

      Ir a las redes de VPC

    2. Haga clic en Crear red de VPC.

    3. Configura el campo Nombre como fortressnet.

    4. Establece Modo de creación de subred en Automático.

    5. Haz clic en Crear en la parte inferior de la página.

  2. Crea una regla de firewall para la red. Esta regla permitirá todas las solicitudes HTTP que se envíen a las instancias.

    1. En la consola de Google Cloud, ve a la página Reglas de firewall.

      Ir a Reglas de firewall

    2. Haga clic en Crear regla de firewall.

    3. Configura el campo Nombre como fortressnet-allow-http.

    4. En Red, selecciona fortressnet.

    5. En Destinos, selecciona All instances in the network.

    6. Configura Rangos IPv4 de origen como 0.0.0.0/0.

    7. En Protocolos y puertos, elige Protocolos y puertos especificados y, luego, selecciona la casilla de verificación tcp y, luego, ingresa 80.

    8. Haz clic en Crear.

  3. Crea una plantilla de instancias. Incluye una secuencia de comandos de inicio para que, en cada instancia, se inicie un Apache Web Server simple.

    1. En la consola de Google Cloud, ve a la página Plantillas de instancia.

      Ir a Plantillas de instancia

    2. Haga clic en Crear plantilla de instancias.

    3. Configura el campo Nombre como fort-template.

    4. En Configuración de la máquina, selecciona e2-micro (2 CPUs virtuales, 1 GB de memoria).

    5. En la sección Opciones avanzadas, expande Herramientas de redes y, luego, haz lo siguiente:

      1. En la sección Interfaces de red, expande una interfaz de red para editarla.
      2. En Red, selecciona fortressnet.
    6. En la sección Administración, en Automatización, ingresa la siguiente Secuencia de comandos de inicio:

      apt update && apt -y install apache2
      

    7. Haz clic en Crear.

  4. Crea varios grupos de instancias administrados y regionales con la plantilla de instancias. Configura el ajuste de escala automático para cada grupo de instancias.

    1. En la consola de Google Cloud, ve a la página Grupos de instancias.

      Ir a Grupos de instancias

    2. Haz clic en Crear grupo de instancias para crear un grupo de instancias administrado nuevo.

    3. Selecciona Nuevo grupo de instancias administrado (sin estado).

    4. Configura el campo Nombre como us-central1-pool.

    5. En Plantilla de instancias, selecciona fort-template.

    6. En Ubicación, selecciona Varias zonas.

    7. En Región, selecciona us-central1. En Zonas, deja los valores predefinidos que seleccionaste.

    8. En Modo de ajuste de escala automático, selecciona Activar: agregar y quitar instancias al grupo.

    9. Establece la Cantidad mínima de instancias en 1.

    10. Establece el campo Número máximo de instancias como 5.

    11. En Indicadores de ajuste de escala automático, edita la selección predeterminada (uso de CPU) y establece el Tipo de indicador en Uso de balanceo de cargas HTTP.

    12. Establece el Uso del balanceo de cargas objetivo en 80.

    13. Haz clic en Listo.

    14. Haz clic en Crear. En un cuadro de diálogo, se muestra el mensaje que también debes asignar el grupo de instancias a un servicio de backend de un balanceador de cargas de HTTP.

    15. En el cuadro de diálogo Confirmación, haz clic en Confirmar. Puedes configurar el balanceador de cargas después de crear todos los grupos de instancias.

    16. Repite estos pasos para crear otros dos grupos de instancias con los siguientes cambios:

      • Crea un grupo con Nombre configurado como europe-west1-pool y Región como europe-west1.
      • Crea un grupo con Nombre configurado como asia-east1-pool y Región como asia-east1.
  5. Verifica que las instancias estén en buen estado y entreguen tráfico HTTP (opcional). Prueba la dirección IP externa de una o más instancias. Es posible que debas esperar un minuto hasta que las instancias finalicen el proceso de inicio.

    1. En la consola de Google Cloud, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. Verifica que cada instancia en ejecución tenga una marca de verificación verde en la columna Estado junto al nombre de tu grupo de instancias.

    3. Copia la IP externa de una instancia y pégala en un navegador web.

    Deberías ver la página web “Apache2 Debian Default Page”.

    Si no funciona, espera un momento.

gcloud

  1. Crea una red para los grupos de instancias.

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. Crea una regla de firewall para la red. Esta regla permitirá todas las solicitudes HTTP que se envíen a las instancias.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. Crea una plantilla de instancias. Incluye una secuencia de comandos de inicio para que, en cada instancia, se inicie un Apache Web Server simple.

    gcloud compute instance-templates create fort-template \
        --machine-type e2-micro \
        --network fortressnet \
        --metadata startup-script='apt update && apt -y install apache2'
    
  4. Crea varios grupos de instancias administrados y regionales con la plantilla de instancias. Configura el ajuste de escala automático para cada grupo de instancias.

    gcloud compute instance-groups managed create us-central1-pool \
        --region us-central1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling us-central1-pool \
        --region us-central1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create europe-west1-pool \
        --region europe-west1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling europe-west1-pool \
        --region europe-west1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create asia-east1-pool \
        --region asia-east1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling asia-east1-pool \
        --region asia-east1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
  5. Verifica que las instancias estén en buen estado y entreguen tráfico HTTP (opcional). Prueba la dirección IP externa de una o más instancias. Es posible que debas esperar un minuto hasta que las instancias finalicen el proceso de inicio.

    1. Genera una lista de tus instancias.

      gcloud compute instances list
      

    2. Verifica debajo de la columna STATUS que las instancias seanRUNNING.

    3. Para comprobar una instancia, consulta su dirección IP en la columna EXTERNAL_IP.

      curl http://EXTERNAL_IP | head
      

    Deberías ver texto HTML, incluida la línea <title>Apache2 Debian Default Page: It works</title>.

    Si no funciona, espera un momento.

Configura el balanceador de cargas

El balanceador de cargas distribuirá las solicitudes de los clientes entre los diferentes backends.

Console

Inicia la configuración

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en Siguiente.
  4. En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
  5. En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo globales y haz clic en Siguiente.
  6. En Generación de balanceadores de cargas, selecciona Balanceador de cargas de aplicaciones externo global y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. Configura el Nombre del balanceador de cargas como fortressnet-balancer.

Configuración de backend

  1. En la página Crear balanceador de cargas de aplicaciones externo global, haz clic en Configuración de backend.
  2. En el menú desplegable Crear o seleccionar servicios y buckets de backend, selecciona Servicios de backend y, luego, Crear un servicio de backend. Deberías ver el cuadro de diálogo Crear servicio de backend.
  3. Configura el Nombre del servicio de backend como fortressnet-backend-service.
  4. En el cuadro de diálogo Nuevo backend, configura el campo Grupo de instancias como asia-east1-pool.
  5. En el Modo de balanceo, selecciona Velocidad.
  6. Configura el RPS máximo como 100 RPS por instancia.
  7. Haz clic en Listo.
  8. Haz clic en Agregar backend.
  9. En el cuadro de diálogo Nuevo backend, configura el campo Grupo de instancias como europe-west1-pool.
  10. En el Modo de balanceo, selecciona Velocidad.
  11. Configura el RPS máximo como 100 RPS por instancia.
  12. Haz clic en Listo.
  13. Haz clic en Agregar backend.
  14. En el cuadro de diálogo Nuevo backend, configura el campo Grupo de instancias como us-central1-pool.
  15. En el Modo de balanceo, selecciona Velocidad.
  16. Configura el RPS máximo como 100 RPS por instancia.
  17. Haz clic en Listo.
  18. En Verificación de estado, selecciona Crear una verificación de estado.
  19. Configura el campo Nombre como http-basic-check.
  20. En Protocolo, selecciona HTTP.
  21. Configura el Puerto como 80.
  22. Haz clic en Guardar y continuar.
  23. Haga clic en Crear.

Reglas del host y de la ruta de acceso

  1. En el panel izquierdo de la página Crear balanceador de cargas de aplicaciones externo global, haz clic en Reglas de host y ruta.
    Para este ejemplo, no se necesita configurar ningún host o ruta de acceso, ya que todo el tráfico se dirigirá a la regla predeterminada. Por ello, puedes aceptar los valores predeterminados propagados previamente.

Configuración de frontend

  1. En el panel izquierdo de la página Crear balanceador de cargas de aplicaciones externo global, haz clic en Configuración de frontend.
  2. Establece el Nombre como fortressnet-http-rule.
  3. En Versión de la IP, selecciona IPv4.
  4. En Dirección IP, selecciona Crear dirección IP.
  5. En el cuadro de diálogo Reservar una nueva dirección IP estática, configura el campo Nombre como fortressnet-ip.
  6. Haz clic en Reservar y espera unos minutos.
  7. Haz clic en Listo en la parte inferior del cuadro de diálogo IP y puerto de frontend nuevos.
  8. Haz clic en Agregar IP y puerto de frontend.
  9. Establece el campo Nombre como fortressnet-http-ipv6-rule.
  10. En Versión de la IP, selecciona IPv6.
  11. En Dirección IP, selecciona Crear dirección IP.
  12. En el cuadro de diálogo, establece el Nombre en fortressnet-ipv6.
  13. Haz clic en Reservar y espera unos minutos.
  14. Haz clic en Listo en la parte inferior del cuadro de diálogo IP y puerto de frontend nuevos.

Revisa y finaliza

  1. En el panel izquierdo de la página Crear balanceador de cargas de aplicaciones externo global, haz clic en Revisar y finalizar.
  2. Compara tu configuración con lo que querías crear.
  3. Si la configuración es correcta, haz clic en Crear en la parte inferior del panel izquierdo. Volverás a la pantalla del balanceo de cargas. Después de crear el balanceador de cargas, verás a su lado una marca de verificación verde que indica que está en ejecución.

gcloud

Configuración de backend

  1. Crea una verificación de estado básica. Se verificará si un backend del balanceador de cargas responde a las solicitudes HTTP.

    gcloud compute health-checks create http http-basic-check
    
  2. Crea un servicio de backend global. Este servicio de backend recibirá tráfico HTTP desde el balanceador de cargas.

    gcloud compute backend-services create fortressnet-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    
  3. Agrega los grupos de instancias como backend regionales del servicio de backend. Esta configuración distribuirá el tráfico entre los backend según un número máximo de solicitudes por segundo (RPS) por instancia.

    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group us-central1-pool \
        --instance-group-region us-central1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group europe-west1-pool \
        --instance-group-region europe-west1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group asia-east1-pool \
        --instance-group-region asia-east1 \
        --global
    

Reglas de host y ruta de acceso

  1. Define un mapa de URL. Los mapas de URL dirigen diferentes URL a distintos servicios de backend. Ya que solo tenemos un servicio de backend, simplemente configuraremos ese servicio de backend como el servicio predeterminado para todas las URL.

    gcloud compute url-maps create fortressnet-balancer \
        --default-service fortressnet-backend-service
    
  2. Crea una ruta de Proxy HTTP. Las rutas de Proxy HTTP aceptan solicitudes HTTP y las enrutan de acuerdo con el mapa de URL. En este caso, enviará todas las solicitudes al único servicio de backend.

    gcloud compute target-http-proxies create fortressnet-http-proxy \
        --url-map fortressnet-balancer
    

Configuración de frontend

  1. Crea dos direcciones IP externas estáticas globales: una para IPv4 y otra para IPv6. Estas serán las direcciones IP externas globales del balanceador de cargas.

    gcloud compute addresses create fortressnet-ip \
        --ip-version IPV4 \
        --network-tier=PREMIUM \
        --global
    gcloud compute addresses create fortressnet-ipv6 \
        --ip-version IPV6 \
        --network-tier=PREMIUM \
        --global
    
  2. Busca las direcciones IP externas del balanceador de cargas.

    gcloud compute addresses list
    
  3. Crea reglas de reenvío globales para las direcciones IP externas. Esto reenviará la solicitud HTTP IPv4 y la IPv6 al proxy HTTP.

    gcloud compute forwarding-rules create fortressnet-http-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IP_ADDRESS
    
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IPV6_ADDRESS
    

Verifica que el balanceador de cargas funcione (opcional). Es posible que debas esperar entre uno y tres minutos.

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Espera a que fortressnet-balancer tenga una marca de verificación verde debajo de la columna Backend.

  3. Haz clic en fortressnet-balancer:

  4. En Frontend, copia la dirección IPv4 en la columna IP:Puerto. (Las direcciones IPV4 tienen formato www.xxx.yyy.zzz). No necesitas el número de puerto final :nn). Si la sección Frontend no figura, espera unos minutos y, luego, vuelve a cargar la página web.

  5. Ingresa la dirección IP en un navegador web.

Deberías ver la página web “Apache2 Debian Default Page”.

Si aparece la página web “Error 404 (no encontrado)”, espera unos minutos más.

gcloud

  1. Busca las direcciones IP externas del balanceador de cargas.

    gcloud compute addresses list
    
  2. Consulta la dirección IPv4. (Las direcciones IPV4 tienen formato www.xxx.yyy.zzz).

    curl http://LOAD_BALANCER_IP_ADDRESS | head
    

Deberías ver texto HTML, incluida la línea <title>Apache2 Debian Default Page: It works</title>.

Si, en cambio, ves <title>Error 404 (Not Found)!!1</title>, espera unos minutos más.

Práctica recomendada: Crea un firewall seguro para permitir solo el tráfico interno del balanceador de cargas y de la verificación de estado. Luego, borra el firewall original que permitió todas las solicitudes HTTP. Esto evitará que clientes externos puedan acceder a las instancias individuales.

Console

  1. Crea un firewall nuevo que permita solo el tráfico del balanceador de cargas y de la verificación de estado.

    1. En la consola de Google Cloud, ve a la página Reglas de firewall.

      Ir a Reglas de firewall

    2. Haga clic en Crear regla de firewall.

    3. Configura el campo Nombre como fortressnet-allow-load-balancer.

    4. En Red, selecciona fortressnet.

    5. En Destinos, selecciona All instances in the network.

    6. En Rangos de IP de origen escribe 130.211.0.0/22 y presiona la tecla Intro; luego, escribe 35.191.0.0/16 y presiona Intro una vez más.

    7. En Protocolos y puertos, selecciona TCP y, luego, ingresa 80.

    8. Haz clic en Crear.

  2. Borra el firewall anterior que permitía todo el tráfico.

    1. Selecciona la marca de verificación junto a fortressnet-allow-http.
    2. Haz clic en Borrar en la parte superior de la página.
    3. En el cuadro de diálogo, haz clic en Borrar.

gcloud

  1. Crea un firewall nuevo que permita solo el tráfico del balanceador de cargas y de la verificación de estado.

    gcloud compute firewall-rules create fortressnet-allow-load-balancer \
        --network fortressnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp:80
    
  2. Borra el firewall anterior que permitía todo el tráfico.

    gcloud compute firewall-rules delete fortressnet-allow-http -q
    

Verifica que el ajuste de escala automático y el balanceo de cargas funcionen (opcional)

Genera algo de tráfico de prueba

Supongamos que es de mañana en Europa y que tu servicio web de repente se vuelve viral en Internet. Genera una gran cantidad de solicitudes de clientes de Europa a la vez.

Console

  1. Crea una instancia que tenga instalada la herramienta de prueba de carga Siege.

    1. En la consola de Google Cloud, ve a la página Crear una instancia.

      Ir a Crear una instancia

    2. Ingresa europe-loadtest en Nombre.

    3. En Región, selecciona europe-west1.

    4. Para obtener una configuración avanzada, expande la sección Herramientas de redes, discos, seguridad, administración, usuario único y sigue estos pasos:

      1. Expande la sección Administración.
      2. En el campo Automatización, ingresa la siguiente secuencia de comandos de inicio:
        apt -y install siege
        
    5. Para crear la VM, haz clic en Crear.

  2. Obtén la dirección IPv4 del balanceador de cargas.

    1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

      Ir a Balanceo de cargas

    2. Haga clic en fortressnet-balancer.

    3. En Frontend, copia la dirección IPv4 en la columna IP:Puerto. (Las direcciones IPV4 tienen formato www.xxx.yyy.zzz).

  3. Conéctate a la instancia de prueba de carga mediante SSH.

    1. En la consola de Google Cloud, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. Espera a que la instancia europe-loadtest tenga una marca de verificación verde debajo de la columna Nombre.

    3. Haz clic en SSH en europe-loadtest, debajo de la columna Conectar.

  4. Inicia Siege. Establece como destino la dirección IPv4 del balanceador de cargas.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Crea una instancia que tenga instalada la herramienta de prueba de carga Siege.

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Obtén la dirección IPv4 del balanceador de cargas.

    gcloud compute addresses list
    
  3. Abre una sesión de Shell nueva en la que esté disponible el comando gcloud.

    1. En la sesión de Shell nueva, conéctate a la instancia de prueba de carga a través de SSH.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. Inicia Siege. Apunta a la dirección IPv4 del balanceador de cargas.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Después de ejecutar el comando siege, deberías ver un resultado que declare The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Supervisa el balanceo de cargas y el ajuste de escala automático

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el balanceador de cargas llamado fortressnet-balancer.

  3. Haz clic en la pestaña Monitoring.

  4. En el menú desplegable Backend, selecciona fortressnet-backend-service.

Puede demorar hasta diez minutos en mostrar datos suficientes. Debería aparecer una pantalla similar a la siguiente:

Pantalla de supervisión de la consola de Google Cloud que muestra solicitudes de Europa distribuidas de forma equitativa entre los tres backends

¿Qué sucede aquí?

  1. La prueba de carga comienza a enviar una gran cantidad de tráfico a la vez. Al principio, el balanceador de cargas distribuye las solicitudes de manera equitativa entre los tres backend. El número de solicitudes excede rápidamente los límites del ajuste de escala automático, y puede ocasionar, incluso, que los servidores muestren Backend 5xx errors, que aparecerá en la pantalla de supervisión. El ajuste de escala automático comienza a activar instancias adicionales según sea necesario.

  2. El ajuste de escala automático alcanza la capacidad necesaria. Para minimizar la latencia de las solicitudes, los balanceadores de cargas de Compute Engine intentan enrutar las solicitudes al backend más cercano al cliente. En este caso, dado que el tráfico de prueba de carga se origina en Europa, el balanceador de cargas prefiere enrutar más solicitudes al backend de Europa. Como resultado, el ajuste de escala automático puede generar más instancias en el backend de Europa para manejar una fracción de solicitudes mayor.

Genera tráfico de prueba en otro lugar

Supongamos que tu servicio web también se pone de moda en Asia, entre los usuarios de Internet de la tarde. Genera una gran cantidad de solicitudes de Asia.

Console

  1. Crea otra instancia que tenga instalada la herramienta de prueba de cargas Siege.

    1. En la consola de Google Cloud, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. Haga clic en Crear instancia.

    3. Configura el campo Nombre como asia-loadtest.

    4. En Región, selecciona asia-east1.

    5. Haz clic en Herramientas de redes, discos, seguridad, administración, usuario único para ver la configuración avanzada.

    6. Haz clic en la pestaña Administración.

    7. En Automatización, ingresa la siguiente Secuencia de comandos de inicio:

      apt -y install siege
      

    8. Haz clic en Crear en la parte inferior de la página.

  2. Obtén la dirección IP del balanceador de cargas.

    1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

      Ir a Balanceo de cargas

    2. Haga clic en fortressnet-balancer.

    3. En Frontend, copia la dirección IPv4 en la columna IP:Puerto. (Las direcciones IPV4 tienen formato www.xxx.yyy.zzz).

  3. Conéctate a la instancia de prueba de carga mediante SSH.

    1. Espera a que la instancia asia-loadtest tenga una marca de verificación verde debajo de la columna Nombre.
    2. Haz clic en SSH en asia-loadtest, debajo de la columna Conectar.
  4. Inicia Siege. Establece como destino la dirección IPv4 del balanceador de cargas.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. En la sesión de Shell original, crea otra instancia que tenga instalada la herramienta de prueba de carga Siege.

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Obtén la dirección IPv4 del balanceador de cargas.

    gcloud compute addresses list
    
  3. Abre una sesión de Shell nueva en la que esté disponible el comando gcloud.

    1. En la sesión de Shell nueva, establece una conexión SSH con la instancia de prueba de carga.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. Inicia Siege. Establece como destino la dirección IPv4 del balanceador de cargas.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Una vez más, deberías ver un mensaje de salida que indica The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Supervisa el balanceo de cargas y el ajuste de escala automático

Vuelve a la pantalla de supervisión del balanceo de cargas de la última vez. Puede tomar hasta diez minutos mostrar suficientes datos nuevos. Debería aparecer una pantalla similar a la siguiente:

Pantalla de supervisión de la consola de Google Cloud que muestra las solicitudes de Europa y Asia distribuidas entre los tres backends

¿Qué sucede aquí?

  1. Una vez más, la prueba de carga envía otra gran cantidad de solicitudes a la vez. Al principio, el balanceador de cargas distribuye las solicitudes de manera uniforme entre los tres backend existentes. A medida que el número de solicitudes excede los límites del ajuste de escala automático, este comienza a activar instancias adicionales según sea necesario.

  2. El ajuste de escala automático alcanza la nueva capacidad necesaria. El balanceador de cargas aún prefiere enrutar las solicitudes a los backends disponibles más cercanos. Como resultado, el backend de Asia recibe solicitudes que provengan mayormente de Asia, el backend de Europa recibe las solicitudes provenientes de Europa y el backend de EE.UU. recibe las solicitudes restantes.

Limpia

Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra instancias

Para borrar una instancia de Compute Engine, utiliza lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona tu instancia en la casilla de verificación de es la instancia que deseas borrar.
  3. Para borrar la instancia, haz clic en Más acciones, haz clic en Borrar y, luego, sigue las instrucciones.

¿Qué sigue?