Este documento descreve como dimensionar um grupo de instâncias gerenciadas (MIG) com base na capacidade de atendimento de um Application Load Balancer externo ou de um Application Load Balancer interno. Isso significa que o escalonamento automático adiciona ou remove instâncias de VM no grupo quando o balanceador de carga indica que o grupo atingiu uma fração configurável de sua plenitude , onde a plenitude é definida pela capacidade alvo do modo de balanceamento selecionado do grupo de instâncias de back-end.
Você também pode dimensionar um MIG com base na utilização da CPU ou nas métricas de monitoramento .
Limitações
Você pode dimensionar automaticamente um grupo de instâncias gerenciadas com base na capacidade de atendimento de um Application Load Balancer externo e de um Application Load Balancer interno . Outros tipos de balanceadores de carga não são suportados.
Antes de começar
- Revise as limitações do escalonador automático.
- Leia sobre os fundamentos do escalonador automático.
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Acesse a página Grupos de instâncias no console do Google Cloud.
- Se você tiver um grupo de instâncias, selecione-o e clique em Editar . Se você não tiver um grupo de instâncias, clique em Criar grupo de instâncias .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
- Especifique os números mínimo e máximo de instâncias que você deseja que o escalonador automático crie neste grupo.
- Na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
- Configure o tipo de sinal para utilização de balanceamento de carga HTTP .
Insira a utilização de balanceamento de carga HTTP de destino . Este valor é tratado como uma porcentagem. Por exemplo, para 60% de utilização de balanceamento de carga HTTP, insira
60
.Você pode usar o período de resfriamento para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.
Salve suas alterações.
- Saiba mais sobre o gerenciamento de escalonadores automáticos .
- Saiba como os escalonadores automáticos tomam decisões .
- Aprenda como usar vários sinais de escalonamento automático para dimensionar seu grupo.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Dimensionamento baseado na capacidade de serviço de balanceamento de carga HTTP(S)
O Compute Engine oferece suporte para balanceamento de carga nos grupos de instâncias. Você pode usar o escalonamento automático em conjunto com o balanceamento de carga configurando um escalonador automático que escala com base na carga de suas instâncias.
Um balanceador de carga HTTP(S) externo ou interno distribui solicitações para serviços de back-end de acordo com seu mapa de URL. O balanceador de carga pode ter um ou mais serviços de back-end , cada um oferecendo suporte a back-ends de grupos de instâncias ou de grupos de endpoints de rede (NEG). Quando os back-ends são grupos de instâncias, o balanceador de carga HTTP(S) oferece dois modos de balanceamento :
UTILIZATION
eRATE
. ComUTILIZATION
, você pode especificar uma meta máxima para utilização média de back-end de instâncias no grupo de instâncias. ComRATE
, você deve especificar um número alvo de solicitações por segundo por instância ou por grupo. (Apenas os grupos de instâncias zonais oferecem suporte à especificação de uma taxa máxima para todo o grupo. Os grupos de instâncias gerenciadas regionais não oferecem suporte à definição de uma taxa máxima por grupo.)O modo de balanceamento e a capacidade alvo especificada definem as condições sob as quais Google Cloud determina quando uma VM de back-end está com capacidade total. Google Cloud tenta enviar tráfego para VMs íntegras que possuem capacidade restante. Se todas as VMs já estiverem na capacidade, a utilização ou taxa desejada será excedida.
Quando você anexa um escalonador automático a um back-end de grupo de instâncias de um balanceador de carga HTTP(S), o escalonador automático dimensiona o grupo de instâncias gerenciadas para manter uma fração da capacidade de serviço do balanceamento de carga.
Por exemplo, suponha que a capacidade de atendimento de balanceamento de carga de um grupo de instâncias gerenciadas seja definida como 100 RPS por instância. Se você criar um escalonador automático com a política de balanceamento de carga HTTP(S) e configurá-lo para manter um nível de utilização alvo de 0,8 ou 80%, o escalonador automático adicionará ou removerá instâncias do grupo de instâncias gerenciadas para manter 80% da capacidade de serviço, ou 80 RPS por instância.
O diagrama a seguir mostra como o escalonador automático interage com um grupo de instâncias gerenciadas e um serviço de back-end:
O escalonador automático monitora a capacidade de atendimento do grupo de instâncias gerenciadas, que é definido no serviço de back-end, e é dimensionado com base na utilização desejada. Neste exemplo, a capacidade de atendimento é medida no valor maxRatePerInstance
.Configurações de balanceamento de carga aplicáveis
Você pode definir uma das três opções para a capacidade de serviço do balanceamento de carga. Ao criar o back-end pela primeira vez, você pode escolher entre a utilização máxima de back-end, o máximo de solicitações por segundo por instância ou o máximo de solicitações por segundo de todo o grupo. O escalonamento automático funciona apenas com utilização máxima de back-end e solicitações máximas por segundo/instância porque o valor dessas configurações pode ser controlado adicionando ou removendo instâncias. Por exemplo, se você definir um back-end para lidar com 10 solicitações por segundo por instância e o escalonador automático estiver configurado para manter 80% dessa taxa, o escalonador automático poderá adicionar ou remover instâncias quando as solicitações por segundo por instância mudarem.
O escalonamento automático não funciona com solicitações máximas por grupo porque essa configuração é independente do número de instâncias no grupo de instâncias. O balanceador de carga envia continuamente o número máximo de solicitações por grupo para o grupo de instâncias, independentemente de quantas instâncias existem no grupo.
Por exemplo, se você definir o back-end para processar no máximo 100 solicitações por grupo por segundo, o balanceador de carga enviará 100 solicitações por segundo ao grupo, independentemente de o grupo ter duas instâncias ou 100 instâncias. Como esse valor não pode ser ajustado, o escalonamento automático não funciona com uma configuração de balanceamento de carga que usa o número máximo de solicitações por segundo por grupo.
Ativar o escalonamento automático com base na capacidade de serviço do balanceamento de carga
Console
gcloud
Para ativar um escalonador automático que escale a capacidade de atendimento, use o subcomando
set-autoscaling
. Por exemplo, o comando a seguir cria um escalonador automático que dimensiona o grupo de instâncias gerenciadas de destino para manter 60% da capacidade de atendimento. Junto com o parâmetro--target-load-balancing-utilization
, o parâmetro--max-num-replicas
também é necessário ao criar um escalonador automático:gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \ --max-num-replicas 20 \ --target-load-balancing-utilization 0.6 \ --cool-down-period 90
Você pode usar o sinalizador
--cool-down-period
para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.Você pode verificar se o escalonador automático foi criado com sucesso usando o subcomando
instance-groups managed describe
:gcloud compute instance-groups managed describe example-managed-instance-group
Para obter uma lista de comandos e sinalizações
gcloud
disponíveis, consulte a referênciagcloud
.DESCANSAR
Para criar um escalonador automático, use o método
autoscalers.insert
para um MIG zonal ou o métodoregionAutoscalers.insert
para um MIG regional.O exemplo a seguir cria um escalonador automático para um MIG zonal:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/
O corpo da sua solicitação deve conter os campos
name
,target
eautoscalingPolicy
.autoscalingPolicy
deve definirloadBalancingUtilization
.Você pode usar o campo
coolDownPeriodSec
para definir o período de inicialização, que informa ao escalonador automático quanto tempo leva para seu aplicativo inicializar. Especificar um período de inicialização preciso melhora as decisões do escalonador automático. Por exemplo, ao expandir, o escalonador automático ignora dados de VMs que ainda estão sendo inicializadas porque essas VMs ainda podem não representar o uso normal do seu aplicativo. O período de inicialização padrão é de 60 segundos.{ "name": "example-autoscaler", "target": "zones/us-central1-f/instanceGroupManagers/example-managed-instance-group", "autoscalingPolicy": { "maxNumReplicas": 20, "loadBalancingUtilization": { "utilizationTarget": 0.8 }, "coolDownPeriodSec": 90 } }
Para mais informações sobre como ativar o escalonamento automático com base na capacidade de serviço de balanceamento de carga, conclua o tutorial Escalonamento automático global de um serviço da Web no Compute Engine .
O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-