Escalonamento automático de grupos de instâncias


Os grupos de instâncias gerenciadas (MIGs) oferecem recursos de escalonamento automático que permitem adicionar ou excluir automaticamente instâncias de máquinas virtuais (VM) de um MIG com base em aumentos ou diminuições na carga. O escalonamento automático ajuda seus aplicativos a lidar com aumentos de tráfego e reduzir custos quando a necessidade de recursos é menor. Você define a política de escalonamento automático e o escalonador automático executa o escalonamento automático com base na carga medida e nas opções configuradas.

O escalonamento automático funciona adicionando mais VMs ao seu MIG quando há mais carga (dimensionamento horizontal) e excluindo VMs quando a necessidade de VMs é reduzida (aumento horizontal).

Pré-requisitos

O escalonador automático usa o agente de serviço do Compute Engine para adicionar e remover instâncias do grupo. Google Cloud cria automaticamente essa conta de serviço, bem como sua vinculação de política do IAM à função de agente de serviço do Compute Engine, quando a API Compute Engine está ativada .

Se esta conta estiver faltando em seu projeto – por exemplo, se você a removeu – você pode adicioná-la manualmente:

Console

  1. No console do Google Cloud, acesse a página do IAM .

    Acesse o IAM

  2. Clique em Conceder acesso .

  3. No campo Novos principais , insira service- PROJECT_NUMBER @compute-system.iam.gserviceaccount.com .

  4. Selecione a função de agente de serviço do Compute Engine .

  5. Clique em Salvar .

gcloud

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

Fundamentos

O escalonamento automático usa os seguintes conceitos e serviços fundamentais.

Grupos de instâncias gerenciadas

O escalonamento automático é um recurso de grupos de instâncias gerenciadas (MIGs) . Um grupo de instâncias gerenciadas é uma coleção de instâncias de máquinas virtuais (VM) criadas a partir de um modelo de instância comum. Um escalonador automático adiciona ou exclui instâncias de um grupo de instâncias gerenciadas com base na política de escalonamento automático do grupo. Embora o Compute Engine tenha grupos de instâncias gerenciadas e não gerenciadas, apenas grupos de instâncias gerenciadas podem ser usados ​​com um escalonador automático.

Para entender a diferença entre um grupo de instâncias gerenciadas e um grupo de instâncias não gerenciadas, consulte Grupos de instâncias .

Para saber como criar um grupo de instâncias gerenciadas, consulte Criação de MIGs .

Política de escalonamento automático

Ao definir uma política de escalonamento automático para seu grupo, você especifica um ou mais sinais que o escalonador automático usa para escalar o grupo. Quando você define vários sinais em uma política, o escalonador automático calcula o número recomendado de VMs para cada sinal e define o tamanho recomendado do seu grupo para o maior número.

Uma política de escalonamento automático deve sempre ter pelo menos um sinal de escalonamento. Quando você ativa o escalonamento automático em um MIG, por padrão, o escalonador automático adiciona um sinal de utilização da CPU. Você pode editar esse sinal padrão ou remover e adicionar outros sinais na política.

As seções a seguir fornecem uma visão geral dos sinais baseados em métricas de utilização alvo e sinais baseados em cronogramas.

Métricas de utilização desejada

Você pode escalonar automaticamente com base em uma ou mais das seguintes métricas que refletem a carga do grupo de instâncias:

  • Utilização média da CPU
  • Capacidade de serviço de balanceamento de carga HTTP
  • Métricas do Cloud Monitoring

O escalonador automático coleta continuamente informações de uso com base na métrica de utilização selecionada, compara a utilização real com a utilização desejada e usa essas informações para determinar se o grupo precisa remover instâncias (aumentar horizontalmente) ou adicionar instâncias (diminuir horizontalmente).

O nível de utilização alvo é o nível no qual você deseja manter suas instâncias de máquina virtual (VM). Por exemplo, se você escalar com base na utilização da CPU, poderá definir seu nível de utilização alvo em 75% e o escalonador automático manterá a utilização da CPU do grupo especificado de instâncias em ou próximo de 75%. O nível de utilização de cada métrica é interpretado de forma diferente com base na política de escalonamento automático.

Para obter mais informações sobre o escalonamento com base nas métricas de utilização desejada, consulte as páginas a seguir:

Horários

Você pode usar o escalonamento automático baseado em programação para alocar capacidade para cargas previstas. Você pode ter até 128 programações de escalonamento por grupo de instâncias. Para cada programação de escalonamento, especifique o seguinte:

  • Capacidade : instâncias de VM mínimas necessárias
  • Programação : hora de início, duração e recorrência (por exemplo, uma vez, diariamente, semanalmente ou mensalmente)

Cada agendamento de escalabilidade está ativo desde o horário de início e durante a duração configurada. Durante esse período, o escalonador automático dimensiona o grupo para ter pelo menos o número de instâncias definido pelo cronograma de escalonamento.

Para obter mais informações, consulte Dimensionamento baseado em planejamentos .

Período de inicialização

O período de inicialização, anteriormente conhecido como período de resfriamento, é a duração que os aplicativos levam para inicializar nas instâncias de VM. Enquanto um aplicativo está sendo inicializado em uma instância, os dados de uso da instância podem não refletir circunstâncias normais. Portanto, o escalonador automático usa o período de inicialização para decisões de escalabilidade das seguintes maneiras:

  • Para decisões de redução vertical, o autoescalador considera os dados de uso de todas as instâncias, mesmo uma instância que ainda esteja dentro do período de inicialização. O escalonador automático recomenda remover instâncias se a utilização média de todas as instâncias for menor que a utilização desejada.
  • Para decisões de expansão, o autoescalador ignora os dados de uso de instâncias que ainda estão no período de inicialização.
  • Se você habilitar o modo preditivo , o período de inicialização informará ao escalonador automático preditivo para aumentar ainda mais antes da carga prevista, para que os aplicativos sejam inicializados quando a carga chegar. Por exemplo, se definir o período de inicialização para 300 segundos, o autoescalador preditivo criará VMs 5 minutos antes da carga prevista.

Por padrão, o período de inicialização é de 60 segundos. Os tempos reais de inicialização variam devido a vários fatores. Recomendamos que você teste quanto tempo seu aplicativo leva para inicializar. Para fazer isso, crie uma instância e cronometre o processo de inicialização a partir do momento em que a instância se torna RUNNING até que o aplicativo esteja pronto.

Se você definir um valor de período de inicialização que seja significativamente maior do que o tempo que uma instância leva para inicializar, seu escalonador automático poderá ignorar dados de utilização legítimos e poderá subestimar o tamanho necessário do seu grupo, causando um atraso na expansão .

Período de estabilização

Os sinais de escalonamento automático, como a utilização da CPU, não são muito estáveis ​​e podem mudar rapidamente. À medida que a carga aumenta e diminui, o autoescalador precisa estabilizar o sinal para evitar a exclusão e criação contínua de VM. O escalonador automático estabiliza um sinal mantendo capacidade VM suficiente para atender ao pico de carga observado durante o período de estabilização .

O período de estabilização é igual a 10 minutos ou ao período de inicialização definido, o que for mais longo. O período de estabilização é utilizado apenas para decisões de redução quando o autoescalador tem de eliminar VMs.

Quando a carga diminui, o escalonador automático não exclui as VMs imediatamente. O escalonador automático mantém a capacidade de monitoramento necessária durante o período de estabilização e exclui VMs somente quando há capacidade suficiente para atender ao pico de carga. Isso pode parecer um atraso no dimensionamento, mas é um recurso integrado do escalonamento automático.

Se a sua aplicação demorar mais de 10 minutos para inicializar em uma nova VM, o escalonador automático usará o período de inicialização em vez dos 10 minutos padrão de estabilização para aguardar até que a VM possa ser excluída. Isto garante que a decisão do autoescalador de eliminar a VM tem em conta quanto tempo demora a recuperar a capacidade de serviço.

Quando a carga aumenta, o autoescalador não utiliza o período de estabilização e cria imediatamente quantas VMs forem necessárias para atender à demanda.

Modo de escalonamento automático

Se precisar investigar ou configurar seu grupo sem interferência das operações do escalonador automático, você poderá desativar ou restringir temporariamente as atividades de escalonamento automático . A configuração do escalonador automático persiste enquanto ele está desligado ou restrito, e todas as atividades de escalonamento automático são retomadas quando você o liga novamente ou suspende a restrição.

Escalonamento automático preditivo

Se você ativar o escalonamento automático preditivo para otimizar a disponibilidade do seu MIG, o escalonador automático prevê a carga futura com base em dados históricos e amplia um MIG antes da carga prevista, para que novas instâncias estejam prontas para servir quando a carga chegar.

O escalonamento automático preditivo funciona melhor se sua carga de trabalho atender aos seguintes critérios:

  • Seu aplicativo demora muito para inicializar — por exemplo, se você configurar um período de inicialização de mais de 2 minutos.
  • Sua carga de trabalho varia de forma previsível com ciclos diários ou semanais.

Para obter mais informações, consulte Dimensionamento baseado em previsões .

Controles de ampliação

Se suas cargas de trabalho levarem muitos minutos para serem inicializadas (por exemplo, devido a tarefas de instalação demoradas), você poderá reduzir o risco de latência de resposta causada por eventos de redução abrupta configurando controles de redução . Especificamente, se você espera que os picos de carga ocorram logo após as quedas, você pode limitar a taxa de redução para evitar que o escalonamento automático reduza o tamanho de um MIG em mais instâncias de VM do que sua carga de trabalho pode tolerar.

Você não precisa configurar controles de expansão se seu aplicativo for inicializado com rapidez suficiente para captar picos de carga na expansão.

Para configurar controles de redução vertical, defina as propriedades a seguir em sua política de escalonamento automático.

  • Redução máxima permitida . O número de instâncias de VM que sua carga de trabalho pode perder (a partir do tamanho máximo) dentro do intervalo de tempo final especificado. Use esse parâmetro para limitar o quanto seu grupo pode ser dimensionado para que você ainda possa atender a um provável pico de carga até que mais instâncias comecem a ser veiculadas. Quanto menor você definir a redução máxima permitida, mais tempo levará para o seu grupo crescer.

  • Janela de tempo final . O histórico no qual o autoescalador monitora o tamanho do pico exigido pela sua carga de trabalho. O autoescalador não será redimensionado abaixo da redução máxima permitida subtraída do tamanho do pico observado neste período. Você pode usar esse parâmetro para definir quanto tempo o autoescalador deve esperar antes de remover instâncias, conforme definido pela redução máxima permitida. Com uma janela de tempo de rastreamento mais longa, o escalonador automático considera mais picos históricos, tornando a expansão mais conservadora e estável.

Para obter mais informações, consulte Configurando controles de redução e Noções básicas sobre decisões do escalonador automático .

O tamanho de grupo recomendado é o número recomendado de VMs do escalonador automático que o grupo de instâncias gerenciadas deve manter, com base no pico de carga observado durante os últimos 10 minutos. Estes últimos 10 minutos são chamados de período de estabilização . O tamanho recomendado é recalculado constantemente. Se você definir uma política de escalonamento automático com controles de redução, o tamanho recomendado será limitado pelos controles de redução.

Limitações

O que acontece durante a recuperação automática

O escalonamento automático funciona independentemente da recuperação automática . Se você configurar a recuperação automática para seu grupo e uma instância falhar na verificação de integridade, o MIG tentará recriar a instância. Enquanto uma instância está sendo recriada pelo MIG, o número de instâncias em execução no grupo pode ser menor que o número mínimo de instâncias especificado para o grupo ( autoscalingPolicy.minNumReplicas ).

Preços

Não há cobrança adicional para configurar uma política de escalonamento automático. O escalonador automático adiciona ou exclui instâncias de VM dinamicamente, de modo que você será cobrado apenas pelos recursos que seu MIG usa. Você pode controlar o custo dos recursos configurando o número mínimo e máximo de instâncias na política de escalonamento automático.Para informações sobre preços do Compute Engine, consulte Preços .

O que vem a seguir

  1. Saiba como funciona o escalonamento automático em um MIG regional .
  2. Se você não tiver um MIG, revise como criar um grupo gerenciado de instâncias .
  3. Crie um escalonador automático que seja dimensionado em:

  4. Gerencie seu escalonador automático , por exemplo, para obter informações sobre ele, para configurar controles de redução ou para restringi-lo temporariamente.