Este documento fornece instruções para configurar balanceadores de carga HTTP e de rede no Google Cloud Platform. Ele explica como configurar pools de destino, regras de encaminhamento e verificações de integridade para distribuir tráfego entre instâncias de máquina virtual de forma balanceada.
2. Visão geral
Neste laboratório prático, você aprenderá as diferenças entre os balanceadores de carga HTTP e de
rede e a configurá-los para aplicativos em execução nas máquinas virtuais (VMs) do Compute
Engine.
Há várias maneiras de balancear a carga no Google Cloud. Este laboratório mostra as etapas de
configuração dos seguintes balanceadores de carga:
Balanceador de carga de rede
Balanceador de carga HTTP(S)
Recomendamos que os alunos digitem os comandos para aprender os principais conceitos. Muitos
laboratórios incluem um bloco de código com os comandos necessários. Você pode copiar e colar os
comandos desse bloco onde for apropriado durante o laboratório.
Atividades deste laboratório
Configurar um balanceador de carga de rede
Configurar um balanceador de carga HTTP
Aprender, na prática, as diferenças entre eles
Configuração
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 ficarão disponíveis.
3. Este laboratório prático do Qwiklabs permite que você realize as atividades em um ambiente real de
nuvem, não em uma simulação ou demonstração. Você receberá novas credenciais temporárias para
fazer login e acessar o Google Cloud durante o laboratório.
O que é necessário
Para fazer este laboratório, você precisa ter:
acesso a um navegador de Internet padrão (recomendamos o Chrome);
tempo para concluir as atividades.
Observação: não use seu projeto ou sua conta do Google Cloud neste laboratório.
Observação: se estiver usando um dispositivo Chrome OS, abra uma janela anônima para executar
o laboratório.
Como começar o laboratório e fazer login no Console
1. Clique no botão Começar o laboratório. Se for preciso pagar pelo laboratório, você verá um pop-
up para selecionar a forma de pagamento. Um painel é exibido à esquerda contendo as credenciais
temporárias que você deve usar para o laboratório.
2. Copie o nome de usuário e clique em Abrir Console do Google. O laboratório inicia os recursos e
depois abre a página Escolher uma conta em outra guia.
Dica: abra as guias em janelas separadas, lado a lado.
4. 3. Na página "Escolher uma conta", clique em Usar outra conta.
4. A página de login é aberta. Cole o nome de usuário que foi copiado do painel "Detalhes da
conexão". Em seguida, copie e cole a senha.
Importante: é preciso usar as credenciais do painel "Detalhes da conexão". Não use as credenciais
do Qwiklabs. Não use sua conta pessoal do GCP, caso tenha uma, neste laboratório (isso evita
cobranças).
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 avaliações gratuitas.
Depois de alguns instantes, o Console do GCP será aberto nesta guia.
Observação: para ver o menu com uma lista dos produtos e serviços do GCP, clique em Menu de
navegação no canto superior esquerdo, ao lado de "Google Cloud
5. Platform".
Ative o Google Cloud Shell
O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele conta com
um diretório principal permanente de 5 GB e é executado no Google Cloud. O Google Cloud Shell
permite acesso de linha de comando aos seus recursos do GCP.
1. No Console do GCP, na barra de ferramentas superior direita, clique no botão Abrir o Cloud Shell.
2. Clique em Continue (continuar):
6. Demora alguns minutos para provisionar e conectar-se ao ambiente. Quando você está conectado,
você já está autenticado e o projeto é definido como seu PROJECT_ID . Por exemplo:
gcloud é a ferramenta de linha de comando do Google Cloud Platform. Ele vem pré-instalado no
Cloud Shell e aceita preenchimento com tabulação.
É possível listar o nome da conta ativa com este comando:
gcloud auth list
content_copy
Saída:
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
content_copy
Exemplo de saída:
7. Credentialed accounts:
- google1623327_student@qwiklabs.net
content_copy
É possível listar o ID de projeto com este comando:
gcloud config list project
content_copy
Saída:
[core]
project = <project_ID>
content_copy
Exemplo de saída:
[core]
project = qwiklabs-gcp-44776a13dea667a6
content_copy
gcloud está disponível na página Visão geral do gcloud do Google Cloud.
Tarefa 1: defina a região e a zona padrão para
todos os recursos
1. Defina a zona padrão no Cloud Shell:
gcloud config set compute/zone us-central1-a
content_copy
2. Defina a região padrão:
gcloud config set compute/region us-central1
content_copy
Saiba mais sobre como escolher zonas e regiões na documentação Regiões e zonas.
8. Tarefa 2: crie várias instâncias de servidor da
Web
Neste cenário de balanceamento de carga, crie três instâncias de VM do Compute Engine. Nelas,
instale o Apache e adicione uma regra de firewall que permita a chegada do tráfego HTTP.
1. Crie três novas máquinas virtuais na zona padrão e atribua a mesma tag a elas. O código
apresentado define a zona como us-central1-a. Com a configuração do campo de tags, é possível
mencionar todas essas instâncias simultaneamente, assim como acontece nas regras de firewall.
Esses comandos também instalam o Apache em todas as instâncias e atribuem uma página inicial
exclusiva a cada uma delas.
gcloud compute instances create www1
--image-family debian-9
--image-project debian-cloud
--zone us-central1-a
--tags network-lb-tag
--metadata startup-script="#!/bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
content_copy
gcloud compute instances create www2
--image-family debian-9
--image-project debian-cloud
--zone us-central1-a
--tags network-lb-tag
--metadata startup-script="#!/bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
content_copy
gcloud compute instances create www3
--image-family debian-9
--image-project debian-cloud
--zone us-central1-a
--tags network-lb-tag
9. --metadata startup-script="#!/bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
content_copy
2. Crie uma regra de firewall para permitir o tráfego externo para as instâncias de VM:
gcloud compute firewall-rules create www-firewall-network-lb
--target-tags network-lb-tag --allow tcp:80
content_copy
Agora você precisa dos endereços IP externos das instâncias para verificar se elas estão em
execução.
3. Execute o comando a seguir para listá-las. Os endereços IP aparecem na coluna EXTERNAL_IP:
gcloud compute instances list
content_copy
4. Verifique se cada instância está sendo executada com curl e substitua [IP_ADDRESS] pelo
endereço IP de cada uma das VMs:
curl http://[IP_ADDRESS]
content_copy
Verifique seu progresso no laboratório
Clique em Verificar meu progresso abaixo para conferir se você criou um grupo de servidores da
Web.
10. Tarefa 3: configure o serviço de balanceamento de
carga
Ao configurar o serviço de balanceamento de carga, as instâncias de máquina virtual recebem os
pacotes destinados ao endereço IP externo estático definido. As instâncias criadas com uma imagem
do Compute Engine são configuradas automaticamente para lidar com esse endereço IP.
Como configurar o balanceamento de carga de rede.
1. Crie um endereço IP externo estático para o balanceador de carga.
gcloud compute addresses create network-lb-ip-1
--region us-central1
content_copy
(Saída)
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/us-
central1/addresses/network-lb-ip-1].content_copy
2. Adicione um recurso legado de verificação de integridade HTTP.
gcloud compute http-health-checks create basic-check
content_copy
3. Adicione um pool de destino na mesma região de suas instâncias. Execute o comando a seguir para
criar o pool de destino e usar a verificação de integridade necessária para o funcionamento do
serviço:
gcloud compute target-pools create www-pool
--region us-central1 --http-health-check basic-check
content_copy
4. Adicione as instâncias ao pool:
gcloud compute target-pools add-instances www-pool
--instances www1,www2,www3
content_copy
5. Adicione uma regra de encaminhamento:
gcloud compute forwarding-rules create www-rule
--region us-central1
11. --ports 80
--address network-lb-ip-1
--target-pool www-pool
content_copy
Verifique seu progresso no laboratório
Clique em Verificar meu progresso abaixo e veja se um balanceador de carga de rede L4 foi criado
para os servidores da Web.
Tarefa 4: envie tráfego para as instâncias
Agora que o serviço de balanceamento de carga foi configurado, comece a enviar tráfego para a
regra de encaminhamento e veja a distribuição dele por instâncias diferentes.
Execute o comando a seguir para visualizar o endereço IP externo da regra de encaminhamento
www-rule usada pelo balanceador de carga:
gcloud compute forwarding-rules describe www-rule --region us-central1
content_copy
Use o comando curl para acessar o endereço IP externo e substitua IP_ADDRESS por um endereço
IP externo do comando anterior:
while true; do curl -m1 IP_ADDRESS; done
content_copy
A resposta do comando curl alterna de forma aleatória entre as três instâncias. Se ocorrer alguma
falha, aguarde cerca de 30 segundos até que a configuração esteja totalmente carregada e suas
instâncias marcadas como íntegras antes de tentar novamente.
Use Ctrl + c para interromper a execução do comando.
12. Tarefa 5: crie um balanceador de carga HTTP
O balanceamento de carga HTTP(S) é implementado no Google Front End (GFE). Os GFEs são
distribuídos globalmente e funcionam em conjunto usando a rede global e o plano de controle do
Google. Você pode configurar regras que direcionem as URLs para conjuntos de instâncias
diferentes. As solicitações são sempre direcionadas ao grupo de instâncias mais próximo do usuário,
desde que ele tenha capacidade suficiente e seja adequado para elas. Se não tiver capacidade
suficiente, elas serão enviadas ao grupo mais próximo seguinte com capacidade.
Para configurar um balanceador de carga com um back-end do Compute Engine, suas VMs
precisam estar em um grupo de instâncias. O grupo gerenciado de instâncias fornece VMs que
executam os servidores de back-end de um balanceador de carga HTTP externo. Neste laboratório,
os back-ends exibem os próprios nomes de host.
1. Crie primeiro o modelo do balanceador de carga:
gcloud compute instance-templates create lb-backend-template
--region=us-central1
--network=default
--subnet=default
--tags=allow-health-check
--image-family=debian-9
--image-project=debian-cloud
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google"
http://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" |
tee /var/www/html/index.html
systemctl restart apache2'
content_copy
2. Crie o grupo gerenciado de instâncias com base no modelo.
gcloud compute instance-groups managed create lb-backend-group
13. --template=lb-backend-template --size=2 --zone=us-central1-a
content_copy
3. Crie a regra de firewall fw-allow-health-check. Ela é uma regra de entrada que permite o tráfego dos
sistemas de verificação de integridade do Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Este
laboratório usa a tag de destino allow-health-check para identificar as VMs.
gcloud compute firewall-rules create fw-allow-health-check
--network=default
--action=allow
--direction=ingress
--source-ranges=130.211.0.0/22,35.191.0.0/16
--target-tags=allow-health-check
--rules=tcp:80
content_copy
4. Agora que as instâncias estão funcionando, configure um endereço IP externo, estático e global que
seus clientes podem usar para acessar o balanceador de carga.
gcloud compute addresses create lb-ipv4-1
--ip-version=IPV4
--global
content_copy
Anote o endereço IPv4 que foi reservado:
gcloud compute addresses describe lb-ipv4-1
--format="get(address)"
--global
content_copy
5. Crie uma verificação de integridade para o balanceador de carga:
gcloud compute health-checks create http http-basic-check
--port 80
content_copy
6. Crie um serviço de back-end:
gcloud compute backend-services create web-backend-service
--protocol=HTTP
--port-name=http
--health-checks=http-basic-check
--global
content_copy
7. Adicione seu grupo de instâncias como back-end do serviço de back-end:
14. gcloud compute backend-services add-backend web-backend-service
--instance-group=lb-backend-group
--instance-group-zone=us-central1-a
--global
content_copy
8. Crie um mapa de URLs para encaminhar as solicitações recebidas ao serviço de back-end padrão:
gcloud compute url-maps create web-map-http
--default-service web-backend-service
content_copy
9. Crie um proxy HTTP de destino para encaminhar as solicitações ao mapa de URLs:
gcloud compute target-http-proxies create http-lb-proxy
--url-map web-map-http
content_copy
10. Crie uma regra de encaminhamento global para encaminhar as solicitações recebidas para o
proxy:
gcloud compute forwarding-rules create http-content-rule
--address=lb-ipv4-1
--global
--target-http-proxy=http-lb-proxy
--ports=80
content_copy
Verifique seu progresso no laboratório
Clique em Verificar meu progresso abaixo para conferir se você criou um balanceador de carga
HTTP(S) L7.
15. Tarefa 6: teste o tráfego enviado às instâncias
1. No Console do Cloud, em Menu de navegação, acesse Serviços de rede > Balanceamento de
carga.
2. Clique no balanceador de carga que você acabou de criar (web-map-http).
3. Na seção Back-end, clique no nome do back-end e confirme se as VMs estão Íntegras. Se não
estiverem, espere alguns instantes e tente recarregar a página.
4. Quando finalmente estiverem íntegras, teste o balanceador de carga com um navegador da Web.
Acesse http://IP_ADDRESS/ e substitua IP_ADDRESS pelo endereço IP do balanceador de carga.
Isso talvez leve de três a cinco minutos. Se a conexão falhar, aguarde um minuto e atualize o
navegador.
O navegador deve renderizar uma página que mostra o nome e a zona da instância que a forneceu,
por exemplo, Page served from: lb-backend-group-xxxx.
Parabéns!
Você criou um balanceador de carga HTTP(S) e um de rede. Além disso, praticou o uso de modelos
de instância e grupos gerenciados de instâncias.
16. Termine a Quest
Este laboratório autoguiado faz parte da Quest Google Cloud Essentials do Qwiklabs. Uma Quest é
uma série de laboratórios relacionados que formam o programa de aprendizado. Concluir esta Quest
dá a você o selo acima como reconhecimento da sua conquista. Você pode publicar os selos e incluir
um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se nesta Quest e receba
crédito de conclusão imediatamente por fazer este laboratório. Veja outras Quests do Qwiklabs.
Comece o próximo laboratório
Continue sua Quest com Hello Node Kubernetes ou confira estas sugestões:
Provisionar serviços com o Google Cloud Marketplace
Cloud Monitoring: Qwik Start
Próximas etapas/Saiba mais
Como configurar um balanceador de carga de rede com um serviço de back-end
Como configurar um balanceador de carga HTTPS externo simples
Visão geral do balanceamento de carga de HTTP(S) externo
17. Treinamento e certificação do Google Cloud
...ajuda 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 ajudam você a validar e
comprovar suas habilidades e conhecimentos das tecnologias do Google Cloud.
Manual atualizado em 22 de dezembro de 2020
Laboratório testado em 22 de dezembro de 2020
Copyright 2020 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.
Continuar a Quest
Compute Engine: Qwik Start — Windows