Checkpoints
Configure HTTP and health check firewall rules
/ 25
Configure instance templates and instance group
/ 25
Configure the HTTP Load Balancer
/ 25
Blacklist the siege-vm
/ 25
Balanceador de carga HTTP com Cloud Armor
- GSP215
- Visão geral
- Configuração e requisitos
- Tarefa 1. Configure regras de firewall de verificação de integridade e HTTP
- Tarefa 2: Configure os modelos e crie grupos de instâncias
- Tarefa 3: Configure o balanceador de carga HTTP
- Tarefa 4: Teste o balanceador de carga HTTP
- Tarefa 5. Adicione siege-vm à lista de bloqueio
- Parabéns!
GSP215
Visão geral
O balanceamento de carga HTTP(S) do Google Cloud é implementado nos pontos de presença (POP) na borda da rede do Google no mundo inteiro. O tráfego de usuários direcionado para um balanceador de carga HTTP(S) entra no POP mais próximo e a carga dele é balanceada na rede global do Google, no primeiro back-end que tiver capacidade suficiente disponível.
Com as listas de bloqueio/permissão de IP do Cloud Armor, você pode restringir ou permitir o acesso ao seu balanceador de carga HTTP(S) na borda do Google Cloud, o mais próximo possível do usuário ou do tráfego mal-intencionado. Assim, os tráfegos ou usuários mal-intencionados são impedidos de consumir recursos ou acessar redes de nuvem privada virtual (VPC).
Neste laboratório, você vai definir as configurações de um balanceador de carga HTTP com back-ends globais, como mostra o diagrama abaixo. Depois, você vai fazer um teste de estresse com o balanceador de carga e usar o Cloud Armor para adicionar o IP do teste à lista de bloqueio.
Objetivos
Neste laboratório, você vai aprender a fazer o seguinte:
- Criar regras de firewall de verificação de integridade e HTTP
- Configurar dois modelos de instâncias
- Criar dois grupos gerenciados de instâncias
- Configurar um balanceador de carga HTTP com IPv4 e IPv6
- Fazer um teste de estresse em um balanceador de carga HTTP
- Bloquear o acesso de um endereço IP a um balanceador de carga HTTP
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.
Tarefa 1. Configure regras de firewall de verificação de integridade e HTTP
Defina regras de firewall para permitir o tráfego HTTP para os back-ends e o tráfego TCP do verificador de integridade do Google Cloud.
Crie a regra de firewall HTTP
Crie uma regra de firewall para permitir o tráfego HTTP nos back-ends.
-
No console do Cloud, acesse Menu de navegação () > Rede VPC > Firewall.
-
Veja as regras de firewall atuais: ICMP, interna, RDP e SSH.
Cada projeto do Google Cloud começa com a rede default e essas regras de firewall.
-
Clique em Criar regra de firewall.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome default-allow-http Rede default Destinos Tags de destino especificadas Tags de destino http-server Filtro de origem Intervalos IPv4 Intervalos IPv4 de origem 0.0.0.0/0 Protocolos e portas Em "Portas e protocolos especificados", marque TCP e digite: 80
Inclua /0 nos intervalos IPv4 de origem para especificar todas as redes.
- Clique em Criar.
Crie as regras de firewall de verificação de integridade.
As verificações de integridade determinam quais instâncias de um balanceador de carga podem receber novas conexões. No balanceamento de carga HTTP, as sondagens de verificação de integridade para as instâncias com carga balanceada vêm de endereços nos intervalos 130.211.0.0/22
e 35.191.0.0/16
. Suas regras de firewall precisam permitir essas conexões.
-
Ainda na página Políticas de firewall, clique em Criar regra de firewall.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome default-allow-health-check Rede default Destinos Tags de destino especificadas Tags de destino http-server Filtro de origem Intervalos IPv4 Intervalos IPv4 de origem 130.211.0.0/22
,35.191.0.0/16
Protocolos e portas Em "Portas e protocolos especificados", marque TCP Observação: insira os dois intervalos IPv4 de origem, um de cada vez, e adicione um espaço entre eles. -
Clique em Criar.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 2: Configure os modelos e crie grupos de instâncias
Um grupo gerenciado de instâncias usa um modelo para criar um grupo de instâncias idênticas. Use modelos de instâncias para criar os back-ends do balanceador de carga HTTP.
Configure os modelos de instâncias
Um modelo é um recurso de API que pode ser usado para criar instâncias de VMs e grupos gerenciados de instâncias. Esses modelos definem o tipo de máquina, a imagem do disco de inicialização, as sub-redes, os rótulos e outras propriedades da instância.
Crie um modelo de instância para
-
No console do Cloud, acesse Menu de navegação () > Compute Engine > Modelos de instâncias e clique em Criar modelo de instância.
-
Em Nome, digite
-template. -
Em Local, selecione Global.
-
Em Série, selecione E2.
-
Para Tipo de máquina, selecione e2-micro.
-
Clique em Opções avançadas.
-
Clique em Rede. Defina o valor a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Tags de rede http-server -
Clique em default em Interfaces de rede. Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Rede default Sub-rede default Clique em Concluído.
A tag de rede http-server garante que as regras de firewall HTTP e Verificação de integridade sejam aplicadas a essas instâncias.
-
Clique na guia Gerenciamento.
-
Em Metadados, selecione +ADICIONAR ITEM e especifique o seguinte:
Chave Valor startup-script-url gs://cloud-training/gcpnet/httplb/startup.sh
startup-script-url
especifica um script que é executado quando as instâncias são iniciadas. O script instala o Apache e altera a página de boas-vindas para incluir o IP do cliente e o nome, a região e a zona da instância de VM. Se quiser, confira este script.
- Clique em Criar.
- Aguarde a criação do modelo de instância.
Agora crie outro modelo de instância para subnet-b copiando
- Clique em
-template e depois na opção +CRIAR SIMILAR no topo. - Em Nome, digite
-template. - Confirme se selecionou Global para o Local.
- Clique em Opções avançadas.
- Clique em Rede.
- Confirme se http-server foi adicionado como tag de rede.
- Em Interfaces de rede, acesse Sub-rede e selecione default (
). - Clique em Concluído.
- Clique em Criar.
Crie os grupos gerenciados de instâncias
Crie um grupo gerenciado de instâncias em
-
Ainda em Compute Engine, clique em Grupos de instâncias no menu à esquerda.
-
Clique em Criar grupo de instâncias.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome -mig (se necessário, remova os espaços extras do nome) Modelo de instância -template Local Várias zonas Região Número mínimo de instâncias 1 Número máximo de instâncias 2 Indicadores de escalonamento automático > Clique no menu suspenso > Tipo de indicador Uso de CPU Meta de uso da CPU 80. Clique em Concluído. Período de inicialização 45
Os grupos gerenciados de instâncias têm recursos de escalonamento automático para você adicionar ou remover instâncias dos grupos, com base em aumentos ou reduções da carga. O escalonamento automático ajuda seus aplicativos a processar aumentos de tráfego e reduzir os custos quando poucos recursos são necessários. Para isso, basta definir a política de escalonamento automático, e ela vai ser aplicada pelo autoescalador com base na carga avaliada.
- Clique em Criar.
Agora, repita o mesmo procedimento para criar um segundo grupo de instâncias para
-
Clique em Criar grupo de instâncias.
-
Defina estes valores e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome -mig Modelo de instância -template Local Várias zonas Região Número mínimo de instâncias 1 Número máximo de instâncias 2 Indicadores de escalonamento automático > Clique no menu suspenso > Tipo de indicador Uso de CPU Meta de uso da CPU 80. Clique em Concluído. Período de inicialização 45 -
Clique em Criar.
Clique em Verificar meu progresso para conferir o objetivo.
Verifique os back-ends
Verifique se as instâncias de VM estão sendo criadas nas duas regiões e acesse os sites HTTP.
-
Ainda em Compute Engine, clique em Instâncias de VM no menu à esquerda.
-
Confira as instâncias que começam com
-mig e -mig. Elas fazem parte dos grupos gerenciados de instâncias.
-
Clique no IP externo de uma instância em
-mig. Você vai encontrar estas informações: IP do cliente (seu endereço IP), Nome do host (começa com
-mig) e Local do servidor (uma zona de ). -
Clique no IP externo de uma instância em
-mig. Você vai encontrar estas informações: IP do cliente (seu endereço IP), Nome do host (começa com
-mig) e Local do servidor (uma zona de ).
Tarefa 3: Configure o balanceador de carga HTTP
Configure o balanceador de carga HTTP para equilibrar o tráfego entre os dois back-ends (
Inicie a configuração
-
No console do Cloud, clique em Menu de navegação () > Serviços de rede > Balanceamento de carga.
-
Clique em Criar balanceador de carga.
-
Em Balanceador de carga de aplicativo HTTP(S), clique em "Próxima".
-
Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em "Próxima".
-
Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em "Próxima".
-
Em Criar balanceador de carga, clique em Configurar.
-
Defina o Nome do novo balanceador de carga HTTP(S) como
http-lb
.
Configure o front-end
As regras de host e caminho determinam como o tráfego será direcionado. Por exemplo, você pode direcionar o tráfego de vídeo para um back-end e o tráfego estático para outro back-end. No entanto, você não definirá as regras de host e caminho neste laboratório.
-
Clique em Configuração de front-end.
-
Especifique o seguinte e não altere os outros valores:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Protocolo HTTP Versão IP IPv4 Endereço IP Temporário Porta 80 -
Clique em Concluído.
-
Clique em Adicionar IP e porta do front-end.
-
Especifique o seguinte e não altere os outros valores:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Protocolo HTTP Versão do IP IPv6 Endereço IP Alocação automática Porta 80 -
Clique em Concluído.
O balanceamento de carga HTTP(S) oferece suporte aos endereços IPv4 e IPv6 para o tráfego do cliente. As solicitações IPv6 do cliente são encerradas na camada de balanceamento de carga global e depois encaminhadas por proxy via IPv4 para seus back-ends.
Configure o back-end
Os serviços de back-end direcionam o tráfego de entrada para um ou mais back-ends anexados. Cada back-end é composto por um grupo de instâncias e metadados com capacidade adicional de serviço.
-
Clique em Configuração de back-end.
-
Em Serviços e buckets de back-end, clique em Criar um serviço de back-end.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (selecione a opção conforme especificado) Nome http-backend Grupo de instâncias -mig Números de portas 80 Modo de balanceamento Taxa RPS máximo 50 Capacidade 100
Essa configuração significa que o balanceador de carga tenta manter cada instância em
-
Clique em Concluído.
-
Clique em Adicionar um back-end.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (selecione a opção conforme especificado) Grupo de instâncias -mig Números de portas 80 Modo de balanceamento Utilização Utilização máxima de back-end 80 Capacidade 100
Essa configuração significa que o balanceador de carga tenta manter cada instância em
-
Clique em Concluído.
-
Em Verificação de integridade, selecione Criar verificação de integridade.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (selecione a opção conforme especificado) Nome http-health-check Protocolo TCP Porta 80
As verificações de integridade determinam quais instâncias receberão novas conexões. Essa verificação de integridade HTTP sonda instâncias a cada cinco segundos e espera no máximo mais cinco segundos por uma resposta. Se duas tentativas tiverem sucesso, a instância é considerada íntegra. Com duas tentativas malsucedidas, ela é considerada não íntegra.
- Clique em Salvar.
- Marque a caixa Ativar a geração de registros.
- Defina a Taxa de amostragem como
1
. - Clique em Criar para criar o serviço de back-end.
- Clique em OK.
Analise e crie o balanceador de carga HTTP
- Clique em Analisar e finalizar.
- Confira os serviços de Back-end e Front-end.
- Clique em Criar.
- Aguarde o balanceador de carga ser criado.
- Clique no nome do balanceador de carga (http-lb).
- Anote os endereços IPv4 e IPv6 do balanceador de carga para usá-los na próxima tarefa. Eles vão aparecer como
[LB_IP_v4]
e[LB_IP_v6]
, respectivamente.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 4: Teste o balanceador de carga HTTP
Agora que você já criou o balanceador de carga HTTP para seus back-ends, verifique se o tráfego está sendo encaminhado ao serviço de back-end.
Acesse o balanceador de carga HTTP
Para testar o acesso do IPv4 ao balanceador de carga HTTP, abra uma nova guia no navegador e digite o endereço http://[LB_IP_v4]
. Substitua [LB_IP_v4]
pelo endereço IPv4 do balanceador de carga.
Se você tiver um endereço IPv6 local, tente usar o endereço IPv6 do balanceador de carga HTTP navegando até http://[LB_IP_v6]
. Lembre-se de substituir [LB_IP_v6]
pelo endereço IPv6 do balanceador de carga.
Faça o teste de estresse no balanceador de carga HTTP
Crie uma nova VM para simular uma carga do balanceador de carga HTTP usando o utilitário siege
. Depois determine se o tráfego vai ser balanceado nos dois back-ends quando a carga for alta.
-
No console, acesse Menu de navegação () > Compute Engine > Instâncias de VM.
-
Clique em Criar instância.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome siege-vm Região Zona Série E2
Como
- Clique em Criar.
- Aguarde a instância siege-vm ser criada.
- Em siege-vm, clique em SSH para iniciar um terminal e se conectar.
- Execute este comando para instalar o siege:
- Para armazenar o endereço IPv4 do balanceador de carga HTTP em uma variável de ambiente, execute este comando, substituindo
[LB_IP_v4]
pelo endereço IPv4:
- Para simular uma carga, execute este comando:
- No console do Cloud, acesse o Menu de navegação () e clique em Serviços de rede > Balanceamento de carga.
- Clique em Back-ends.
- Clique em http-backend.
- Acesse http-lb.
- Clique na guia Monitoramento.
- Monitore o Local de front-end (total de tráfego de entrada) entre a América do Norte e os dois back-ends por dois a três minutos.
A princípio, o tráfego só deve ser direcionado a
Isso demonstra que o tráfego é encaminhado para o back-end mais próximo por padrão, mas que ele também pode ser distribuído pelos back-ends se a carga aumentar muito.
- Volte para o terminal SSH da instância siege-vm.
- Pressione CTRL+C para interromper o siege se ele ainda estiver em execução.
O resultado será semelhante a este:
Tarefa 5. Adicione siege-vm à lista de bloqueio
Use o Cloud Armor para adicionar a instância siege-vm à lista de bloqueio e impedir que ela acesse o balanceador de carga HTTP.
Crie a política de segurança
Crie uma política de segurança do Cloud Armor com uma regra de lista de bloqueio para siege-vm.
- No console, acesse Menu de navegação () > Compute Engine > Instâncias de VM.
- Anote o IP externo de siege-vm. Ele aparecerá como
[SIEGE_IP]
.
-
No console do Cloud, acesse Menu de navegação > Segurança de rede > Políticas do Cloud Armor.
-
Clique em Criar política.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Nome denylist-siege Ação de regra padrão Permitir -
Clique em Próxima etapa.
-
Clique em Adicionar uma regra.
-
Defina os valores a seguir e mantenha os demais como padrão:
Propriedade Valor (digite o valor ou selecione a opção conforme especificado) Condição > Correspondência Inserir SIEGE_IP Ação Recusar Código de resposta 403 (Forbidden) Prioridade 1000 -
Clique em Concluído.
-
Clique em Próxima etapa.
-
Clique em Adicionar destino.
-
Em Tipo, selecione Serviço de back-end (balanceador de carga de aplicativo externo).
-
Em Destino, selecione http-backend.
-
Clique em Criar política.
- Aguarde a política ser criada para prosseguir.
Clique em Verificar meu progresso para conferir o objetivo.
Verifique a política de segurança
Verifique se a instância siege-vm não pode acessar o balanceador de carga HTTP.
- Volte para o terminal SSH da instância siege-vm.
- Para acessar o balanceador de carga, execute o seguinte:
O resultado será semelhante a este:
- Em uma nova guia do navegador, acesse
http://[LB_IP_v4]
. Substitua[LB_IP_v4]
pelo endereço IPv4 do balanceador de carga.
- Para simular uma carga, volte ao terminal SSH de siege-vm e execute este comando:
O comando não vai gerar resposta.
Analise os registros da política de segurança para saber se esse tráfego também está bloqueado.
- No console, acesse Menu de navegação > Segurança da rede > Políticas do Cloud Armor.
- Clique em denylist-siege.
- Clique em Registros.
- Clique em Conferir os registros da política.
- Na página de geração de registros, apague todo o texto na Prévia da consulta. Selecione o recurso para o Balanceador de carga de aplicativo > http-lb-forwarding-rule > http-lb e clique em Aplicar.
- Clique em Executar consulta.
- Amplie a entrada de registro nos Resultados da consulta.
- Expanda httpRequest.
A origem da solicitação deve ser o endereço IP da instância siege-vm. Se não for, expanda outra entrada do registro.
- Expanda jsonPayload.
- Expanda enforcedSecurityPolicy.
- Observe que a ação configurada (configuredAction) é bloquear (
DENY
) com o nomedenylist-siege
.
As políticas de segurança do Cloud Armor geram registros que você pode analisar para saber quando o tráfego é negado ou permitido e de onde ele vem.
Parabéns!
Você configurou um balanceador de carga HTTP com back-ends em
Próximas etapas / Saiba mais
-
Para conhecer os conceitos básicos do Cloud Armor, consulte a documentação do Cloud Armor
-
Consulte a documentação do Cloud Load Balancing para saber 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 18 de abril de 2024
Laboratório testado em 18 de abril 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.