Checkpoints
Create a GCS bucket
/ 25
Create an instance template
/ 25
Create an instance group
/ 25
Configure autoscaling for the instance group
/ 25
Como fazer o escalonamento automático de um grupo de instâncias com as métricas personalizadas do Cloud Monitoring
- GSP087
- Informações gerais
- Objetivos
- Configuração e requisitos
- Tarefa 1: crie o aplicativo
- Tarefa 2: crie um bucket
- Tarefa 3: crie um modelo de instância
- Tarefa 4: crie o grupo de instâncias
- Tarefa 5: como verificar se o grupo de instâncias foi criado
- Tarefa 6: como verificar se o script em Node.js está em execução
- Tarefa 7: configurar o escalonamento automático para os grupos de instâncias
- Tarefa 8: como observar o escalonamento automático no grupo de instâncias
- Tarefa 9: exemplo de escalonamento automático
- Parabéns!
GSP087
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:
- Modelo de instância do Compute Engine: um modelo usado para criar cada instância no grupo.
- Cloud Storage: um bucket usado para hospedar o script de inicialização e outros arquivos de script.
- 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.
- Grupo de instâncias do Compute Engine: é escalonado automaticamente com base no valor das métricas de monitoramento do Cloud.
- Instâncias do Compute Engine: é um número variável.
- Métrica personalizada do Cloud Monitoring: é usada como valor de entrada para o escalonamento automático do grupo de instâncias do Compute Engine.
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).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
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ê vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
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. -
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}} Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}} Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais. -
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 Google Cloud será aberto nesta guia.
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.
- Clique em 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:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
-
Clique em Autorizar.
-
A saída será parecida com esta:
Saída:
- (Opcional) É possível listar o ID do projeto usando este comando:
Saída:
Exemplo de saí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.
Tarefa 2: crie um bucket
-
No console do Cloud, em Menu de navegação, selecione Cloud Storage > Buckets e clique em Criar.
-
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. -
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.
- 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:
- 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 emwriteToCustomMetric.js
. -
Package.json
: um arquivo de pacote em Node.js que especifica a instalação padrão e as dependências dewriteToCustomMetric.js
. -
writeToCustomMetric.sh
: um script de shell que executa continuamente o programawriteToCustomMetric.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.
-
No console do Cloud, clique em Menu de navegação > Compute Engine > Modelos de instância.
-
Clique em Criar modelo de instância na parte superior da página.
-
Nomeie o modelo de instância como
autoscaling-instance01
. -
Role para baixo e clique em Opções avançadas.
-
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] |
- 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.
Tarefa 4: crie o grupo de instâncias
-
No painel à esquerda, clique em Grupos de instâncias.
-
Clique em Criar grupo de instâncias na parte superior da página.
-
Nome:
autoscaling-instance-group-1
. -
Em Modelo de instância, selecione o modelo de instância que você acabou de criar.
-
Em Local, selecione Única zona e use
e , respectivamente, para a região e a zona. -
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.
- Clique em Criar.
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.
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.
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.
-
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. -
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.
-
Na seção Registros da guia Detalhes, clique no link Logging a fim de exibir os registros da instância de VM.
-
Aguarde alguns minutos para que alguns dados sejam acumulados. Ative Mostrar consulta para que
resource.type
eresource.labels.instance_id
apareçam na caixa de visualização Consulta.
- Adicione
"nodeapp"
como a linha 3 para que o código seja semelhante ao seguinte:
- 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.
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.
-
No console do Cloud, acesse Compute Engine > Grupos de instâncias.
-
Clique no grupo
autoscaling-instance-group-1
. -
Clique em Editar.
-
Em Escalonamento automático, defina Modo de escalonamento automático como Ativado: adicionar e remover instâncias do grupo.
-
Defina Número mínimo de instâncias como
1
e Número máximo de instâncias como3
. -
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.
-
Tipo de sinal:
-
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.
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.
- No painel à esquerda, clique em Grupos de instâncias.
- Clique no grupo de instâncias
builtin-igm
da lista. - Clique na guia Monitoramento.
- 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.
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:
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
- Saiba mais sobre o Cloud Monitoring
- Saiba mais sobre as métricas personalizadas de monitoramento do Cloud
- Saiba mais sobre escalonamento automático com o Compute Engine
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.