Usa el ajuste de escala automático para aplicaciones con alta escalabilidad

En este instructivo, se explica cómo usar el ajuste de escala automático para ajustar de forma automática el número de instancias de VM que alojan tu aplicación, lo que permite que esta se adapte a cantidades variables de tráfico.

Para usar el ajuste de escala automático, aloja tu aplicación en un grupo de instancias administrado. Un grupo de instancias administrado es una colección de instancias que ejecutan la misma aplicación y se pueden administrar como una sola entidad. Cuando un grupo de instancias administrado tiene habilitado el ajuste de escala automático, el número de VM en el grupo de instancias aumenta (escala verticalmente) o disminuye (reduce la escala) de forma automática según el valor objetivo que especifiques para tu política de ajuste de escala automático.

En este instructivo, se incluyen pasos detallados para iniciar una aplicación web en un grupo de instancias administrado, establecer el ajuste de escala automático, configurar el acceso a la red y observar el ajuste de escala automático mediante la simulación de aumentos y disminuciones en la carga. Según la experiencia que tengas con estas características, tardarás unos 20 minutos en completar este instructivo.

Objetivos

  • Inicia una aplicación web de demostración en un grupo de instancias administrado.
  • Observa los efectos del ajuste de escala automático mediante la simulación de aumentos y disminuciones en el tráfico.

Costos

En este instructivo, se usan los componentes facturables de GCP siguientes:

  • Compute Engine

Usa la calculadora de precios para estimar los costos según el uso previsto. Los usuarios nuevos de GCP podrían optar por una prueba gratuita.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Selecciona o crea un proyecto de GCP.

    Ir a la página Administrar recursos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

Arquitectura de aplicaciones

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

Inicia la aplicación web

En este instructivo, se usa una aplicación web almacenada en GitHub. Si deseas obtener más información acerca de cómo se implementó la aplicación, consulta el repositorio de Google Cloud Platform en GitHub.

Inicia la aplicación web en cada VM de un grupo de instancias administrado mediante la inclusión de una secuencia de comandos de inicio en una plantilla de instancias. Para permitir el tráfico HTTP a la aplicación web, crea una regla de firewall.

Crea una regla de firewall

Crea una regla de firewall para permitir el tráfico HTTP a la aplicación web:

  1. Ve a la página de Firewalls en GCP Console.
    Ir a la página Firewalls
  2. Haz clic en Crear regla de firewall.
  3. En Nombre, ingresa default-allow-http.
  4. Configura Red como default.
  5. Configura Objetivos para seleccionar Specified target tags.
  6. En Etiquetas de destino, ingresa http-server.
  7. Establece el Filtro fuente como IP ranges.
  8. En Rangos de IP de origen, ingresa 0.0.0.0/0 para permitir el acceso a todas las direcciones IP.
  9. En Puertos y protocolos, selecciona Protocolos y puertos especificados.
    Selecciona tcp y, luego, ingresa 80 para permitir el acceso al tráfico HTTP.
  10. Haz clic en Crear.

Crea una plantilla de instancias

Crea una plantilla de instancias que inicie la aplicación web de demostración durante el inicio:

  1. Ve a la página Plantillas de instancias en GCP Console.
    Ir a la página Plantillas de instancias
  2. Haz clic en Crear plantilla de instancias.
  3. En Nombre, ingresa autoscaling-web-app-template.
  4. En Configuración de máquina, establece el Tipo de máquina en n1-standard-1.
  5. En Disco de arranque, configura la Imagen como Debian GNU/Linux 9 (stretch).
  6. En Firewall, selecciona la casilla de verificación Permitir tráfico HTTP. Con esto, se aplica la etiqueta de red http-server a cada instancia creada a partir de esta plantilla.
  7. Haz clic en Administración, seguridad, discos, redes, instancia única para mostrar la configuración avanzada. Deberías ver varias pestañas.
  8. En la pestaña Administración, busca Automatización y, luego, ingresa la siguiente Secuencia de comandos de inicio:

    sudo apt-get update && sudo apt-get install git gunicorn3 python3-pip -y
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/compute/managed-instances/demo
    sudo pip3 install -r requirements.txt
    sudo gunicorn3 --bind 0.0.0.0:80 app:app --daemon
    

    Esta secuencia de comandos hace que cada instancia ejecute la aplicación web durante el inicio.

  9. Haz clic en Crear.

Crea un grupo de instancias administrado

Crea un grupo de instancias regional para comenzar a ejecutar la aplicación web:

  1. Ve a la página Grupos de instancias en GCP Console.
    Ir a la página Grupos de instancias
  2. Haz clic en Crear grupo de instancias para crear un grupo de instancias nuevo.
  3. En Nombre, ingresa autoscaling-web-app-group.
  4. En Ubicación, selecciona Varias zonas.

  5. En Región, selecciona us-central1.

  6. Haz clic en el menú desplegable Configurar zonas para mostrar las Zonas. Selecciona las siguientes zonas:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  7. En Plantilla de instancias, selecciona autoscaling-web-app-template.

  8. Configura el ajuste de escala automático para el grupo de instancias:

    1. En Ajuste de escala automático, selecciona Activado.
    2. Establece la Política de ajuste de escala automático en Uso de CPU. Para obtener más información sobre otras políticas de ajuste de escala automático, consulta el uso de políticas de ajuste de escala automático y objetivos.

    3. Establece el Uso de CPU objetivo en 60%.

    4. Establece la Cantidad mínima de instancias en 3.

    5. Establece la Cantidad máxima de instancias en 6.

    6. Establece el Período de inactividad en 120 segundos.

  9. En Verificación de estado, selecciona Sin verificación de estado.

  10. Haz clic en Crear. Esto te redirecciona a la página de Grupos de instancias.

  11. Para verificar que tus instancias estén en ejecución, haz lo siguiente:

    1. En la página Grupos de instancias en GCP Console, haz clic en autoscaling-web-app-group para ver las instancias de ese grupo.
    2. En IP externa haz clic en una dirección IP para conectar esa instancia. Se abrirá una nueva pestaña del navegador que muestra la aplicación web de demostración.

      Captura de pantalla de la aplicación web de demostración, que muestra información sobre la instancia y tiene botones de acción.

      Cuando termines, cierra la pestaña del navegador correspondiente a la aplicación web de demostración.

Observa el ajuste de escala automático

Para obtener más información sobre el comportamiento del ajuste de escala automático, consulta cómo comprender las decisiones sobre el ajuste de escala automático.

Supervisa el ajuste de escala automático

El grupo de instancias que creaste usa una política de ajuste de escala automático basada en el uso de CPU. Esto significa que el ajuste de escala automático aumenta o disminuye la escala del grupo según sea necesario para mantener el uso de CPU objetivo de 60%.

Para supervisar el tamaño y el uso de CPU promedio de tu grupo de instancias, usa los grafos de escala automática en GCP Console:

  1. En la página Grupos de instancias del grupo de instancias autoscaling-web-app-group, haz clic en la pestaña Supervisión.
  2. Para supervisar el uso de CPU y el ajuste de escala automático, selecciona Tamaño con ajuste de escala automático en el menú desplegable de la izquierda y selecciona cpu en el menú desplegable de la derecha.

    Esto muestra dos grafos:

    • En el grafo superior, se muestra el Tamaño, que es el número de instancias en el grupo.
    • En el grafo inferior se muestra el Uso, que es el uso promedio de CPU del grupo de instancias, y la Capacidad, que es el uso de CPU objetivo acumulativo del grupo de instancias.

    El ajuste de escala automático intenta hacer que laCapacidad coincida con el Uso mediante cambios en el Tamaño, cuando sea posible.

Mantén abierta esta ventana.

Simula el escalamiento vertical (escalamiento horizontal)

El escalamiento vertical se produce cuando el uso de CPU promedio del grupo de instancias es bastante mayor que el valor objetivo. Durante el escalamiento vertical, el ajuste de escala automático aumenta de forma gradual el tamaño del grupo de instancias hasta que el uso de CPU alcance el valor de uso de CPU objetivo o hasta que el tamaño del grupo de instancias sea igual a la Cantidad máxima de instancias, que se estableció en 6.

Para activar el escalamiento vertical, aumenta el uso de CPU de tus instancias:

  1. Abre una terminal mediante Cloud Shell desde GCP Console.

    Abre Cloud Shell

    Cloud Shell se abre en la parte inferior de GCP Console. La sesión puede tardar unos segundos en inicializarse.

  2. Crea una variable Bash local para el ID del proyecto:

    export PROJECT_ID=[PROJECT_ID]
    

    donde PROJECT_ID es el ID del proyecto actual, que se muestra en cada nueva línea en Cloud Shell:

    user@cloudshell:~ ([PROJECT_ID])$
    
  3. Ejecuta la siguiente secuencia de comandos Bash. Esta secuencia de comandos hace que las instancias de la aplicación web de demostración tengan una carga mayor, lo que aumenta el uso de CPU. Después de unos minutos, el uso de CPU superará el valor objetivo, lo que provocará que el ajuste de escala automático aumente el tamaño del grupo de instancias.

    export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group")
    for i in $MACHINES;
    do
      NAME=$(echo "$i" | cut -f1 -d,)
      IP=$(echo "$i" | cut -f2 -d,)
      echo "Simulating high load for instance $NAME"
      curl -q -s "http://$IP/startLoad" >/dev/null --retry 2
    done
    
  4. Abre la pestaña Supervisión en GCP Console.

    Después de unos minutos, la pestaña Supervisión mostrará que aumentó el Uso de CPU, lo que activar el ajuste de escala automático para aumentar la Capacidad mediante el aumento del Tamaño del grupo de instancias:

    El monitor muestra que el uso de CPU aumentó. Poco después, el tamaño del grupo aumenta de 3 instancias a 6.

    También puedes notar que ahora hay 6 instancias en la pestaña Miembros.

Mantén abiertas ambas ventanas.

Simula la disminución de la escala (escala hacia adentro)

La disminución de la escala se produce cuando el uso de CPU promedio del grupo de instancias es bastante menor que el valor objetivo. Durante la disminución de la escala, el ajuste de escala automático disminuye el tamaño del grupo de instancias hasta que el uso de CPU alcanza el uso de CPU objetivo o hasta que el tamaño del grupo de instancias iguala la Cantidad mínima de instancias, que se estableció en 3.

A fin de activar la disminución de la escala, disminuye el uso de CPU para tus instancias:

  1. Ejecuta la siguiente secuencia de comandos Bash. Esta secuencia de comandos hace que las instancias de la aplicación web de demostración tengan una carga menor, lo que disminuye el uso de CPU. Después de unos minutos, el uso de CPU caerá por debajo del valor objetivo, lo que provocará que el ajuste de escala automático disminuya el tamaño del grupo de instancias.

    export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group")
    for i in $MACHINES;
    do
      NAME=$(echo "$i" | cut -f1 -d,)
      IP=$(echo "$i" | cut -f2 -d,)
      echo "Simulating low load for instance $NAME"
      curl -q -s "http://$IP/stopLoad" >/dev/null --retry 2
    done
    
  2. Abre la pestaña Supervisión en GCP Console.

    Después de unos minutos, la pestaña Supervisión mostrará que el Uso de CPU disminuyó. Después de un período de estabilización de diez minutos, durante el cual se verifica que la carga sea siempre menor, el ajuste de escala automático disminuye la Capacidad mediante una disminución del Tamaño del grupo de instancias:

    El monitor muestra que el uso de CPU disminuyó. Alrededor de 10 minutos después, el tamaño del grupo disminuye de 6 instancias a 3.

    Es posible que notes que solo se muestran 3 instancias en la pestaña Miembros.

Cierra ambas ventanas cuando termines.

Realiza una limpieza

Después de terminar el instructivo de ajuste de escala automático, puedes limpiar los recursos que creaste en GCP para que no ocupen cuota y no se te cobre por ellos en el futuro. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Si creaste un proyecto aparte para este instructivo, borra todo el proyecto. De lo contrario, si el proyecto tiene recursos que deseas conservar, borra solo los recursos creados en este instructivo.

Borra el proyecto

  1. En la GCP Console, dirígete a la página Proyectos.

    Ir a la página Proyectos

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

Borra recursos específicos

Borra el grupo de instancias

  1. En la GCP Console, dirígete a la página de Grupos de instancias.

    Ir a la página de Grupos de instancias

  2. Haz clic en la casilla de verificación junto atuautoscaling-web-app-groupgrupo de instancias.
  3. Haz clic en el botón Borrar en la parte superior de la página para borrar el grupo de instancias.

Borra la plantilla de instancias

  1. Ve a la página Plantillas de instancias en GCP Console.

    Ir a la página Plantillas de instancias

  2. Haz clic en la casilla de verificación junto a autoscaling-web-app-template.

  3. Haz clic en Borrar en la parte superior de la página. En la nueva ventana, haz clic en Borrar para confirmar la eliminación.

Borra la regla de firewall

  1. Ve a la página Reglas de Firewall en GCP Console.

    Ir a la página Reglas de firewall

  2. Haz clic en la casilla de verificación junto a la regla de firewall denominada default-allow-http.

  3. Haz clic en Borrar en la parte superior de la página. En la nueva ventana, haz clic en Borrar para confirmar la eliminación.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine