arrow_back

Como fazer o escalonamento automático de um grupo de instâncias com as métricas personalizadas do Cloud Monitoring

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Como fazer o escalonamento automático de um grupo de instâncias com as métricas personalizadas do Cloud Monitoring

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP087

Laboratórios autoguiados do Google Cloud

Informações gerais

Neste laboratório, você vai criar um grupo gerenciado de instâncias do Compute Engine em que o escalonamento automático ocorre com base no valor de uma métrica personalizada do Cloud Monitoring.

Arquitetura do aplicativo

O aplicativo de escalonamento automático usa um script em Node.js instalado nas instâncias do Compute Engine. O script informa um valor numérico para uma métrica de monitoramento do Cloud. Você não precisa ter conhecimento de Node.js ou de JavaScript para este laboratório. Em resposta ao valor da métrica, o aplicativo escalona automaticamente o grupo de instâncias do Compute Engine, aumentando ou reduzindo conforme necessário.

O script em Node.js é usado para sugerir uma métrica personalizada com valores a que o grupo de instâncias pode responder. Em um ambiente de produção, o escalonamento automático deve ser baseado em uma métrica que seja relevante ao uso.

O aplicativo inclui os componentes a seguir:

  1. Modelo de instância do Compute Engine: um modelo usado para criar cada instância no grupo.
  2. Cloud Storage: um bucket usado para hospedar o script de inicialização e outros arquivos de script.
  3. Script de inicialização do Compute Engine: instala os componentes de código necessários em cada instância. Ele é instalado e ativado automaticamente quando uma instância é iniciada. Quando o script de inicialização é executado, ele instala e inicia o código na instância que grava os valores na métrica personalizada de monitoramento do Cloud.
  4. Grupo de instâncias do Compute Engine: é escalonado automaticamente com base no valor das métricas de monitoramento do Cloud.
  5. Instâncias do Compute Engine: é um número variável.
  6. Métrica personalizada do Cloud Monitoring: é usada como valor de entrada para o escalonamento automático do grupo de instâncias do Compute Engine.

Diagrama da arquitetura do laboratório

Objetivos

Neste laboratório, você vai aprender a:

  • Implantar um grupo de instâncias do Compute Engine com escalonamento automático.
  • Criar uma métrica personalizada que será usada para escalonar o grupo de instâncias.
  • Usar o console do Cloud para exibir a métrica personalizada e o tamanho do grupo de instâncias.

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Tarefa 1: crie o aplicativo

Para criar o aplicativo de escalonamento automático, você precisa fazer o download dos componentes de código necessários, criar um grupo gerenciado de instâncias e configurar o escalonamento automático para esse grupo.

Como fazer upload dos arquivos de script para o Cloud Storage

Durante o escalonamento automático, o grupo de instâncias precisará criar novas instâncias do Compute Engine. Nesse caso, ele cria as instâncias com base em um modelo. Cada instância precisa de um script de inicialização. Para isso, é necessário que o modelo consulte esse script. O Compute Engine é compatível com o uso de buckets do Cloud Storage como uma origem do script de inicialização. Nesta seção, você vai copiar o script de inicialização e os arquivos de um aplicativo de exemplo que é usado no laboratório para enviar um padrão de dados a uma métrica personalizada do Cloud Logging. Depois, você vai configurar essa métrica para controlar o escalonamento automático de um grupo.

Observação: um modelo de instância preexistente e um grupo criados automaticamente pelo laboratório já estão em execução. O escalonamento automático requer pelo menos 30 minutos para demonstrar os aumentos e reduções. Você analisará esse grupo mais tarde para conferir como o escalonamento é controlado pelas variações nos valores da métrica personalizada, gerados pelos scripts dessa métrica.

Tarefa 2: crie um bucket

  1. No console do Cloud, em Menu de navegação, selecione Cloud Storage > Buckets e clique em Criar.

  2. Dê ao bucket um nome exclusivo, mas não use um nome que você queira usar em outro projeto. Para saber como nomear um bucket, consulte as diretrizes para nomeação de buckets. É possível usar o ID do projeto para o bucket. Este bucket será mencionado como YOUR_BUCKET em todo o laboratório.

  3. Aceite os valores padrão e clique em Criar.

Se for solicitado, clique em Confirmar no pop-up O acesso público será impedido.

Quando o bucket for criado, a página Detalhes do bucket será aberta.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se o bucket do Cloud Storage foi criado, você recebe uma pontuação de avaliação.

Crie um bucket do Cloud Storage
  1. Depois, execute o comando a seguir no Cloud Shell a fim de copiar os arquivos do script de inicialização do bucket padrão do laboratório do Cloud Storage para o bucket do Cloud Storage. Substitua <YOUR BUCKET> pelo nome do bucket que você criou:
gsutil cp -r gs://spls/gsp087/* gs://<YOUR BUCKET>
  1. Depois do upload dos scripts, clique em Atualizar na página Detalhes do bucket. Os arquivos adicionados vão aparecer listados no bucket.

Noções básicas sobre os componentes do código

  • Startup.sh: um script de shell que instala os componentes necessários em cada instância do Compute Engine assim que ela é adicionada ao grupo gerenciado de instâncias.
  • writeToCustomMetric.js: um snippet em Node.js que cria uma métrica de monitoramento personalizada com um valor que aciona o escalonamento. Para emular valores de métrica reais, esse script varia o valor ao longo do tempo. Em uma implantação de produção, substitua esse script pelo código personalizado que informa a métrica de monitoramento do seu interesse, como um valor de fila de processamento.
  • Config.json: um arquivo de configuração em Node.js que especifica os valores da métrica de monitoramento personalizada e é usado em writeToCustomMetric.js.
  • Package.json: um arquivo de pacote em Node.js que especifica a instalação padrão e as dependências de writeToCustomMetric.js.
  • writeToCustomMetric.sh: um script de shell que executa continuamente o programa writeToCustomMetric.js em cada instância do Compute Engine.

Tarefa 3: crie um modelo de instância

Agora você vai criar um modelo que usa escalonamento automático para as instâncias do grupo de instâncias. Como parte do modelo, especifique o local (no Cloud Storage) do script de inicialização que precisará ser executado quando a instância for iniciada.

  1. No console do Cloud, clique em Menu de navegação > Compute Engine > Modelos de instância.

  2. Clique em Criar modelo de instância na parte superior da página.

  3. Nomeie o modelo de instância como autoscaling-instance01.

  4. Role para baixo e clique em Opções avançadas.

  5. Na seção Metadados da guia Gerenciamento, insira as chaves e os valores de metadados e clique no botão + Adicionar item para adicionar cada um deles. Lembre-se de substituir o marcador de posição [YOUR_BUCKET_NAME] pelo nome do bucket:

Chave Valor
startup-script-url gs://[YOUR_BUCKET_NAME]/startup.sh
gcs-bucket gs://[YOUR_BUCKET_NAME]

Página &quot;Metadados&quot;

  1. Clique em Criar.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver criado um modelo de instância, verá uma pontuação de avaliação.

Crie um modelo de instância

Tarefa 4: crie o grupo de instâncias

  1. No painel à esquerda, clique em Grupos de instâncias.

  2. Clique em Criar grupo de instâncias na parte superior da página.

  3. Nome: autoscaling-instance-group-1.

  4. Em Modelo de instância, selecione o modelo de instância que você acabou de criar.

  5. Em Local, selecione Única zona e use e , respectivamente, para a região e a zona.

  6. Defina Modo de escalonamento automático como Desativado: não fazer o escalonamento automático.

Você vai editar a configuração de escalonamento automático após a criação do grupo de instâncias. Mantenha os valores padrão das outras configurações.

  1. Clique em Criar.
Observação: é possível ignorar o aviso Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. ao lado do grupo de instâncias.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver criado um grupo de instâncias, verá uma pontuação de avaliação.

Crie um grupo de instâncias

Tarefa 5: como verificar se o grupo de instâncias foi criado

Aguarde até que apareça uma marca de seleção verde ao lado do novo grupo de instâncias que você acabou de criar. O script de inicialização pode levar alguns minutos para concluir a instalação e começar a informar os valores. Clique em Atualizar se estiver demorando mais do que alguns minutos.

Observação: se um ícone vermelho aparecer ao lado do outro grupo de instâncias que foi pré-criado pelo laboratório, ignore o aviso. Esse é o comportamento esperado pelo grupo de instâncias, que emite um alerta por até 10 a 15 minutos durante a inicialização.

Tarefa 6: como verificar se o script em Node.js está em execução

A métrica personalizada custom.googleapis.com/appdemo_queue_depth_01 só é criada depois que a primeira instância do grupo for criada e começar a informar os valores dessa métrica.

Para verificar se o script writeToCustomMetric.js está sendo executado na primeira instância do grupo, confira se a instância está registrando os valores da métrica personalizada.

  1. Ainda na janela "Grupos de instâncias" do Compute Engine, clique no nome do autoscaling-instance-group-1 para exibir as instâncias que estão em execução nele.

  2. Role para baixo e clique no nome da instância. Como o escalonamento automático não iniciou instâncias adicionais, somente uma instância está em execução.

  3. Na seção Registros da guia Detalhes, clique no link Logging a fim de exibir os registros da instância de VM.

  4. Aguarde alguns minutos para que alguns dados sejam acumulados. Ative Mostrar consulta para que resource.type e resource.labels.instance_id apareçam na caixa de visualização Consulta.

 Caixa de visualização &quot;Consulta&quot;

  1. Adicione "nodeapp" como a linha 3 para que o código seja semelhante ao seguinte:

Linha 1: resource.type=&quot;gce.instance&quot;. Linha 2: resource.labels.instance_id=&quot;4519089149916136834&quot;. Linha 3: &quot;nodeapp&quot;

  1. Clique em Executar consulta.

Se o script em Node.js estiver em execução na instância do Compute Engine, uma solicitação será enviada à API, e as entradas de registro com o texto nodeapp: available vão aparecer.

Observação: quando essa entrada de registro não é mostrada, isso significa que o script em Node.js não está relatando os valores da métrica personalizada. Verifique se os metadados foram inseridos corretamente. Se os metadados estiverem incorretos, talvez seja mais fácil reiniciar o laboratório. Pode levar cerca de 10 minutos para que o app seja iniciado.

Tarefa 7: configurar o escalonamento automático para os grupos de instâncias

Depois que você verificar se a métrica personalizada está relatando dados da primeira instância, o grupo de instâncias poderá ser configurado para ser escalonado automaticamente com base no valor da métrica personalizada.

  1. No console do Cloud, acesse Compute Engine > Grupos de instâncias.

  2. Clique no grupo autoscaling-instance-group-1.

  3. Clique em Editar.

  4. Em Escalonamento automático, defina Modo de escalonamento automático como Ativado: adicionar e remover instâncias do grupo.

  5. Defina Número mínimo de instâncias como 1 e Número máximo de instâncias como 3.

  6. Em Sinais de escalonamento automático, clique em ADICIONAR SINAL para editar a métrica. Defina os campos a seguir e deixe todos os demais com o valor padrão.

    • Tipo de sinal: Cloud Monitoring metric new. Clique em Configurar.
    • Em Recurso e métrica, clique em SELECIONAR UMA MÉTRICA e acesse Instância de VM > Métricas personalizadas > Custom/appdemo_queue_depth_01.
    • Clique em Aplicar.
    • Meta de utilização: 150

    Quando os valores das métricas de monitoramento personalizadas são maiores ou menores do que o valor da Meta, o escalonador automático faz o escalonamento do grupo gerenciado de instâncias, aumentando ou reduzindo o número de instâncias. A meta pode ter qualquer valor duplo. Neste laboratório, o valor 150 foi escolhido por corresponder aos valores relatados pela métrica de monitoramento personalizada.

    • Tipo de meta de utilização: Gauge. Clique em Selecionar.

    A configuração Medidor especifica que o escalonador automático precisa calcular o valor médio dos dados coletados nos últimos minutos e compará-lo com o valor da meta. Por outro lado, definir Modo da meta como DELTA_PER_MINUTE ou DELTA_PER_SECOND resulta em um escalonamento automático baseado na taxa de alteração observada, e não em um valor médio.

  7. Clique em Salvar.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver configurado o escalonamento automático para o grupo de instâncias, verá uma pontuação de avaliação.

Configure o escalonamento automático para o grupo de instâncias

Tarefa 8: como observar o escalonamento automático no grupo de instâncias

Às vezes, o script em Node.js varia os valores da métrica personalizada que ele informa de cada instância. À medida que o valor da métrica aumenta, o grupo de instâncias expande com a adição de instâncias do Compute Engine. Se o valor diminuir, o grupo de instâncias detectará a alteração e diminuirá removendo instâncias. Conforme mencionado antes, o script emula uma métrica real cujo valor também pode aumentar e diminuir.

Em seguida, você vai aprender como o grupo de instâncias é escalonado em resposta à métrica clicando na guia Monitoramento, a fim de exibir o gráfico Tamanho com escalonamento automático.

  1. No painel à esquerda, clique em Grupos de instâncias.
  2. Clique no grupo de instâncias builtin-igm da lista.
  3. Clique na guia Monitoramento.
  4. Ative a Atualização automática.

Como esse grupo de instâncias teve uma vantagem, será possível conferir os detalhes do escalonamento automático desse grupo no gráfico de escalonamento automático. O escalonador automático reconhece corretamente a métrica personalizada em cerca de cinco minutos e pode levar até 10 a 15 minutos para o script gerar dados suficientes a fim de acionar o escalonamento automático.

Página com a guia &quot;Monitoramento&quot; exibindo dois gráficos de monitoramento

Passe o mouse sobre os gráficos para exibir mais detalhes.

Você pode voltar ao grupo de instâncias que criou para analisar o desempenho (talvez não haja tempo suficiente no laboratório para conferir o escalonamento automático do grupo de instâncias).

Durante o restante do tempo do laboratório, você vai analisar aumentos e reduções no gráfico de escalonamento automático conforme as instâncias são adicionadas e removidas.

Tarefa 9: exemplo de escalonamento automático

Neste exemplo de escalonamento automático, confira como a capacidade e o número de instâncias com escalonamento automático podem funcionar em um ambiente maior.

O número de instâncias representadas no gráfico superior muda como resultado do nível variável de agregação dos valores de propriedade da métrica personalizada informados no gráfico inferior. Há um pequeno atraso de até cinco minutos depois que cada instância é iniciada, antes de relatar os valores da métrica personalizada. Enquanto o escalonamento automático é iniciado, confira este gráfico para entender o que vai acontecer:

Página com a guia &quot;Membros&quot; exibindo um gráfico com diversos pontos de dados

O script começa gerando valores altos por aproximadamente 15 minutos para acionar o comportamento de escalonamento vertical.

  • 11:27 O grupo de escalonamento automático começa com uma única instância. A meta da métrica personalizada agregada é 150.
  • 11:31 Os dados iniciais da métrica são adquiridos. Como a métrica é maior do que 150, o grupo de escalonamento automático inicia uma segunda instância.
  • 11:33 Os dados da métrica personalizada da segunda instância começam a ser adquiridos. A meta agregada agora é 300. Como o valor da métrica está acima de 300, o grupo de escalonamento automático inicia a terceira instância.
  • 11:37 Os dados da métrica personalizada da terceira instância começam a ser adquiridos. A meta agregada agora é 450. Como o valor da métrica cumulativa está acima de 450, o grupo de escalonamento automático inicia a quarta instância.
  • 11:42 Os dados da métrica personalizada da quarta instância começam a ser adquiridos. A meta agregada agora é 600. O valor da métrica cumulativa agora está acima de 600, o novo nível da meta. Porém, como o limite de tamanho do grupo de escalonamento automático foi atingido, não haverá nenhum escalonamento vertical adicional.
  • 11:44 O script do aplicativo mudou para um período de métrica baixo de 15 minutos. Embora o valor da métrica cumulativa esteja abaixo da meta de 600, é necessário aguardar dez minutos para a redução integrada antes de fazer alterações.
  • 11:54 Os dados da métrica personalizada agora estão abaixo de 600, o nível da meta agregada, por mais de 10 minutos para um cluster de quatro nós. A redução removerá duas instâncias em rápida sucessão.
  • 11:56 Os dados da métrica personalizada dos nós removidos são eliminados do cálculo de escalonamento automático, e a meta agregada é reduzida para 300.
  • 12:00 O script do aplicativo voltou para um período de métrica alto de 15 minutos. O valor da métrica personalizada cumulativa ultrapassou novamente o nível da meta agregada de 300. Portanto, o grupo de escalonamento automático inicia uma terceira instância.
  • 12:03 Os dados da métrica personalizada da nova instância foram adquiridos, mas os valores cumulativos informados permanecem abaixo da meta de 450. Portanto, o escalonamento automático não faz alterações.
  • 12:04 Os valores cumulativos da métrica personalizada ultrapassam a meta de 450, portanto, o escalonamento automático inicia a quarta instância.

Parabéns!

Parabéns! Neste laboratório, você criou um grupo gerenciado de instâncias do Compute Engine em que o escalonamento automático ocorre com base no valor de uma métrica personalizada do Cloud Monitoring. Você também aprendeu a usar o console do Cloud para exibir a métrica personalizada e o tamanho do grupo de instâncias.

Próximas etapas/Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 7 de fevereiro de 2024

Laboratório testado em 7 de fevereiro de 2024

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.