Configure um balanceador de carga de rede de proxy clássico (proxy SSL) com back-ends de grupo de instâncias de VM

Neste documento, fornecemos instruções para configurar um balanceador de carga de rede de proxy clássico com um proxy SSL de destino e back-ends de grupo de instâncias de VM. Antes de começar, leia Visão geral do balanceador de carga de rede de proxy externo para informações sobre como esses balanceadores de carga funcionam.

Visão geral da configuração

Confira neste exemplo como configurar um balanceador de carga de proxy SSL externo para um serviço que existe em duas regiões: us-central1 e us-east1. Você fará a configuração do seguinte:

  1. Quatro instâncias espalhadas por duas regiões
  2. Grupos para manter as instâncias
  3. Os componentes de back-end a seguir:
    • Verificação de integridade: usada para monitorar a integridade da instância.
    • Serviço de back-end: monitora grupos de instâncias e os impede de exceder o uso configurado.
    • Back-ends: mantêm os grupos de instâncias.
  4. Os componentes de front-end a seguir:
    • Um recurso de certificado SSL. É possível usar um certificado autogerenciado, em que você fornece o próprio certificado SSL, ou um gerenciado pelo Google, em que o Google emite um certificado válido para todos os domínios. Para mais informações, consulte Tipos de certificados SSL.
    • O próprio proxy SSL com o certificado SSL.
    • Um endereço IPv4 estático e externo, além de uma regra de encaminhamento que envia o tráfego do usuário ao proxy.
    • Um endereço IPv6 estático e externo, além de uma regra de encaminhamento que envia o tráfego do usuário ao proxy.
  5. Uma regra de firewall que permite o tráfego do balanceador de carga e do verificador de integridade para as instâncias.
  6. Opcional: uma política de SSL para controlar os recursos SSL que o balanceador de carga do proxy SSL negocia com clientes.

Depois disso, você testará a configuração.

Permissões

Para seguir as instruções deste guia, você precisa ser capaz de criar instâncias e modificar uma rede em um projeto. É necessário ser um proprietário ou editor de projeto, ou ter todos os seguintes papéis do IAM do Compute Engine:

Tarefa Papel necessário
Criar componentes do balanceador de carga, sub-redes e redes Administrador de rede
Adicionar e remover regras de firewall Administrador de segurança
Criar instâncias Administrador da instância do Compute

Para mais informações, consulte estes guias:

Configurar instâncias e grupos de instâncias

Esta seção mostra como criar instâncias e grupos de instâncias e, em seguida, adicioná-las a esses grupos. Um sistema de produção normalmente usa grupos de instâncias gerenciadas com base em modelos de instância. No entanto, a configuração desta página é mais rápida para os testes iniciais.

Criar instâncias

Para fins de teste, instale o Apache em quatro instâncias, duas em cada um dos dois grupos de instâncias. Normalmente, você não usaria o balanceador de carga de proxy SSL externo para tráfego HTTP, mas o Apache é comumente usado e fácil de configurar para testes.

Crie essas instâncias com a tag ssl-lb, que a regra de firewall usará posteriormente.

Console

Criar instâncias

  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 ig-us-central1-1.

  4. Defina Zona como us-central1-b.

  5. Clique em Opções avançadas.

  6. Clique em Rede e configure o seguinte campo:

    1. Em Tags de rede, insira ssl-lb.
  7. Clique em Gerenciamento. Insira o script a seguir no campo Script de inicialização.

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-central1-1</h1></body></html>' | sudo tee /var/www/html/index.html
  8. Mantenha os valores padrão para os outros campos.

  9. Clique em Criar.

  10. Crie ig-us-central1-2 com as mesmas configurações, exceto com Script de inicialização definido como:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-central1-2</h1></body></html>' | sudo tee /var/www/html/index.html
  11. Crie ig-us-east1-1 com as mesmas configurações, exceto com Zona definida como us-east1-b e Script de inicialização definido como:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-east1-1</h1></body></html>' | sudo tee /var/www/html/index.html
  12. Crie ig-us-east1-2 com as mesmas configurações, exceto com Zona definida como us-east1-b e Script de inicialização definido como:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-east1-2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. Crie ig-us-central1-1 na zona us-central1-b.

    gcloud compute instances create ig-us-central1-1 \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags ssl-lb \
       --zone us-central1-b \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo a2ensite default-ssl
         sudo a2enmod ssl
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-us-central1-1</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  2. Crie ig-us-central1-2 na zona us-central1-b.

    gcloud compute instances create ig-us-central1-2 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-central1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-central1-2</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  3. Crie ig-us-east1-1 na zona us-east1-b.

    gcloud compute instances create ig-us-east1-1 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-east1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-east1-1</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    
  4. Crie ig-us-east1-2 na zona us-east1-b.

    gcloud compute instances create ig-us-east1-2 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-east1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-east1-2</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    

Criar um grupo de instâncias para cada zona e adicionar instâncias

Console

  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.

  3. Defina o Nome como us-ig1.

  4. Defina a Zona como us-central1-b.

  5. Em Mapeamento de portas, clique em Adicionar porta. Um balanceador de carga envia tráfego a um grupo de instâncias por uma porta nomeada. Crie uma porta nomeada para mapear o tráfego de entrada em um número de porta específico.

    1. Insira ssl-lb como o Nome da porta e 443 como os Números da porta.
  6. Em Definição de instância, clique em Selecionar instâncias atuais.

  7. Em Instâncias de VM, selecione ig-us-central1-1 e ig-us-central1-2.

  8. Não altere as outras configurações.

  9. Clique em Criar.

  10. Repita as etapas, mas faça as seguintes configurações:

    • Nome: us-ig2
    • Zona: us-east1-b
    • ssl-lb como o Nome da porta e 443 como os Números da porta
    • Instâncias: ig-us-east1-1 e ig-us-east1-2
  11. Verifique se você tem agora dois grupos de instâncias, cada um com duas instâncias.

gcloud

  1. Crie o grupo de instâncias us-ig1.

    gcloud compute instance-groups unmanaged create us-ig1 --zone us-central1-b
    
  2. Defina uma porta nomeada para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports us-ig1 \
        --named-ports=ssl-lb:443 \
        --zone=us-central1-b
    
  3. Adicione ig-us-central1-1 e ig-us-central1-2 a us-ig1.

    gcloud compute instance-groups unmanaged add-instances us-ig1 \
        --instances=ig-us-central1-1,ig-us-central1-2 \
        --zone=us-central1-b
    
  4. Crie o grupo de instâncias us-ig2.

    gcloud compute instance-groups unmanaged create us-ig2 --zone us-east1-b
    
  5. Defina uma porta nomeada para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports us-ig2 \
        --named-ports=ssl-lb:443 \
        --zone=us-east1-b
    
  6. Adicione ig-us-east1-1 e ig-us-east1-2 a us-ig2

    gcloud compute instance-groups unmanaged add-instances us-ig2 \
        --instances=ig-us-east1-1,ig-us-east1-2 \
        --zone=us-east1-b
    

Agora você tem um grupo de instâncias em ambas as regiões, cada um com duas instâncias.

Criar uma regra de firewall para o balanceador de carga SSL

Configure o firewall para permitir o tráfego proveniente do balanceador de carga e do verificador de integridade para as instâncias.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acesse as políticas de firewall

  2. Clique em Criar regra de firewall.

  3. No campo Nome, use allow-ssl-lb-and-health.

  4. Em Rede, selecione default.

  5. Em Destinos, selecione Tags de destino especificadas.

  6. Defina Tags de destino para ssl-lb.

  7. Defina Filtro de origem como Intervalos IPv4.

  8. Defina Intervalos IPv4 de origem como 130.211.0.0/22 e 35.191.0.0/16.

  9. Em Portas e protocolos, defina Protocolos e portas especificados como tcp:443.

  10. Clique em Criar.

gcloud

gcloud compute firewall-rules create allow-ssl-lb-and-health \
  --source-ranges=130.211.0.0/22,35.191.0.0/16 \
  --target-tags=ssl-lb \
  --allow=tcp:443

Se você usa um certificado gerenciado pelo Google, confirme se o status do recurso do certificado é "ATIVO". Para mais informações, consulte Status do recurso de certificado SSL gerenciado pelo Google.

gcloud compute ssl-certificates list

Configurar o balanceador de carga

Console

Criar o balanceador de carga e configurar um serviço de back-end

  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. Inicie a configuração do balanceador de carga:
    1. No card Balanceador de carga de rede (TCP/SSL), clique em Iniciar configuração.
    2. Defina Somente voltado para a Internet ou interno como Da Internet para minhas VMs.
    3. Defina Várias regiões ou região única como Várias regiões.
    4. Em Gerenciamento de tráfego clássico ou avançado, selecione Gerenciamento de tráfego clássico.
    5. Clique em Continuar.
  4. Defina o Nome do balanceador de carga como my-ssl-lb.

Configuração de back-end

  1. Clique em Configuração de back-end.
  2. Em Tipo de back-end, selecione Grupos de instâncias.
  3. Defina Protocolo como SSL.
  4. Em Porta nomeada, insira ssl-lb.
  5. Aceite o valor padrão de Tempo limite.
  6. Deixe o Tipo de back-end definido como Grupos de instâncias.
  7. Configure o primeiro back-end:
    1. Em Novo back-end, selecione o grupo de instâncias us-ig1.
    2. Defina Números de portas como 443.
    3. Retenha os valores padrão restantes.
  8. Configure o segundo back-end:
    1. Clique em Adicionar back-end.
    2. Selecione o grupo de instâncias us-ig2.
    3. Defina Números de portas como 443.
    4. Clique em Concluído.
  9. Configure a verificação de integridade:
    1. Em Verificação de integridade, selecione Criar verificação de integridade.
    2. Defina o Nome da verificação de integridade como my-ssl-health-check.
    3. Em Protocolo, selecione SSL.
    4. Retenha os valores padrão restantes.
    5. Clique em Salvar e continuar.
  10. No Console do Google Cloud, verifique se há uma marca de seleção ao lado de Configuração do back-end. Se não houver, verifique se você concluiu todas as etapas.

Configurar serviços de front-end

  1. Clique em Configuração de front-end.
  2. Adicione a primeira regra de encaminhamento:
    1. Informe um Nome de my-ssl-lb-forwarding-rule.
    2. Em Protocolo, selecione SSL.
    3. Em Endereço IP, selecione Criar endereço IP:
      1. Informe um Nome de ssl-lb-static-ipv4.
      2. Clique em Reservar.
    4. Em Certificado, selecione Criar um novo certificado.
    5. Informe um Nome de my-ssl-cert.
    6. Se você escolher Fazer upload do meu certificado, siga estas etapas:
      1. Cole seu certificado ou clique em Fazer upload para navegar até seu arquivo de certificado.
      2. Cole a chave privada ou clique em Fazer upload para navegar até o arquivo da chave privada.
    7. Se você escolher Criar um certificado gerenciado pelo Google, insira um Domínio.
      1. Para inserir domínios adicionais, clique em Adicionar domínio.
      2. Clique em Criar.
    8. Para adicionar recursos de certificado além do certificado SSL principal, clique em Outros certificados. Em seguida, selecione outro certificado no menu Certificados ou clique em Criar um novo certificado e siga as instruções acima.
      1. (Opcional) Para criar uma política de SSL:
      2. Em Política de SSL, selecione Criar política.
      3. Informe um Nome de my-ssl-policy.
      4. Em Versão mínima de TLS, selecione TLS 1.0.
      5. Em Perfil, selecione Moderno. Serão exibidos Recursos ativados e Recursos desativados.
      6. Clique em Save.
    9. (Opcional) Ative o protocolo de proxy, se quiser.
    10. Clique em Concluído.
  3. Adicione a segunda regra de encaminhamento:
    1. Clique em Adicionar IP e porta de front-end.
    2. Informe um Nome de my-ssl-lb-ipv6-forwarding-rule.
    3. Defina Versão do IP como IPv6.
    4. Em Endereço IP, clique em Criar endereço IP.
      1. Informe um nome de ssl-lb-static-ipv6.
      2. Clique em Reservar.
    5. Em Certificado, selecione my-ssl-cert.
    6. Para adicionar recursos de certificado além do certificado SSL principal, selecione um certificado na lista Certificados ou clique em Criar um novo certificado.
    7. Opcional: use uma política de SSL ou ative o Protocolo proxy, se quiser.
    8. Clique em Concluído.
    9. Verifique se há uma marca de seleção verde ao lado de Configuração de front-end no console do Google Cloud. Se não houver, verifique se você concluiu todas as etapas acima.
    10. Clique em Concluído.
  4. Revisar e finalizar

    1. Clique em Analisar e finalizar.
    2. Revise suas configurações do balanceador de carga.
    3. Opcional: clique em Código equivalente para conferir a solicitação de API REST que será usada para criar o balanceador de carga.
    4. Clique em Criar.

gcloud

  1. Crie uma verificação de integridade.
       gcloud compute health-checks create ssl my-ssl-health-check --port=443
       
  2. Crie um serviço de back-end.
       gcloud compute backend-services create my-ssl-lb \
           --load-balancing-scheme EXTERNAL \
           --global-health-checks \
           --protocol=SSL \
           --port-name=ssl-lb \
           --health-checks=my-ssl-health-check \
           --timeout=5m \
           --global
       

    Como alternativa, é possível configurar a comunicação não criptografada do balanceador de carga para as instâncias usando --protocol=TCP.

  3. Adicionar grupos de instâncias ao serviço de back-end
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=us-ig1 \
           --instance-group-zone=us-central1-b \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=us-ig2 \
           --instance-group-zone=us-east1-b \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
  4. Configurar o recurso de certificado SSL

    Se você usa certificados autogerenciados, já tem pelo menos um certificado SSL para fazer upload. Se você não tem, consulte Visão geral dos certificados SSL. Ao usar vários certificados SSL, é necessário criá-los um de cada vez.

    Se você usa certificados SSL autogerenciados e não tem uma chave privada e um certificado assinado, crie e utilize um certificado autoassinado para fins de teste.

    Para criar um recurso de certificado SSL autogerenciado:

       gcloud compute ssl-certificates create my-ssl-cert \
           --certificate=CRT_FILE_PATH \
           --private-key=KEY_FILE_PATH
       

    Para criar um recurso de certificado SSL gerenciado pelo Google:

       gcloud beta compute ssl-certificates create www-ssl-cert \
           --domains=DOMAIN_1,DOMAIN_2
       
  5. Configurar um proxy SSL de destino

    Os balanceadores de carga de rede de proxy externo aceitam a criação de um proxy SSL de destino que tenha de um a quinze certificados SSL. Antes de executar este comando, é necessário criar um recurso de certificado SSL para cada certificado.

    Se quiser ativar o cabeçalho proxy, defina-o como PROXY_V1 em vez de none. Se quiser, anexe uma política de SSL ao proxy de destino. Primeiro, crie a política.

       gcloud compute ssl-policies create my-ssl-policy \
           --profile=MODERN \
           --min-tls-version=1.0
       

    Depois, anexe a política ao proxy de destino.

       gcloud compute target-ssl-proxies create my-ssl-lb-target-proxy \
           --backend-service=my-ssl-lb \
           --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \
           --ssl-policy=my-ssl-policy \
           --proxy-header=NONE
       
  6. Reservar endereços IP estáticos globais

    Os clientes usam esses endereços IP para acessar seu serviço com carga balanceada.

       gcloud compute addresses create ssl-lb-static-ipv4 \
           --ip-version=IPV4 \
           --global
       
       gcloud compute addresses create ssl-lb-static-ipv6 \
           --ip-version=IPV6 \
           --global
       
  7. Configurar regras de encaminhamento globais

    Crie regras de encaminhamento global associadas ao proxy de destino. Substitua LB_STATIC_IP e LB_STATIC_IPV6 pelos endereços IP gerados em Reservar endereços IP estáticos globais.

       gcloud compute forwarding-rules create my-ssl-lb-forwarding-rule \
           --load-balancing-scheme EXTERNAL \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IP \
           --ports=443
       
       gcloud compute forwarding-rules create my-ssl-lb-ipv6-forwarding-rule \
           --load-balancing-scheme EXTERNAL \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IPV6 \
           --ports=443
       

Como conectar seu domínio ao balanceador de carga

Após a criação do balanceador de carga, anote o endereço IP associado a ele, por exemplo, 30.90.80.100. Para apontar seu domínio para o balanceador de carga, crie um registro A usando o serviço de registro de domínio. Se você adicionou vários domínios ao certificado SSL, adicione um registro A para cada um deles, todos apontando para o endereço IP do balanceador de carga. Por exemplo, para criar registros A para www.example.com e example.com, use o seguinte:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Se você usa o Cloud DNS como provedor de DNS, consulte Adicionar, modificar e excluir registros.

Testar o balanceador de carga

No navegador da Web, conecte-se ao seu endereço IP estático usando o HTTPS. Nesta configuração de teste, as instâncias usam certificados autoassinados. Portanto, você verá um aviso no navegador na primeira vez que acessar uma página. Clique no aviso para ver a página real. Substitua IP_ADDRESS pelo endereço IPv4 ou IPv6 que você criou anteriormente.

https://IP_ADDRESS

Você verá um dos hosts da região mais próxima de você. Recarregue a página até ver a outra instância nessa região. Para ver instâncias da outra região, interrompa as instâncias na região mais próxima.

Se preferir, use a curl na linha de comando da sua máquina local. Se você usa um certificado autoassinado no proxy SSL, também é necessário especificar -k. Com a opção curl -k, o curl funcionará mesmo se você tiver um certificado autoassinado ou nenhum. Se você tiver um certificado normal, remova esse parâmetro. Use o parâmetro -k somente para testar seu próprio site. Em circunstâncias normais, um certificado válido é uma medida de segurança importante. Não ignore os avisos de certificados.

Substitua IP_ADDRESS pelo endereço IPv4 ou IPv6 que você criou anteriormente.

curl -k https://IP_ADDRESS

Se você não conseguir acessar o balanceador de carga, tente as etapas descritas em Como solucionar problemas de configuração.

Outras opções de configuração

Nesta seção, o exemplo é detalhado para fornecer outras opções de configuração. Todas as tarefas são opcionais. É possível realizá-las em qualquer ordem.

Protocolo PROXY para manter informações de conexão do cliente

O balanceador de carga de rede de proxy encerra as conexões TCP do cliente e cria novas conexões com as instâncias. Por padrão, as informações de IP e porta do cliente original não são preservadas.

Para preservar e enviar as informações de conexão originais para suas instâncias, ative a versão 1 do protocolo PROXY. Esse protocolo envia à instância como parte da solicitação um cabeçalho extra que contém os endereços IP de origem e de destino e os números de porta.

Verifique se as instâncias de back-end do balanceador de carga de rede do proxy estão executando servidores compatíveis com cabeçalhos do protocolo PROXY. Se os servidores não estiverem configurados para aceitar cabeçalhos de protocolo PROXY, as instâncias de back-end retornarão respostas vazias.

Se você definir o protocolo PROXY para o tráfego de usuários, também poderá configurá-lo para as verificações de integridade. Se você estiver verificando a integridade e a exibição de conteúdo na mesma porta, defina o --proxy-header da verificação de integridade para corresponder à configuração do balanceador de carga.

Normalmente, o cabeçalho do protocolo PROXY é uma linha de texto legível no formato a seguir:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

O exemplo a seguir exibe um protocolo PROXY:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

No exemplo anterior, o IP do cliente é 192.0.2.1, o IP do balanceamento de carga é 198.51.100.1, a porta do cliente é 15221 e a porta de destino é 110.

Quando o endereço IP do cliente não é conhecido, o balanceador de carga gera um cabeçalho do protocolo PROXY no formato a seguir:

PROXY UNKNOWN\r\n

Atualizar o cabeçalho do protocolo PROXY para o proxy de destino

O exemplo de configuração do balanceador de carga dessa página mostra como ativar o cabeçalho do protocolo PROXY ao criar o balanceador de carga de rede de proxy. Siga estas etapas para alterar o cabeçalho do protocolo PROXY para um proxy de destino.

Console

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

    Acessar o "Balanceamento de carga"

  2. Clique em Editar no seu balanceador de carga.
  3. Clique em Configuração de front-end.
  4. Altere o valor do campo Protocolo de proxy para Ativado.
  5. Clique em Update to save your changes.

gcloud

No comando a seguir, edite o campo --proxy-header e defina-o como NONE ou PROXY_V1, dependendo do seu requisito.

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

Configurar a afinidade da sessão

Estes procedimentos mostram como atualizar um serviço de back-end para o balanceador de carga de proxy SSL de exemplo para que o serviço de back-end use a afinidade de IP do cliente.

Quando a afinidade de IP do cliente está ativada, o balanceador de carga direciona as solicitações de um determinado cliente para a mesma VM de back-end. Isso é feito com base em um hash criado a partir do endereço IP do cliente e do endereço IP do balanceador de carga (o endereço IP externo de uma regra de encaminhamento externo).

Console

Para ativar a afinidade da sessão de IP do cliente:

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

    Acessar o "Balanceamento de carga"

  2. Clique em Back-ends.

  3. Clique em my-ssl-lb (o nome do serviço de back-end que você criou para este exemplo) e clique em Editar.

  4. Na página Detalhes do serviço de back-end, clique em Configuração avançada.

  5. Em Afinidade da sessão, selecione IP do cliente no menu.

  6. Clique em Atualizar.

gcloud

Use o comando gcloud a seguir para atualizar o serviço de back-end my-ssl-lb, especificando a afinidade da sessão de IP do cliente:

gcloud compute backend-services update my-ssl-lb \
    --global \
    --session-affinity=CLIENT_IP

API

Para definir a afinidade da sessão de IP do cliente, faça uma solicitação PATCH para o método backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-ssl-lb
{
  "sessionAffinity": "CLIENT_IP"
}

Ativar a diminuição da conexão

Ative a diminuição da conexão em serviços de back-end para garantir interrupção mínima aos usuários quando uma instância que está veiculando tráfego é encerrada, removida manualmente ou removida por um autoescalador. Para saber mais sobre a diminuição da conexão, consulte a documentação Como ativar a diminuição da conexão.

A seguir