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 VM a tu MIG cuando aumenta la carga (escalamiento horizontal, a veces denominado escalamiento vertical) y las borra cuando se necesitan menos VM (reducción de escala).

Especificaciones

  • El ajuste de escala automático solo funciona con grupos de instancias administrados zonales y regionales. Los grupos de instancias no administrados no son compatibles.
  • Si deseas realizar un ajuste de escala automático en un MIG regional, se aplican las siguientes limitaciones:

  • No puedes crear instancias con nombres específicos mientras está activado el ajuste de escala automático. Sin embargo, puedes activar el escalador automático después de crear instancias de VM con nombres específicos.

  • No puedes usar el ajuste de escala automático si tu MIG tiene una configuración con estado.

  • No uses el ajuste de escala automático de Compute Engine con MIG que sean propiedad de Google Kubernetes Engine. Para los grupos de Google Kubernetes Engine, usa el ajuste de escala automático de clúster en su lugar.

    Si no estás seguro de si tu grupo es parte de un clúster de GKE, busca el prefijo gke en el nombre del MIG. Por ejemplo, gke-test-1-3-default-pool-eadji9ah.

  • Un escalador automático puede tomar decisiones de escalamiento en función de varias métricas, pero solo puede manejar una señal por tipo de métrica, excepto en el caso de las métricas de Cloud Monitoring. Un escalador automático puede manejar hasta cinco señales basadas en las métricas de Monitoring. El escalador automático calcula la cantidad recomendada de máquinas virtuales para cada señal y, luego, escala según la señal que proporciona la mayor cantidad de máquinas virtuales en el grupo.

  • 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. Volver a crear una instancia puede hacer que la cantidad de instancias del grupo caiga por debajo del umbral del ajuste de escala automático (minNumReplicas) que especificas.

  • Si realizas un ajuste de escala automático en un MIG regional, puedes agregar una instancia y, luego, borrarla inmediatamente de una de las zonas. Esto sucede cuando el uso en la zona activa un escalamiento horizontal, pero el uso general en el MIG regional no requiere la instancia adicional, o bien la instancia adicional se requiere en otra zona.

Requisitos previos

El escalador automático usa la cuenta de servicio del sistema 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 Cloud Console, ve a la página IAM.

    Ir a IAM

  2. Haga clic en Add.

  3. Ingresa service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  4. Selecciona la función 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

Información básica

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 VM para cada señal y establece el tamaño recomendado de tu grupo para la cantidad mayor.

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 de balanceo de cargas de HTTP, que puede basarse en el uso o las solicitudes por segundo
  • 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 enfriamiento

El período de inactividad también se conoce como el período de inicialización de la aplicación. Mientras una aplicación se inicializa en una instancia, es posible que los datos de uso no reflejen las circunstancias normales. Por lo tanto, el escalador automático usa el período de inactividad para tomar decisiones de escalamiento de las siguientes maneras:

  • Para las decisiones de escalamiento horizontal, el escalador automático considera los datos de uso de todas las instancias, incluso una instancia que aún se encuentra en su período de inactividad. El escalador automático recomienda quitar instancias si el uso promedio de todas las instancias es menor que el objetivo de uso.
  • Para las decisiones de escalamiento horizontal, el escalador automático ignora los datos de uso de las instancias que aún se encuentran en su período de inactividad.
  • Si habilitas el modo predictivo, el período de inactividad 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 inactividad en 300 segundos, el escalador automático predictivo crea VM 5 minutos antes de la carga prevista.

Especifica un período de inactividad para indicar cuánto tiempo lleva la inicialización de aplicaciones en tu instancia. Según la configuración predeterminada, el período de inactividad 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 inactividad 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

Para la reducción, el escalador automático calcula el tamaño objetivo recomendado del grupo en función de la carga máxima durante los últimos 10 minutos. Estos últimos 10 minutos se denominan período de estabilización.

El escalador automático usa el período de estabilización a fin de garantizar que el tamaño recomendado de tu grupo de instancias administrado sea suficiente para manejar la carga máxima observada durante los 10 minutos anteriores.

Este período de estabilización de 10 minutos puede aparecer como un retraso en la reducción de escala, pero en realidad es una función integrada del ajuste de escala automático. La demora garantiza que el tamaño más pequeño del grupo es suficiente para soportar la carga máxima de los últimos 10 minutos.

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 inactividad 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 Usa el ajuste de escala automático predictivo.

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.

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. Si no tienes un MIG existente, puedes crear un grupo de instancias administrado.
  2. Crea un escalador automático que se ajuste según los siguientes factores:

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