Crea un MIG con ajuste de escala automático habilitado


En este documento, se describe cómo crear un grupo de instancias administrado (MIG) con ajuste de escala automático que agrega y quita VM de forma automática en función del uso de CPU promedio en el grupo. Por ejemplo, si el uso de CPU del grupo es bajo, el grupo quita las VM de forma automática para ahorrar costos.

Puedes escalar un MIG de forma automática en función de varios tipos de indicadores de ajuste de escala automático. Para obtener más información, consulta la descripción general del escalador automático.

También puedes leer sobre otras situaciones básicas para crear un MIG.

Antes de comenzar

  • Crea una plantilla de instancias, que es necesaria para crear un grupo de instancias administrado.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    Terraform

    Para usar las muestras de Terraform de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    1. Instala Google Cloud CLI.
    2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

      gcloud init
    3. Crea credenciales de autenticación locales para tu Cuenta de Google:

      gcloud auth application-default login

    Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Limitaciones

Para ver la lista completa de limitaciones del MIG, que varía según la configuración que uses, consulta Limitaciones del MIG.

Crea un MIG y habilita el ajuste de escala automático

Usa la consola de Google Cloud, la gcloud CLI, Terraform o REST.

Console

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

    Ir a Grupos de instancias

    Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.

  2. Si tienes un grupo de instancias, selecciónalo y haz clic en Editar. Si no tienes un grupo de instancias, haz clic en Crear grupo de instancias.
  3. Para un grupo de instancias nuevo, asigna un nombre y, luego, elige una plantilla de instancias para el grupo o crea uno nuevo.
  4. Si no existe una configuración del ajuste de escala automático, en Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
  5. En Modo de ajuste de escala automático, selecciona Activado: agrega y quita instancias del grupo para habilitar el ajuste de escala automático.
  6. Especifica la cantidad mínima y máxima de instancias que deseas que el escalador automático cree en este grupo.
  7. En la sección Métricas de ajuste de escala automático, si aún no hay una métrica de uso de CPU existente, agrega una:
    1. Haz clic en Agregar métrica.
    2. En Tipo de métrica, selecciona Uso de CPU.
    3. Ingresa el Uso objetivo de CPU que desees. Este valor se trata como un porcentaje. Por ejemplo, para un 75% de uso de CPU, ingresa 75.
    4. En Ajuste de escala automático predictivo, selecciona Desactivado. Si deseas obtener más información sobre el ajuste de escala automático predictivo y si es adecuado para tu carga de trabajo, consulta Escala en función de las predicciones.
    5. Haz clic en Listo.
  8. Puedes usar el período de inicialización para establecer el período de inicialización, lo que le indica al escalador automático cuánto tarda tu aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones de escalador automático. Por ejemplo, cuando se escala horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que estas aún no representen el uso normal de tu aplicación. El período de inicialización predeterminado es de 60 segundos.
  9. Para crear el MIG, haz clic en Crear.

gcloud

Antes de poder habilitar el ajuste de escala automático, debes crear un MIG. Sigue las instrucciones para crear un MIG con VM confinadas a una sola zona o crear un MIG con VM distribuidas en varias zonas de una región.

Luego, usa el subcomando set-autoscaling a fin de habilitar el ajuste de escala automático para el grupo. Por ejemplo, mediante el siguiente comando, se crea un escalador automático que tiene un uso objetivo de CPU del 60%. Además del parámetro --target-cpu-utilization, también se requiere el parámetro --max-num-replicas cuando se crea un escalador automático.

De manera opcional, puedes establecer el valor --min-num-replicas que indique la cantidad mínima de VM que deseas en el grupo. Si no estableces el mínimo, de forma predeterminada, el MIG establece este valor en 2.

Puedes usar la marca --cool-down-period para establecer el período de inicialización, que le indica al escalador automático cuánto tarda tu aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones de escalador automático. Por ejemplo, cuando se escala horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que estas aún no representen el uso normal de tu aplicación. El período de inicialización predeterminado es de 60 segundos.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

Si lo deseas, puedes habilitar el ajuste de escala automático predictivo para escalar horizontalmente antes de la carga prevista. A fin de saber si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo, consulta Escala en función de las predicciones.

Puedes verificar que el ajuste de escala automático se habilitó de manera correcta mediante el comando instance-groups managed describe, que describe el MIG correspondiente y proporciona información sobre las funciones de ajuste de escala automático para ese grupo:

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

Antes de poder habilitar el ajuste de escala automático, debes crear un MIG. Sigue las instrucciones para crear un MIG con VM confinadas a una sola zona o crear un MIG con VM distribuidas en varias zonas de una región.

Para configurar el ajuste de escala automático en un MIG, puedes usar el recurso google_compute_autoscaler.

En el siguiente ejemplo, se configura el ajuste de escala automático según el uso de CPU en un MIG zonal.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

REST

Antes de poder habilitar el ajuste de escala automático, debes crear un MIG con VM confinadas a una sola zona o crear un MIG con VM distribuidas en varias zonas de una región..

Si tienes un MIG zonal, realiza una solicitud POST al método autoscalers.insert. Si tienes un MIG regional, usa el método regionAutoscalers.insert.

Por ejemplo:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

El cuerpo de tu solicitud debe contener los campos name, target y autoscalingPolicy. El campo autoscalingPolicy debe definir tus valores de cpuUtilization y maxNumReplicas objetivo.

De manera opcional, puedes establecer el valor minNumReplicas que indique la cantidad mínima de VMs que deseas en el grupo. Si no estableces el mínimo, de forma predeterminada, el MIG establece este valor en 2.

Puedes usar el campo coolDownPeriodSec para establecer el período de inicialización, que le indica al escalador automático cuánto tarda tu aplicación en inicializarse. Especificar un período de inicialización preciso mejora las decisiones de escalador automático. Por ejemplo, cuando se escala horizontalmente, el escalador automático ignora los datos de las VMs que aún se están inicializando, ya que es posible que estas aún no representen el uso normal de tu aplicación. El período de inicialización predeterminado es de 60 segundos.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

Si lo deseas, puedes habilitar el ajuste de escala automático predictivo para escalar horizontalmente antes de la carga prevista. A fin de saber si el ajuste de escala automático predictivo es adecuado para tu carga de trabajo, consulta Escala en función de las predicciones.

Para obtener más información sobre la habilitación del ajuste de escala automático según el uso de CPU, consulta Ajusta la escala según el uso de CPU.

¿Qué sigue?