Ajuste de escala automático de grupos de instancias


Los grupos de instancias administrados (MIG) ofrecen capacidades de ajuste de escala automático que te permiten agregar o borrar instancias de máquina virtual (VM) de forma automática de un MIG en función de los aumentos o las disminuciones en la carga. El ajuste de escala automático permite que tus apps manejen de forma más fácil los aumentos de tráfico y reduzcan los costos cuando la necesidad de recursos es menor. Debes definir la política de ajuste de escala automático, y el escalador automático realizará el ajuste de escala automático según la carga medida y las opciones que configures.

El ajuste de escala automático agrega más VMs a tu MIG cuando aumenta la carga (escalamiento horizontal) y las borra cuando se necesitan menos VMs (reducción de escala).

Requisitos previos

El escalador automático usa el agente de servicio de Compute Engine para agregar y quitar instancias en el grupo. Google Cloud crea de forma automática esta cuenta de servicio, así como su vinculación de política de IAM con la función de agente de servicio de Compute Engine, cuando la API de Compute Engine está habilitada.

Si tu proyecto no tiene esta cuenta, por ejemplo, si la quitaste, puedes agregarla de forma manual:

Console

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

    Ir a IAM

  2. Haz clic en Otorgar acceso.

  3. En el campo Principales nuevas, ingresa service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  4. Selecciona el rol de Agente de servicio de Compute Engine.

  5. Haz clic en Guardar.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
   --role roles/compute.serviceAgent

Aspectos básicos

Estos son los conceptos y servicios fundamentales que se incluyen en el ajuste de escala automático.

Grupos de instancias administrados

El ajuste de escala automático es una función de los grupos de instancias administrados (MIG). Un grupo de instancias administrado es un conjunto de instancias de máquina virtual (VM) que se crean a partir de una plantilla de instancias común. Un escalador automático agrega o borra instancias de un grupo de instancias administrado según la política de ajuste de escala automático del grupo. Si bien Compute Engine cuenta con grupos de instancias administrados y no administrados, solo los administrados pueden usarse con el escalador automático.

Para comprender la diferencia entre un grupo de instancias administrado y uno no administrado, consulta Grupos de instancias.

Si deseas obtener información para crear un grupo de instancias administrado, consulta la creación de MIG.

Política de ajuste de escala automático

Cuando defines una política de ajuste de escala automático para tu grupo, debes especificar uno o más indicadores que el escalador automático usa para escalar el grupo. Cuando configuras varios indicadores en una política, el escalador automático calcula la cantidad recomendada de VMs para cada señal y establece el tamaño recomendado de tu grupo para la cantidad mayor.

Una política de ajuste de escala automático siempre debe tener por lo menos un indicador de escalamiento. Cuando activas el ajuste de escala automático en un MIG, de forma predeterminada, el escalador agrega un indicador de uso de CPU. Puedes editar este indicador predeterminado o quitar y agregar otros indicadores en la política.

En las siguientes secciones, se proporciona una descripción general de las señales según las métricas de uso objetivo y los indicadores con base en programas.

Métricas de uso objetivo

Puedes realizar un ajuste de escala automático en función de una o más de las siguientes métricas que reflejan la carga del grupo de instancias:

  • Uso de CPU promedio
  • Capacidad de entrega del balanceo de cargas de HTTP
  • Métricas de Cloud Monitoring

El escalador automático recopila de manera continua información del uso en función de la métrica de uso seleccionada, compara el uso real con el uso objetivo deseado y usa esta información para determinar si el grupo necesita quitar (reducción de escala) o agregar (escalamiento horizontal) instancias.

El nivel de uso objetivo es el nivel en el que deseas mantener las instancias de máquina virtual (VM). Por ejemplo, si escalas según el uso de CPU, puedes configurar tu nivel de uso objetivo en un 75%, y el escalador automático mantendrá el uso de CPU del grupo especificado de instancias en un 75% o aproximado. El nivel de uso de cada métrica se interpreta de manera diferente según la política de ajuste de escala automático.

Para obtener más información sobre el escalamiento según las métricas de uso objetivo, consulta las siguientes páginas:

Programas

Puedes usar el ajuste de escala automático basado en programas para asignar capacidad a las cargas anticipadas. Puedes tener hasta 128 programas de escalamiento por grupo de instancias. Para cada programa de escalamiento, especifica lo siguiente:

  • Capacidad: cantidad mínima de instancias de VM requeridas
  • Programa: hora de inicio, duración y recurrencia (por ejemplo, una vez, diaria, semanal o mensual)

Cada programa de escalamiento está activo desde su hora de inicio por la duración configurada. Durante este tiempo, el escalador automático escala el grupo para tener al menos tantas instancias como se definen en el programa de escalamiento.

Para obtener más información, consulta Escala según los programas.

Período de inicialización

El período de inicialización, antes conocido como período de inactividad, es la duración que tardan las aplicaciones en inicializarse en tus instancias de VM. Mientras una aplicación se inicializa en una instancia, es posible que los datos de uso de la instancia no reflejen las circunstancias normales. Por lo tanto, el escalador automático usa el período de inicialización para tomar decisiones de escalamiento de las siguientes maneras:

  • Para tomar decisiones de reducción de escala, el escalador automático considera los datos de uso de todas las instancias, incluso de una instancia que aún se encuentra en período de inicialización. El escalador automático recomienda quitar instancias si el uso promedio de todas las instancias es menor que el uso objetivo.
  • Para las decisiones de escalamiento horizontal, el escalador automático ignora los datos de uso de las instancias que aún se encuentran en período de inicialización.
  • Si habilitas el modo predictivo, el período de inicialización informa al escalador automático predictivo para escalar horizontalmente antes de la carga prevista, de modo que las aplicaciones se inicialicen cuando llegue la carga. Por ejemplo, si configuras el período de inicialización en 300 segundos, el escalador automático predictivo crea VM 5 minutos antes de la carga prevista.

De forma predeterminada, el período de inicialización es de 60 segundos. El tiempo de inicialización real varía debido a una gran cantidad de factores. Recomendamos que pruebes el tiempo que demora tu aplicación en inicializarse. Para ello, crea una instancia y una hora de proceso de inicio desde que esta se vuelve RUNNING hasta que la aplicación esté lista.

Si estableces un valor de período de inicialización mucho mayor que el tiempo que demora una instancia en inicializarse, es posible que el escalador automático ignore datos de uso legítimos y podría subestimar el tamaño requerido de tu grupo, lo que generaría un retraso del escalamiento horizontal.

Período de estabilización

Los indicadores de ajuste de escala automático, como el uso de CPU, no son muy estables y pueden cambiar rápidamente. A medida que la carga aumenta y disminuye, el escalador automático debe estabilizar el indicador para evitar la creación y eliminación continuas de VMs. El escalador automático estabiliza una señal mediante la capacidad de mantener suficiente capacidad de VM para entregar la carga máxima observada durante el período de estabilización.

El período de estabilización es igual a 10 minutos o al período de inicialización que establezcas, el que sea más largo. El período de estabilización se usa solo para las decisiones de reducción de escalamiento cuando el escalador automático tiene que borrar las VMs.

Cuando la carga disminuye, el escalador automático no borra las VMs de inmediato. El escalador automático mantiene la capacidad de supervisión necesaria durante el período de estabilización y borra las VMs solo cuando haya suficiente capacidad para cumplir con la carga máxima. Esto puede aparecer como una demora en la disminución del escalamiento, pero es una característica integrada del ajuste de escala automático.

Si tu aplicación tarda más de 10 minutos en inicializarse en una VM nueva, el escalador automático usa el período de inicialización en lugar de los 10 minutos predeterminados de estabilización para esperar hasta que se pueda borrar la VM. Esto garantiza que la decisión del escalador automático de borrar la VM tenga en cuenta cuánto tiempo se necesita para recuperar la capacidad de entrega.

Cuando la carga aumenta, el escalador automático no usa el período de estabilización y, de inmediato, crea tantas VMs como sea necesario para satisfacer la demanda.

Modo de ajuste de escala automático

Si necesitas investigar o configurar tu grupo sin interferencia de las operaciones del escalador automático, puedes desactivar o restringir las actividades de ajuste de escala automático de manera temporal. La configuración del escalador automático persiste mientras está apagado o restringido, y todas las actividades de ajuste de escala automático se reanudan cuando lo vuelves a activar o levantas la restricción.

Ajuste de escala automático predictivo

Si habilitas el ajuste de escala automático predictivo para optimizar la disponibilidad del MIG, el escalador automático predice la carga futura según datos históricos y escala un MIG antes de la carga prevista, de modo que las instancias nuevas estén listas para entregar cuando llegue la carga.

El ajuste de escala automático predictivo funciona mejor si tu carga de trabajo cumple con los siguientes criterios:

  • Tu aplicación tarda mucho tiempo en inicializarse, por ejemplo, si configuras un período de inicialización de más de 2 minutos.
  • Tu carga de trabajo varía de manera predecible con ciclos diarios o semanales.

Para obtener más información, consulta cómo escalar en función de las predicciones.

Controles de reducción de escala

Si tus cargas de trabajo tardan muchos minutos en inicializarse (por ejemplo, debido a tareas de instalación prolongadas), puedes reducir el riesgo de latencia en la respuesta causada por eventos de reducción de escala abruptos mediante la configuración de controles de reducción de escala. Específicamente, si es previsible que haya incrementos en la carga poco después de las disminuciones, puedes limitar la tasa de reducción de escala para impedir que el ajuste de escala automático reduzca el tamaño del MIG en más instancias de VM de lo que puede tolerar tu carga de trabajo.

No es necesario que configures los controles de reducción de escala si tu aplicación se inicializa lo suficientemente rápido como para manejar los incrementos en la carga cuando se realiza el escalamiento horizontal.

Para configurar los controles de reducción de escala, configura las siguientes propiedades en tu política de ajuste de escala automático.

  • Reducción máxima permitida. La cantidad de instancias de VM que tu carga de trabajo puede perder (en relación con su tamaño máximo) dentro del margen de tiempo anterior especificado. Usa este parámetro para limitar la reducción de escala de tu grupo, de modo que no pierdas capacidad de respuesta ante un incremento de carga probable hasta que entren en funcionamiento más instancias. Cuanto más pequeña sea la reducción máxima permitida que configures, más tardará la reducción de escala de tu grupo.

  • Margen de tiempo anterior. El período pasado durante el cual el escalador automático supervisa el tamaño máximo que necesitó tu carga de trabajo. Cuando el escalador automático cambie el tamaño del grupo, la cantidad de instancias se mantendrá siempre por encima del tamaño máximo observado en este período menos la reducción máxima permitida. Puedes usar este parámetro para definir cuánto tiempo debe esperar el escalador automático antes de quitar instancias conforme a los requisitos de la reducción máxima permitida. Con un margen de tiempo final más prolongado, el escalador automático considera máximas más históricas, lo que hace que la reducción del escalamiento sea más conservadora y estable.

Para obtener más información consulta Configuración de controles de reducción de escala y la sección Información sobre las decisiones de los escaladores automáticos.

El tamaño de grupo recomendado es la cantidad recomendada de VM del escalador automático que el grupo de instancias administrado debe mantener, según la carga máxima observada durante los últimos 10 minutos. Estos últimos 10 minutos se denominan período de estabilización. El tamaño recomendado se vuelve a calcular de forma constante. Si configuras una política de ajuste de escala automático con controles de reducción de escala, estará restringido por tus controles de reducción de escala.

Limitaciones

Qué sucede durante la reparación automática

El ajuste de escala automático funciona sin depender de la reparación automática. Si configuras la reparación automática para tu grupo y una instancia no pasa la verificación de estado, el reparador automático intenta recrear la instancia. Mientras el MIG vuelve a crear una instancia, la cantidad de instancias en ejecución en el grupo puede ser menor que el número mínimo de instancias especificado para el grupo (autoscalingPolicy.minNumReplicas).

Precios

No se aplican cargos adicionales por configurar una política de ajuste de escala automático. El escalador automático agrega o borra instancias de VM de forma dinámica, por lo que solo se te cobrará por los recursos que usa el MIG. Para controlar el costo de los recursos, configura la cantidad mínima y máxima de instancias en la política de ajuste de escala automático. Para obtener información sobre los precios de Compute Engine, consulta Precios.

¿Qué sigue?

  1. Obtén información sobre cómo funciona el ajuste de escala automático en un MIG regional.
  2. Si no tienes un MIG existente, puedes crear un grupo de instancias administrado.
  3. Crea un escalador automático que se ajuste según los siguientes factores:

  4. Administra tu escalador automático, por ejemplo, para obtener información sobre él, configurar controles de reducción de escala o restringirlo temporalmente.