Criar um MIG com o escalonamento automático ativado


Este documento descreve como criar um grupo gerenciado de instâncias (MIG, na sigla em inglês) com escalonamento automático que adiciona e remove automaticamente as VMs com base na utilização média da CPU no grupo. Por exemplo, se a utilização da CPU do grupo for baixa, o grupo removerá automaticamente as VMs para economizar custos.

É possível escalonar automaticamente um MIG com base em vários tipos de sinais de escalonamento automático. Para mais informações, consulte a visão geral do escalonador automático.

Você também pode ler sobre outros cenários básicos para criar um MIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerenciadas.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    Terraform

    Para usar as amostras de Terraform nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. Crie as credenciais de autenticação para sua Conta do Google:

      gcloud auth application-default login

    Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Limitações

Para ver a lista completa de limitações do MIG, que varia de acordo com a configuração usada, consulte Limitações do MIG.

Como criar um MIG e ativar o escalonamento automático

Use o console do Google Cloud, a CLI gcloud, o Terraform ou o REST.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

    As etapas restantes serão exibidas automaticamente no console do Google Cloud.

  2. Se houver um grupo de instâncias, selecione-o e clique em Editar. Se não houver um grupo de instâncias, clique em Criar um grupo de instâncias.
  3. Para um novo grupo de instâncias, atribua um nome e escolha um modelo de instância para o grupo ou crie um novo.
  4. Se não houver uma configuração de escalonamento automático, em Escalonamento automático, clique em Configurar escalonamento automático.
  5. Para ativar o escalonamento automático, em Modo de escalonamento automático, selecione Ativado: adicionar e remover instâncias do grupo.
  6. Especifique o mínimo e o máximo de instâncias que você quer que o escalonador automático crie no grupo.
  7. Na seção métricas de escalonamento automático, se uma métrica de utilização de CPU atual ainda não existir, adicione uma:
    1. Clique em Adicionar métrica.
    2. Em Tipo de métrica, selecione Utilização de CPU.
    3. Informe o Uso desejado da CPU que pretende definir. Esse valor é tratado como uma porcentagem. Por exemplo, para ter 75% de utilização da CPU, insira 75.
    4. Em Escalonamento automático preditivo, selecione Desativado. Para saber mais sobre o escalonamento automático preditivo e se ele é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.
    5. Clique em Concluído.
  8. Use o período de inicialização para defini-lo, o que informa ao escalonador automático o tempo que o aplicativo leva para ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é de 60 segundos.
  9. Para criar o MIG, clique em Criar.

gcloud

Antes de ativar o escalonamento automático, crie um MIG. Siga as instruções para criar um MIG com VMs limitadas a uma única zona ou criar um MIG com VMs distribuídas por várias zonas em uma região.

Em seguida, use o subcomando set-autoscaling para ativar o escalonamento automático do grupo. Por exemplo, o comando a seguir cria um autoescalador com meta de uso da CPU de 60%. Com o parâmetro --target-cpu-utilization, também é necessário o parâmetro --max-num-replicas para criar um escalonador automático:

Se quiser, defina --min-num-replicas indicando o número mínimo de VMs que você quer no grupo. Se você não definir o mínimo, por padrão, o MIG definirá esse valor como 2.

Use a flag --cool-down-period para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para o aplicativo ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é 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

Se você quiser, ative o escalonamento automático de previsão para escalonar horizontalmente antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.

É possível verificar se o escalonamento automático está ativado usando o comando instance-groups managed describe, que descreve o MIG correspondente e fornece informações sobre qualquer recurso de escalonamento automático para esse grupo:

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

Terraform

Antes de ativar o escalonamento automático, crie um MIG. Siga as instruções para criar um MIG com VMs limitadas a uma única zona ou criar um MIG com VMs distribuídas por várias zonas em uma região.

Para configurar o escalonamento automático em um MIG, use o recurso google_compute_autoscaler.

O exemplo a seguir configura o escalonamento automático com base na utilização da CPU em um 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
    }
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

REST

Antes de ativar o escalonamento automático, é necessário criar um MIG com VMs limitadas a uma única zona ou criar um MIG com VMs distribuídas por várias zonas em uma região

Se você tiver um MIG zonal, faça uma solicitação POST para o método autoscalers.insert. Se você tiver um MIG regional, use o método regionAutoscalers.insert.

Exemplo:

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

O corpo da solicitação precisa conter os campos name, target e autoscalingPolicy. O campo autoscalingPolicy precisa definir os valores de destinocpuUtilization e maxNumReplicas.

Se quiser, defina minNumReplicas indicando o número mínimo de VMs que você quer no grupo. Se você não definir o mínimo, por padrão, o MIG definirá esse valor como 2.

Use o campo coolDownPeriodSec para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para o aplicativo ser inicializado. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao escalonar horizontalmente, o escalonador automático ignora os dados das VMs que ainda estiverem sendo inicializadas, porque é possível que elas ainda não representem o uso regular do aplicativo. O período de inicialização padrão é 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
  }
}

Se você quiser, ative o escalonamento automático de previsão para escalonar horizontalmente antes da carga prevista. Para saber se o escalonamento automático preditivo é adequado para sua carga de trabalho, consulte Escalonamento com base em previsões.

Para mais informações sobre como ativar o escalonamento automático com base na utilização da CPU, consulte Como escalonar com base na utilização da CPU.

A seguir