Como fazer o escalonamento automático global de um serviço da Web no Compute Engine


Neste tutorial, você vai aprender a configurar um serviço da Web disponível globalmente com grupos de instâncias gerenciadas regionais do Compute Engine que são escalonadas automaticamente para atender às necessidades de capacidade. Use as técnicas deste tutorial para implementar seu próprio projeto distribuído globalmente e escalonável no Compute Engine.

Objetivos

  • Implantar vários grupos de instâncias gerenciadas regionais do Compute Engine com escalonamento automático ativado.
  • Criar um balanceador de carga entre regiões.
  • Gerar tráfego de teste de diferentes regiões do mundo
  • Use o console do Google Cloud para conferir como o balanceador de carga encaminha as solicitações e como os grupos de instâncias são escalonados automaticamente para atender à demanda.

Custos

Neste tutorial, há componentes faturáveis do Google Cloud, como estes:

  • Compute Engine

Antes de começar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine API.

    Enable the API

Arquitetura do aplicativo

O aplicativo inclui os seguintes componentes do Compute Engine:

  1. Modelo de instância: um modelo usado para criar cada instância nos grupos de instâncias.
  2. Grupos de instâncias: vários grupos de instâncias que fazem escalonamento automático com base no tráfego de entrada.
  3. Balanceador de carga: um balanceador de carga HTTP que distribui o tráfego entre os grupos de instâncias.
  4. Instâncias: várias instâncias para gerar tráfego de teste de diferentes partes do mundo.

Diagrama de arquitetura do sistema mostrando um balanceador de carga com vários grupos de instâncias regionais

Configurar o serviço da Web

Criar os grupos de instâncias

Console

  1. Crie uma rede para os grupos de instâncias.

    1. No Console do Google Cloud, acesse a página Redes VPC.

      Acessar redes VPC

    2. Clique em Criar rede VPC.

    3. Defina o Nome como fortressnet.

    4. Defina o Modo de criação da sub-rede como Automático.

    5. Clique em Criar na parte inferior da página.

  2. Crie uma regra de firewall para a rede. Ela permitirá todas as solicitações HTTP enviadas para as instâncias.

    1. No Google Cloud Console, acesse a página Regras de firewall.

      Acessar as regras de firewall

    2. Clique em Criar regra de firewall.

    3. Defina o Nome como fortressnet-allow-http.

    4. Em Rede, selecione fortressnet.

    5. Em Destinos, selecione All instances in the network.

    6. Defina Intervalos IPv4 de origem como 0.0.0.0/0.

    7. Em Protocolos e portas, escolha Protocolos e portas especificados e marque a caixa de seleção tcp e insira 80.

    8. Clique em Criar.

  3. Crie um modelo de instância. Inclua um script de inicialização que inicie um servidor da Web Apache simples em cada instância.

    1. No Console do Google Cloud, acesse a página Modelos de instância.

      Acessar "Modelos de instância"

    2. Clique em Criar modelo de instância.

    3. Defina o Nome como fort-template.

    4. Em Configuração da máquina, selecione e2-micro (2 vCPUs, 1 GB de memória).

    5. Na seção Opções avançadas, expanda Rede e faça o seguinte:

      1. Na seção Interfaces de rede, expanda a interface de rede para editá-la.
      2. Em Rede, selecione fortressnet.
    6. Na seção Gerenciamento, para Automação, insira o seguinte script de inicialização:

      apt update && apt -y install apache2
      

    7. Clique em Criar.

  4. Crie vários grupos de instâncias regionais gerenciadas usando o modelo de instância. Configure o escalonamento automático para cada grupo de instâncias.

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

      Acesse grupo de instâncias

    2. Clique em Criar grupo de instâncias para criar um novo grupo gerenciado de instâncias.

    3. Selecione Novo grupo gerenciado de instâncias (sem estado).

    4. Defina o Nome como us-central1-pool.

    5. Em Modelo de instância, selecione fort-template.

    6. Para Local, selecione Várias zonas.

    7. Em Região, selecione us-central1. Em Zonas, deixe os valores predefinidos selecionados.

    8. Em Modo de escalonamento automático, selecione Ativado: adicionar e remover instâncias para o grupo.

    9. Defina o Número mínimo de instâncias como 1.

    10. Defina o Número máximo de instâncias como 5.

    11. Em Indicadores de escalonamento automático, edite a seleção padrão (uso da CPU) e defina o Tipo de indicador como Uso de balanceamento de carga HTTP.

    12. Defina a Meta de uso do balanceamento de carga HTTP como 80.

    13. Clique em Concluído.

    14. Clique em Criar. Uma caixa de diálogo exibe a mensagem de que você também precisa atribuir o grupo de instâncias a um serviço de back-end de um balanceador de carga HTTP.

    15. Na caixa de diálogo, clique em Confirmar. É possível configurar o balanceador de carga depois de criar todos os grupos de instâncias.

    16. Repita essas etapas para criar mais dois grupos de instâncias com as seguintes alterações:

      • Crie um grupo com o Nome como europe-west1-pool e a Região como europe-west1.
      • Crie um grupo com o Nome como asia-east1-pool e a Região como asia-east1.
  5. (Opcional) Verifique se as instâncias estão íntegras e veiculando tráfego HTTP. Teste o endereço IP externo de uma ou mais instâncias. Talvez seja necessário aguardar alguns minutos até que as instâncias concluam o processo de inicialização.

    1. No Console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Verifique se cada instância em execução tem uma marca de seleção verde na coluna Status ao lado do nome do grupo de instâncias.

    3. Copie o IP externo de uma instância e cole-o em um navegador da Web.

    Você verá a página da Web "Apache2 Debian Default Page".

    Se isso não funcionar, espere alguns minutos.

gcloud

  1. Crie uma rede para os grupos de instâncias.

    gcloud compute networks create fortressnet --subnet-mode auto
    
  2. Crie uma regra de firewall para a rede. Ela permitirá todas as solicitações HTTP enviadas para as instâncias.

    gcloud compute firewall-rules create fortressnet-allow-http \
        --network fortressnet \
        --allow tcp:80
    
  3. Crie um modelo de instância. Inclua um script de inicialização que inicie um servidor da Web Apache simples em cada instância.

    gcloud compute instance-templates create fort-template \
        --machine-type e2-micro \
        --network fortressnet \
        --metadata startup-script='apt update && apt -y install apache2'
    
  4. Crie vários grupos de instâncias regionais gerenciadas usando o modelo de instância. Configure o escalonamento automático para cada grupo de instâncias.

    gcloud compute instance-groups managed create us-central1-pool \
        --region us-central1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling us-central1-pool \
        --region us-central1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create europe-west1-pool \
        --region europe-west1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling europe-west1-pool \
        --region europe-west1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
    gcloud compute instance-groups managed create asia-east1-pool \
        --region asia-east1 \
        --template fort-template \
        --size 1
    gcloud compute instance-groups managed set-autoscaling asia-east1-pool \
        --region asia-east1 \
        --min-num-replicas 1 \
        --max-num-replicas 5 \
        --scale-based-on-load-balancing \
        --target-load-balancing-utilization .8
    
  5. (Opcional) Verifique se as instâncias estão íntegras e veiculando tráfego HTTP. Teste o endereço IP externo de uma ou mais instâncias. Talvez seja necessário aguardar alguns minutos até que as instâncias concluam o processo de inicialização.

    1. Liste suas instâncias.

      gcloud compute instances list
      

    2. Verifique na coluna STATUS se as instâncias estão no status RUNNING.

    3. Consulte o endereço IP da instância na coluna EXTERNAL_IP para verificá-la.

      curl http://EXTERNAL_IP | head
      

    Você verá um texto HTML, incluindo a linha <title>Apache2 Debian Default Page: It works</title>.

    Se isso não funcionar, espere alguns minutos.

Configurar o balanceador de carga

O balanceador de carga distribui solicitações de clientes entre vários back-ends.

Console

Iniciar a configuração

  1. No console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
  4. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  5. Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
  6. Em Geração do balanceador de carga, selecione Balanceador de carga de aplicativo externo global e clique em Próxima.
  7. Clique em Configurar.

Configuração básica

  1. Defina o Nome do balanceador de carga como fortressnet-balancer.

Configuração de back-end

  1. Na página Editar balanceador de carga externo do aplicativo global, clique em Configuração de back-end.
  2. No menu suspenso Criar ou selecionar serviços e buckets de back-end, selecione Serviços de back-end. Em seguida, clique em Criar um serviço de back-end. Você verá a caixa de diálogo Criar serviço de back-end.
  3. Defina o Nome do serviço de back-end como fortressnet-backend-service.
  4. Na caixa de diálogo Novo back-end, defina o Grupo de instâncias como asia-east1-pool.
  5. Em Modo de balanceamento, selecione Taxa.
  6. Defina o RPS máximo como 100 RPS por instância.
  7. Clique em Concluir.
  8. Selecione Adicionar back-end.
  9. Na caixa de diálogo Novo back-end, defina o Grupo de instâncias como europe-west1-pool.
  10. Em Modo de balanceamento, selecione Taxa.
  11. Defina o RPS máximo como 100 RPS por instância.
  12. Clique em Concluir.
  13. Selecione Adicionar back-end.
  14. Na caixa de diálogo Novo back-end, defina o Grupo de instâncias como us-central1-pool.
  15. Em Modo de balanceamento, selecione Taxa.
  16. Defina o RPS máximo como 100 RPS por instância.
  17. Clique em Concluir.
  18. Em Verificação de integridade, selecione Criar verificação de integridade.
  19. Defina o Nome como http-basic-check.
  20. Em Protocolo, selecione HTTP.
  21. Defina a Porta como 80.
  22. Clique em Salvar e continuar.
  23. Clique em Criar.

Regras de host e caminho

  1. No painel esquerdo da página Criar balanceador de carga de aplicativo externo global, clique em Regras de host e caminho.
    Neste exemplo, não é necessário configurar regras de host ou de caminho porque todo o tráfego seguirá a regra padrão. Basta aceitar os valores padrão preenchidos previamente.

Configuração de front-end

  1. No painel esquerdo da página Criar balanceador de carga de aplicativo externo global, clique em Configuração de front-end.
  2. Defina o Nome como fortressnet-http-rule.
  3. Em Versão IP, selecione IPv4.
  4. Em Endereço IP, selecione Criar endereço IP.
  5. Na caixa de diálogo Reservar um novo IP estático, defina o Nome como fortressnet-ip.
  6. Clique em Reservar e aguarde alguns instantes.
  7. Clique em Concluído na parte inferior da caixa de diálogo Novo IP e nova porta de front-end.
  8. Clique em Adicionar IP e porta de front-end.
  9. Defina o Nome como fortressnet-http-ipv6-rule.
  10. Em Versão IP, selecione IPv6.
  11. Em Endereço IP, selecione Criar endereço IP.
  12. Na caixa de diálogo, defina o Nome como fortressnet-ipv6.
  13. Clique em Reservar e aguarde alguns instantes.
  14. Clique em Concluído na parte inferior da caixa de diálogo Novo IP e nova porta de front-end.

Revisar e finalizar

  1. No painel esquerdo da página Criar balanceador de carga de aplicativo externo global, clique em Analisar e finalizar.
  2. Compare as configurações com o que você pretendia criar.
  3. Se as configurações estiverem corretas, clique em Criar na parte inferior do painel esquerdo. Você voltará para a tela "Balanceamento de carga". Depois que o balanceador de carga for criado, uma marca de seleção verde ao lado dele indicará que ele está em execução.

gcloud

Configuração de back-end

  1. Crie uma verificação de integridade básica. Ela verificará se um back-end do balanceador de carga está respondendo a solicitações HTTP.

    gcloud compute health-checks create http http-basic-check
    
  2. Crie um serviço de back-end global. Esse serviço receberá o tráfego HTTP do balanceador de carga.

    gcloud compute backend-services create fortressnet-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    
  3. Adicione os grupos de instâncias como back-ends regionais do serviço de back-end. Essa configuração distribuirá o tráfego entre os back-ends com base em um número máximo de solicitações por segundo (RPS, na sigla em inglês) por instância.

    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group us-central1-pool \
        --instance-group-region us-central1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group europe-west1-pool \
        --instance-group-region europe-west1 \
        --global
    gcloud compute backend-services add-backend fortressnet-backend-service \
        --balancing-mode RATE \
        --max-rate-per-instance 100 \
        --instance-group asia-east1-pool \
        --instance-group-region asia-east1 \
        --global
    

Regras de host e caminho

  1. Defina um mapa de URL. Os mapas de URL encaminham URLs diferentes para serviços de back-end distintos. Como há apenas um serviço de back-end, simplesmente o definiremos como o serviço padrão para todos os URLs.

    gcloud compute url-maps create fortressnet-balancer \
        --default-service fortressnet-backend-service
    
  2. Crie uma rota de proxy HTTP. Esse tipo de rota aceita solicitações HTTP e as encaminha de acordo com o mapa de URLs. Nesse caso, enviará todas as solicitações para seu único serviço de back-end.

    gcloud compute target-http-proxies create fortressnet-http-proxy \
        --url-map fortressnet-balancer
    

Configuração de front-end

  1. Crie dois endereços IP externos estáticos globais: um para IPV4 e outro para IPV6. Esses serão os endereços IP externos globais do balanceador de carga.

    gcloud compute addresses create fortressnet-ip \
        --ip-version IPV4 \
        --network-tier=PREMIUM \
        --global
    gcloud compute addresses create fortressnet-ipv6 \
        --ip-version IPV6 \
        --network-tier=PREMIUM \
        --global
    
  2. Pesquise os endereços IP externos do balanceador de carga.

    gcloud compute addresses list
    
  3. Crie regras de encaminhamento globais para os endereços IP externos. Assim, as solicitações HTTP IPV4 e IVP6 serão encaminhadas para seu proxy HTTP.

    gcloud compute forwarding-rules create fortressnet-http-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IP_ADDRESS
    
    gcloud compute forwarding-rules create fortressnet-http-ipv6-rule \
        --load-balancing-scheme=EXTERNAL \
        --network-tier=PREMIUM \
        --global \
        --target-http-proxy fortressnet-http-proxy \
        --ports 80 \
        --address LOAD_BALANCER_IPV6_ADDRESS
    

(Opcional) Verifique se o balanceador de carga está funcionando. Talvez seja necessário esperar alguns minutos.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Aguarde até que fortressnet-balancer tenha uma marca de seleção verde sob a coluna Back-ends.

  3. Clique em fortressnet-balancer.

  4. Em Front-end, copie o endereço IPV4 na coluna IP:Porta. Os endereços IPV4 têm o formato www.xxx.yyy.zzz. Você não precisa do número de porta :nn à direita.) Se a seção Front-end estiver ausente, aguarde alguns instantes e recarregue a página.

  5. Digite o endereço IP em um navegador da Web.

Você verá a página da Web "Apache2 Debian Default Page".

Se você receber uma página "Erro 404 (não encontrado)", aguarde mais alguns minutos.

gcloud

  1. Pesquise os endereços IP externos do balanceador de carga.

    gcloud compute addresses list
    
  2. Consulte o endereço IPV4. Os endereços IPV4 têm o formato www.xxx.yyy.zzz.

    curl http://LOAD_BALANCER_IP_ADDRESS | head
    

Você verá um texto HTML, incluindo a linha <title>Apache2 Debian Default Page: It works</title>.

Se você vir <title>Error 404 (Not Found)!!1</title> em vez disso, aguarde mais alguns minutos.

Prática recomendada: crie um firewall seguro para permitir somente tráfego interno do balanceador de carga e da verificação de integridade. Em seguida, exclua o firewall original que permitiu qualquer solicitação HTTP. Isso impede que instâncias individuais sejam acessadas por clientes externos.

Console

  1. Crie um novo firewall que permita apenas tráfego do balanceador de carga e da verificação de integridade.

    1. No Google Cloud Console, acesse a página Regras de firewall.

      Acessar as regras de firewall

    2. Clique em Criar regra de firewall.

    3. Defina o Nome como fortressnet-allow-load-balancer.

    4. Em Rede, selecione fortressnet.

    5. Em Destinos, selecione All instances in the network.

    6. Em Intervalos de IP de origem, digite 130.211.0.0/22 e pressione a tecla Enter. Em seguida, insira 35.191.0.0/16 e pressione Enter novamente.

    7. Em Protocolos e portas, selecione tcp e digite 80.

    8. Clique em Criar.

  2. Exclua o antigo firewall "permitir tudo".

    1. Marque a opção fortressnet-allow-http.
    2. Clique em Excluir na parte superior da página.
    3. Na caixa de diálogo, clique em Excluir.

gcloud

  1. Crie um novo firewall que permita apenas tráfego do balanceador de carga e da verificação de integridade.

    gcloud compute firewall-rules create fortressnet-allow-load-balancer \
        --network fortressnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp:80
    
  2. Exclua o antigo firewall "permitir tudo".

    gcloud compute firewall-rules delete fortressnet-allow-http -q
    

(Opcional) Verificar se o escalonamento automático e o balanceamento de carga funcionam

Gerar tráfego de teste

Imagine que é de manhã na Europa e seu serviço da Web de repente se tornou viral na Internet. Gere um grande número de solicitações de clientes de uma só vez da Europa.

Console

  1. Crie uma instância instalada com a ferramenta de teste de carga Siege.

    1. No Console do Google Cloud, acesse a página Criar uma instância.

      Acesse "Criar uma instância"

    2. Defina o Nome como europe-loadtest.

    3. Em Região, selecione europe-west1.

    4. Para configurações avançadas, abra a seção Opções avançadas e faça o seguinte:

      1. Expanda a seção Gerenciamento.
      2. No campo Automação, insira o seguinte script de inicialização:
        apt -y install siege
        
    5. Para criar a VM, clique em Criar.

  2. Consiga o endereço IPV4 do balanceador de carga.

    1. No Console do Google Cloud, acesse a página Balanceamento de carga.

      Acessar o "Balanceamento de carga"

    2. Clique em fortressnet-balancer.

    3. Em Front-end, copie o endereço IPV4 na coluna IP:Porta. Os endereços IPV4 têm o formato www.xxx.yyy.zzz.

  3. Conecte-se via SSH à instância de teste de carga.

    1. No Console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Aguarde até que a instância europe-loadtest tenha uma marca de seleção verde na coluna Nome.

    3. Clique em SSH em europe-loadtest na coluna Conectar.

  4. Inicie o Siege. Indique o endereço IPV4 do balanceador de carga.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Crie uma instância instalada com a ferramenta de teste de carga Siege.

    gcloud compute instances create europe-loadtest \
        --network default \
        --zone europe-west1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Consiga o endereço IPV4 do balanceador de carga.

    gcloud compute addresses list
    
  3. Abra uma nova sessão de shell em que o comando gcloud esteja disponível.

    1. Na nova sessão de shell, conecte-se via SSH à instância de teste de carga.

      gcloud compute ssh --zone europe-west1-c europe-loadtest
      
    2. Inicie o Siege. Indique o endereço IPV4 do balanceador de carga.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Depois de executar o comando siege, a saída declarará The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Monitorar o balanceamento de carga e o escalonamento automático

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no balanceador de carga denominado fortressnet-balancer.

  3. Clique na guia Monitoramento.

  4. Na lista suspensa Back-end, selecione fortressnet-backend-service.

Pode levar até dez minutos para que dados suficientes sejam exibidos. Em breve, você verá uma exibição semelhante à seguinte:

Tela de monitoramento do console do Google Cloud que mostra solicitações da Europa distribuídas igualmente entre os três back-ends

O que está acontecendo:

  1. O teste de carga começa a enviar uma grande quantidade de tráfego de uma só vez. Inicialmente, o balanceador de carga distribui solicitações igualmente entre os três back-ends. O número de solicitações excede rapidamente seus limites de escalonamento automático e pode até mesmo fazer com que seus servidores retornem Backend 5xx errors, que será exibido na tela de monitoramento. O escalonador automático começa a ativar instâncias adicionais conforme necessário.

  2. O escalonamento automático alcança as necessidades de capacidade. Para minimizar a latência da solicitação, os balanceadores de carga do Compute Engine tentam encaminhar solicitações para o back-end mais próximo do cliente. Nesse caso, como o tráfego do teste de carga é originário da Europa, o balanceador de carga prefere encaminhar mais solicitações para o back-end da Europa. Como resultado, o escalonamento automático pode ativar mais instâncias no back-end da Europa para gerenciar uma fração maior das solicitações.

Gerar tráfego de teste em outro lugar

Imagine que seu serviço da Web também viralizou na Ásia no horário de pico da tarde na Internet. Gere um grande número de solicitações da Ásia.

Console

  1. Para criar outra instância instalada com a ferramenta de teste de carga Siege, faça o seguinte:

    1. No console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Clique em Criar instância.

    3. Defina o Nome como asia-loadtest.

    4. Em Região, selecione asia-east1.

    5. Expanda a seção Opções avançadas.

    6. Expanda a seção Gerenciamento.

    7. Na seção Automação, insira o seguinte script de inicialização:

      apt -y install siege
      

    8. Clique em Criar.

  2. Para conferir o endereço IP do balanceador de carga, faça o seguinte:

    1. No Console do Google Cloud, acesse a página Balanceamento de carga.

      Acessar o "Balanceamento de carga"

    2. Clique em fortressnet-balancer.

    3. Em Front-end, copie o endereço IPV4 na coluna IP:Porta. Os endereços IPV4 têm o formato www.xxx.yyy.zzz.

  3. Conecte-se via SSH à instância de teste de carga.

    1. Aguarde até que a instância asia-loadtest tenha uma marca de seleção verde na coluna Nome.
    2. Clique em SSH em asia-loadtest na coluna Conectar.
  4. Inicie o Siege. Indique o endereço IPV4 do balanceador de carga.

    siege -c150 http://LOAD_BALANCER_IP_ADDRESS
    

gcloud

  1. Na sessão de shell original, crie outra instância instalada com a ferramenta de teste de carga Siege.

    gcloud compute instances create asia-loadtest \
        --network default \
        --zone asia-east1-c \
        --metadata startup-script='apt -y install siege'
    
  2. Consiga o endereço IPV4 do balanceador de carga.

    gcloud compute addresses list
    
  3. Abra uma nova sessão de shell em que o comando gcloud esteja disponível.

    1. Na nova sessão de shell, conecte-se via SSH à instância de teste de carga.

      gcloud compute ssh --zone asia-east1-c asia-loadtest
      
    2. Inicie o Siege. Indique o endereço IPV4 do balanceador de carga.

      siege -c150 http://LOAD_BALANCER_IP_ADDRESS
      

Novamente, a resposta declarará The server is now under siege...

[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 150 concurrent users for battle.
The server is now under siege...

Monitorar o balanceamento de carga e o escalonamento automático

Volte para a exibição de monitoramento do balanceamento de carga da última vez. Pode levar até dez minutos para que novos dados suficientes sejam exibidos. Em breve, você verá uma exibição semelhante à seguinte:

Tela de monitoramento do console do Google Cloud que mostra solicitações da Europa e da Ásia distribuídas entre os três back-ends

O que está acontecendo:

  1. Novamente, o teste de carga envia um grande número de solicitações de uma só vez. Inicialmente, o balanceador de carga distribui solicitações igualmente entre os três back-ends atuais. Como o número de solicitações excede seus limites de escalonamento automático, o autoescalador começa a ativar instâncias adicionais conforme necessário.

  2. O escalonamento automático alcança as novas necessidades de capacidade. O balanceador de carga ainda prefere direcionar as solicitações para os back-ends mais próximos disponíveis. Como resultado, eventualmente o back-end da Ásia recebe solicitações principalmente da Ásia, o back-end da Europa recebe solicitações principalmente da Europa, e o back-end dos EUA recebe todo o resto.

Limpar

Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Como excluir instâncias

Para excluir uma instância do Compute Engine, faça o seguinte:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

A seguir