Autoescalar a nivel mundial un servicio web en Compute Engine


En este tutorial se explica cómo configurar un servicio web disponible en todo el mundo con grupos de instancias gestionadas de Compute Engine regionales que se escalan automáticamente según la capacidad necesaria. Puedes usar las técnicas que se muestran en este tutorial para implementar tu propio proyecto distribuido a nivel mundial y escalable en Compute Engine.

Objetivos

  • Despliega varios grupos de instancias gestionadas regionales de Compute Engine con el autoescalado habilitado.
  • Crea un balanceador de carga interregional.
  • Genera tráfico de prueba desde diferentes regiones del mundo.
  • Usa la Google Cloud consola para visualizar cómo enruta las solicitudes el balanceador de carga y cómo se autoescalan los grupos de instancias para satisfacer la demanda.

Costes

En este tutorial se usan componentes facturables de Google Cloud , entre los que se incluyen los siguientes:

  • Compute Engine

Antes de empezar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Arquitectura de aplicaciones

La aplicación incluye los siguientes componentes de Compute Engine:

  1. Plantilla de instancia: plantilla que se usa para crear cada instancia de los grupos de instancias.
  2. Grupos de instancias: varios grupos de instancias que se autoescalan en función del tráfico entrante.
  3. Balanceador de carga: un balanceador de carga 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 arquitectura del sistema que muestra un balanceador de carga con varios grupos de instancias regionales

Configurar el servicio web

Crear los grupos de instancias

Consola

  1. Crea una red para los grupos de instancias.

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

      Ir a redes de VPC

    2. Haz clic en Crear red VPC.

    3. Asigna el valor fortressnet a Nombre.

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

    5. En la parte inferior de la página, haz clic en Crear.

  2. Crea una regla de cortafuegos para la red. Esta regla permitirá todas las solicitudes HTTP enviadas a tus instancias.

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

      Ir a reglas de cortafuegos

    2. Haz clic en Crear regla de cortafuegos.

    3. Asigna el valor fortressnet-allow-http a Nombre.

    4. En Red, selecciona fortressnet.

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

    6. Asigna el valor 0.0.0.0/0 a Intervalos de IPv4 de origen.

    7. En Protocolos y puertos, elija Protocolos y puertos especificados y, a continuación, marque la casilla tcp e introduzca 80.

    8. Haz clic en Crear.

  3. Crea una plantilla de instancia. Incluye una secuencia de comandos de inicio que inicie un servidor web Apache sencillo en cada instancia.

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

      Ir a Plantillas de instancia

    2. Haz clic en Crear plantilla de instancia.

    3. Asigna el valor fort-template a Nombre.

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

    5. En la sección Opciones avanzadas, expande Redes y, a continuación, haz lo siguiente:

      1. En la sección Interfaces de red, despliega la interfaz de red que quieras editar.
      2. En Red, selecciona fortressnet.
    6. En la sección Gestión, en Automatización, introduce lo siguiente: Secuencia de comandos de inicio:

      apt update && apt -y install apache2
      

    7. Haz clic en Crear.

  4. Crea varios grupos de instancias gestionados regionales con la plantilla de instancia. Configura el autoescalado de cada grupo de instancias.

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

      Ir a Grupos de instancias

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

    3. Selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado).

    4. Asigna el valor us-central1-pool a Nombre.

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

    6. En Ubicación, selecciona Varias zonas.

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

    8. En Modo de autoescalado, selecciona Activado: añade y quita instancias del grupo.

    9. Define Número mínimo de instancias como 1.

    10. Define Número máximo de instancias como 5.

    11. En Señales de escalado automático, edita la selección predeterminada (utilización de la CPU) y define el Tipo de señal como Utilización del balanceo de carga HTTP.

    12. Define Uso del balanceo de carga HTTP objetivo en 80.

    13. Haz clic en Listo.

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

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

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

      • Crea un grupo con Nombre como europe-west1-pool y Región como europe-west1.
      • Crea un grupo con Nombre como asia-east1-pool y Región como asia-east1.
  5. (Opcional) Verifica que las instancias estén en buen estado y sirvan tráfico HTTP. Prueba la dirección IP externa de una o varias instancias. Es posible que tengas que esperar un minuto a que las instancias completen 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. Comprueba que cada instancia en ejecución tenga una marca de verificación verde en la columna Estado situada junto al nombre del grupo de instancias.

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

    Debería ver la página web "Apache2 Debian Default Page".

    Si parece que no funciona, espera unos instantes.

gcloud

  1. Crea una red para los grupos de instancias.

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. Crea una regla de cortafuegos para la red. Esta regla permitirá todas las solicitudes HTTP enviadas a tus instancias.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. Crea una plantilla de instancia. Incluye una secuencia de comandos de inicio que inicie un servidor web Apache sencillo en cada instancia.

    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 gestionados regionales con la plantilla de instancia. Configura el autoescalado de 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. (Opcional) Verifica que las instancias estén en buen estado y sirvan tráfico HTTP. Prueba la dirección IP externa de una o varias instancias. Es posible que tengas que esperar un minuto a que las instancias completen el proceso de inicio.

    1. Lista tus instancias.

      gcloud compute instances list
      

    2. En la columna STATUS, comprueba que las instancias sean RUNNING.

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

      curl http://EXTERNAL_IP | head
      

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

    Si parece que no funciona, espera unos instantes.

Configurar el balanceador de carga

El balanceador de carga distribuirá las solicitudes de los clientes entre tus distintos backends.

Consola

Selecciona el tipo de balanceador de carga

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

    Ir a Balanceo de carga

  2. Haga clic en Crear balanceador de carga.
  3. En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
  4. En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
  5. En Implementación global o en una sola región, selecciona La mejor opción para cargas de trabajo globales y haz clic en Siguiente.
  6. En Generación del balanceador de carga, selecciona Balanceador de carga de aplicación externo global y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. Define el nombre del balanceador de carga como fortressnet-balancer.

Configuración de backend

  1. En la página Crear balanceador de carga de aplicación externo global, haz clic en Configuración de backend.
  2. En el menú desplegable Crear o seleccionar servicios de backend y segmentos de backend, selecciona Servicios de backend y, a continuación, Crear un servicio de backend. Debería ver el cuadro de diálogo Crear servicio de backend.
  3. Asigna el valor fortressnet-backend-service al Nombre del servicio de backend.
  4. En el cuadro de diálogo Nuevo backend, asigna el valor Grupo de instancias a asia-east1-pool.
  5. En Modo de equilibrio, selecciona Tasa.
  6. Asigna el valor 100 SPS por instancia al campo Número máximo de SPS.
  7. Haz clic en Listo.
  8. Haz clic en Añadir backend.
  9. En el cuadro de diálogo Nuevo backend, asigna el valor Grupo de instancias a europe-west1-pool.
  10. En Modo de equilibrio, selecciona Tasa.
  11. Asigna el valor 100 SPS por instancia al campo Número máximo de SPS.
  12. Haz clic en Listo.
  13. Haz clic en Añadir backend.
  14. En el cuadro de diálogo Nuevo backend, asigna el valor Grupo de instancias a us-central1-pool.
  15. En Modo de equilibrio, selecciona Tasa.
  16. Asigna el valor 100 SPS por instancia al campo Número máximo de SPS.
  17. Haz clic en Listo.
  18. En Comprobación del estado, selecciona Crear una comprobación del estado.
  19. Asigna el valor http-basic-check a Nombre.
  20. En Protocolo, selecciona HTTP.
  21. Define Puerto como 80.
  22. Haz clic en Guardar y continuar.
  23. Haz clic en Crear.

Reglas de host y ruta

  1. En el panel de la izquierda de la página Create global external Application Load Balancer (Crear balanceador de carga de aplicaciones externo global), haga clic en Host and path rules (Reglas de host y de ruta).
    En este ejemplo, no es necesario configurar ninguna regla de host ni de ruta, ya que todo el tráfico se dirigirá a la regla predeterminada. Por lo tanto, podemos aceptar los valores predeterminados rellenados automáticamente.

Configuración de frontend

  1. En el panel de la izquierda de la página Crear balanceador de carga de aplicación externo global, haz clic en Configuración de frontend.
  2. Asigna el valor fortressnet-http-rule a Nombre.
  3. En Versión de IP, selecciona IPv4.
  4. En Dirección IP, selecciona Crear dirección IP.
  5. En el cuadro de diálogo Reservar una dirección IP estática nueva, asigna el valor Name a fortressnet-ip.
  6. Haz clic en Reservar y espera unos instantes.
  7. Haz clic en Hecho en la parte inferior del cuadro de diálogo Nueva IP de frontend y puerto.
  8. Haz clic en Añadir IP y puerto de frontend.
  9. Asigna el valor fortressnet-http-ipv6-rule a Nombre.
  10. En Versión de IP, selecciona IPv6.
  11. En Dirección IP, selecciona Crear dirección IP.
  12. En el cuadro de diálogo, asigna el valor fortressnet-ipv6 al campo Nombre.
  13. Haz clic en Reservar y espera unos instantes.
  14. Haz clic en Hecho en la parte inferior del cuadro de diálogo Nueva IP de frontend y puerto.

Revisar y finalizar

  1. En el panel de la izquierda de la página Crear balanceador de carga de aplicaciones externo global, haga clic en Revisar y finalizar.
  2. Compara los ajustes con lo que querías crear.
  3. Si la configuración es correcta, haz clic en Crear en la parte inferior del panel de la izquierda. Volverás a la pantalla Balanceo de carga. Una vez creado el balanceador de carga, aparecerá una marca de verificación verde junto a él para indicar que está en funcionamiento.

gcloud

Configuración de backend

  1. Crea una comprobación del estado básica. De esta forma, se comprobará si un backend de balanceador de carga 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 del balanceador de carga.

    gcloud compute backend-services create fortressnet-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    
  3. Añade los grupos de instancias como backends regionales del servicio de backend. Esta configuración distribuirá el tráfico entre los backends en función del 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

  1. Define un mapa de URLs. Los mapas de URLs dirigen diferentes URLs a diferentes servicios backend. Como solo tenemos un servicio backend, lo definiremos como servicio predeterminado para todas las URLs.

    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 dirigen según tu mapa de URLs. En este caso, enviará todas las solicitudes a su servicio backend único.

    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 carga.

    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 carga.

    gcloud compute addresses list
    
  3. Cree reglas de reenvío globales para las direcciones IP externas. De esta forma, se reenviarán las solicitudes HTTP IPv4 e IPv6 a tu 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
    

(Opcional) Verifica que el balanceador de carga funciona. Es posible que tengas que esperar un minuto o tres.

Consola

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

    Ir a Balanceo de carga

  2. Espera a que fortressnet-balancer tenga una marca de verificación verde en la columna Back-ends.

  3. Haz clic en fortressnet-balancer.

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

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

Debería ver la página web "Apache2 Debian Default Page".

Si aparece una página web con el error 404 (No encontrado), espera unos minutos más.

gcloud

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

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

    curl http://LOAD_BALANCER_IP_ADDRESS | head
    

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

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

Práctica recomendada: cree un cortafuegos seguro para permitir solo el tráfico interno del balanceador de carga y la comprobación del estado. A continuación, elimina el cortafuegos original que permitía cualquier solicitud HTTP. De esta forma, se evita que los clientes externos puedan acceder a las instancias individuales.

Consola

  1. Crea un cortafuegos que solo permita el tráfico del balanceador de carga y de la comprobación del estado.

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

      Ir a reglas de cortafuegos

    2. Haz clic en Crear regla de cortafuegos.

    3. Asigna el valor fortressnet-allow-load-balancer a Nombre.

    4. En Red, selecciona fortressnet.

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

    6. En Intervalos de IP de origen, escribe 130.211.0.0/22 y pulsa la tecla Intro. A continuación, escribe 35.191.0.0/16 y vuelve a pulsar Intro.

    7. En Protocolos y puertos, selecciona tcp e introduce 80.

    8. Haz clic en Crear.

  2. Elimina el cortafuegos antiguo que permite todo.

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

gcloud

  1. Crea un cortafuegos que solo permita el tráfico del balanceador de carga y de la comprobación del 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. Elimina el cortafuegos antiguo que permite todo.

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

(Opcional) Verificar que el balanceo de carga y el autoescalado funcionan

Generar tráfico de prueba

Supongamos que es por la mañana en Europa y tu servicio web se vuelve viral de repente en Internet. Generar un gran número de solicitudes de clientes a la vez desde Europa.

Consola

  1. Crea una instancia con la herramienta de pruebas de carga Siege instalada.

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

      Ir a Crear una instancia

    2. Asigna el valor europe-loadtest a Nombre.

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

    4. Para acceder a la configuración avanzada, despliega la sección Opciones avanzadas y haz lo siguiente:

      1. Despliega la sección Gestión.
      2. En el campo Automatización, introduce 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 carga.

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

      Ir a Balanceo de carga

    2. Haz clic en fortressnet-balancer.

    3. En Frontend, copia la dirección IPv4 de la columna IP:Puerto. Las direcciones IPv4 tienen el formato www.xxx.yyy.zzz.

  3. Conéctate a la instancia de pruebas 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. Espere a que la instancia europe-loadtest tenga una marca de verificación verde en la columna Nombre.

    3. En la columna Conectar, haz clic en SSH en europe-loadtest.

  4. Iniciar asedio. Dirige el tráfico a la dirección IPv4 del balanceador de carga.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Crea una instancia con la herramienta de pruebas de carga Siege instalada.

    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 carga.

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

    .
    1. En la nueva sesión de shell, conéctate por SSH a la instancia de pruebas de carga.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. Iniciar asedio. Dirige el tráfico a la dirección IPv4 del balanceador de carga.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Después de ejecutar el comando siege, deberías ver un resultado que declare lo siguiente: 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...

Monitorizar el balanceo de carga y el autoescalado

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

    Ir a Balanceo de carga

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

  3. Haz clic en la pestaña Monitorización.

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

Puede tardar hasta diez minutos en mostrar suficientes datos. Pronto debería ver una pantalla similar a la siguiente:

 Pantalla de monitorización de la consolaGoogle Cloud que muestra las solicitudes de Europa distribuidas equitativamente entre los tres back-ends.

Qué está pasando:

  1. La prueba de carga empieza a enviar una gran cantidad de tráfico de golpe. Al principio, el balanceador de carga distribuye las solicitudes de forma equitativa entre los tres backends. El número de solicitudes supera rápidamente los límites de autoescalado e incluso puede provocar que tus servidores devuelvan Backend 5xx errors, que se mostrará en la pantalla de monitorización. La herramienta de adaptación dinámica empieza a crear instancias adicionales según sea necesario.

  2. El autoescalado se pone al día con las necesidades de capacidad. Para minimizar la latencia de las solicitudes, los balanceadores de carga de Compute Engine intentan dirigir las solicitudes al backend más cercano al cliente. En este caso, como el tráfico de la prueba de carga procede de Europa, el balanceador de carga prefiere dirigir más solicitudes al backend de Europa. Por lo tanto, el ajuste automático de escala puede activar más instancias en el backend de Europa para gestionar una mayor proporción de solicitudes.

Generar tráfico de prueba en otro lugar

Supongamos que tu servicio web también tiene éxito en Asia con el público que usa Internet por la tarde. Generar un gran número de solicitudes desde Asia.

Consola

  1. Para crear otra instancia instalada con la herramienta de prueba de carga Siege, haz lo siguiente:

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

      Ir a instancias de VM

    2. Haz clic en Crear instancia.

    3. Asigna el valor asia-loadtest a Nombre.

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

    5. Expande la sección Opciones avanzadas.

    6. Despliega la sección Gestión.

    7. En la sección Automatización, introduce la siguiente secuencia de comandos de inicio:

      apt -y install siege
      

    8. Haz clic en Crear.

  2. Para obtener la dirección IP del balanceador de carga, siga estos pasos:

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

      Ir a Balanceo de carga

    2. Haz clic en fortressnet-balancer.

    3. En Frontend, copia la dirección IPv4 de la columna IP:Puerto. Las direcciones IPv4 tienen el formato www.xxx.yyy.zzz.

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

    1. Espera a que la instancia asia-loadtest tenga una marca de verificación verde en la columna Nombre.
    2. En la columna Conectar, haz clic en SSH en asia-loadtest.
  4. Iniciar asedio. Dirige el tráfico a la dirección IPv4 del balanceador de carga.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. En la sesión de shell original, crea otra instancia instalada con la herramienta de pruebas 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 carga.

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

    1. En la nueva sesión de shell, conéctate por SSH a la instancia de pruebas de carga.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. Iniciar asedio. Dirige el tráfico a la dirección IPv4 del balanceador de carga.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

De nuevo, 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...

Monitorizar el balanceo de carga y el autoescalado

Vuelve a la pantalla de monitorización del balanceo de carga de la última vez. Puede tardar hasta diez minutos en mostrar suficientes datos nuevos. Pronto debería ver una pantalla similar a la siguiente:

 Pantalla de monitorización de la consolaGoogle Cloud que muestra las solicitudes de Europa y Asia distribuidas entre los tres back-ends

Qué está pasando:

  1. De nuevo, la prueba de carga envía un gran número de solicitudes a la vez. Al principio, el balanceador de carga distribuye las solicitudes por igual entre los tres backends. Cuando el número de solicitudes supera los límites del autoescalado, el escalador automático empieza a crear instancias adicionales según sea necesario.

  2. El autoescalado se pone al día con las nuevas necesidades de capacidad. El balanceador de carga sigue prefiriendo enrutar las solicitudes a los backends disponibles más cercanos. Como resultado, el backend de Asia recibe solicitudes principalmente de Asia, el backend de Europa recibe solicitudes principalmente de Europa y el backend de EE. UU. recibe el resto.

Limpieza

Cuando hayas terminado el tutorial, puedes eliminar los recursos que has creado para que dejen de usar cuota y generar cargos. En las siguientes secciones se explica cómo eliminar o desactivar dichos recursos.

Eliminar el proyecto

La forma más fácil de evitar que te cobren es eliminar el proyecto que has creado para el tutorial.

Para ello, sigue las instrucciones que aparecen a continuación:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminar instancias

Para eliminar una instancia de Compute Engine:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Siguientes pasos