Configurar um serviço de back-end global do Cloud Load Balancing no App Design Center

Para criar um balanceador de carga no aplicativo, configure e conecte componentes distintos de front-end e back-end do Cloud Load Balancing. Os componentes separados ajudam a aplicar controles distintos para tráfego externo e interno e evitam o acesso direto aos dados.

O componente de back-end global do Cloud Load Balancing ajuda a gerenciar as configurações de distribuição de tráfego do balanceador de carga, incluindo o protocolo usado para se conectar a back-ends, configurações de sessão, verificações de integridade e tempos limite. É possível configurar os seguintes back-ends:

  • NEG sem servidor: uma lista de aplicativos sem servidor do Cloud Run ou Cloud Run functions como back-ends.

  • Grupo gerenciado de instâncias (MIG): uma lista de grupos de instâncias do Compute Engine como back-ends.

Para mais informações, consulte Visão geral dos serviços de back-end.

Este documento descreve as conexões e os parâmetros que podem ser configurados ao usar o App Design Center para criar um back-end global do Cloud Load Balancing. Os parâmetros de configuração são baseados no módulo do Terraform terraform-google-lb-http.

Conexões de componentes

Para criar um componente completo do Cloud Load Balancing, conecte o back-end global do Cloud Load Balancing a pelo menos um front-end global do Cloud Load Balancing. Os componentes conectados do Cloud Load Balancing são mostrados como um grupo na tela de design.

A tabela a seguir inclui os componentes que podem ser conectados a um back-end global do Cloud Load Balancing e as atualizações resultantes no aplicativo e no código do Terraform gerado.

Componente conectado

Atualizações de aplicativos

Informações prévias

Cloud Run

  • O balanceador de carga pode distribuir o tráfego de entrada para o serviço do Cloud Run.
  • O serviço do Cloud Run é adicionado como um endpoint de back-end na configuração de back-ends de NEG sem servidor do Cloud Load Balancing.
Configurar um balanceador de carga de aplicativo externo global com o Cloud Run

Front-end do Cloud Load Balancing global (obrigatório)

  • O front-end do Cloud Load Balancing, que processa as solicitações recebidas, está vinculado ao back-end do Cloud Load Balancing, que processa as solicitações.
  • As informações do serviço de back-end são adicionadas à entrada do mapa de URL de front-end.
Visão geral dos mapas de URL

MIG do Compute Engine

  • O balanceador de carga pode distribuir o tráfego de entrada para o MIG do Compute Engine.
  • O MIG do Compute Engine é adicionado ao campo "Grupos de serviço de back-end do Cloud Load Balancing".
Configurar um balanceador de carga de aplicativo clássico com um back-end de grupo gerenciado de instâncias

Parâmetros de configuração obrigatórios

Se o modelo incluir um componente de back-end global do Cloud Load Balancing, configure os seguintes parâmetros antes da implantação.

Nome do parâmetro

Descrição e restrições

Informações prévias

Nome

Nome do serviço de back-end do balanceador de carga. name

ID do projeto

O projeto em que você quer implantar o serviço de back-end do Cloud Load Balancing.

Configurar componentes

Parâmetros de configuração opcionais

Os seguintes parâmetros são opcionais. Para mostrar parâmetros avançados, na área Configuração, selecione Mostrar campos avançados.

Recurso

Nome do parâmetro

Descrição e informações de restrição

Informações prévias

Mapeamentos de caminhos de host

Host Configurar mapas de URL Usar mapas de URL
Caminho Configurar mapas de URL Usar mapas de URL
Esquema de balanceamento de carga loadBalancingScheme Visão geral dos serviços de back-end
Protocolo protocol Protocolo para os back-ends
Nome da porta portName Portas nomeadas
Descrição Uma descrição do serviço de back-end. description
Ativar CDN enableCDN Informações gerais do Cloud CDN
Modo de compactação compressionMode A compactação não funciona
Cabeçalhos de solicitação personalizados customRequestHeaders[] Criar cabeçalhos personalizados em serviços de back-end
Cabeçalhos de resposta personalizados customResponseHeaders[] Criar cabeçalhos personalizados em serviços de back-end
Tempo limite de diminuição da conexão em segundos connectionDraining.drainingTimeoutSec Ativar a diminuição da conexão
Afinidade da sessão sessionAffinity Afinidade da sessão
TTL do cookie de afinidade em segundos affinityCookieTtlSec Afinidade de cookie gerado
Política de LB de local localityLbPolicy Política de localidade do balanceamento de carga
Tempo limite em segundos timeoutSec Tempo limite do serviço de back-end

Configuração de registro

Ativar logConfig.enable Logging
Taxa de amostragem logConfig.sampleRate Logging

Grupos

Grupo backends[].group Back-ends
Descrição Uma descrição para o grupo de back-ends. backends[].description
Modo de balanceamento backends[].balancingMode Modos de balanceamento e configurações de capacidade desejadas
Escalonador de capacidade backends[].capcityScaler Escalonador de capacidade
Número máximo de conexões backends[].maxConnections Modo de balanceamento de conexão
Máximo de conexões por instância backends[].maxConnectionsPerInstance Modo de balanceamento de conexão
Máximo de conexões por endpoint backends[].maxConnectionsPerEndpoint Modo de balanceamento de conexão
Taxa máxima backends[].maxRate Modo de balanceamento de taxa
Taxa máxima por instância backends[].maxRatePerInstance Modo de balanceamento de taxa
Taxa máxima por endpoint backends[].maxRatePerEndpoint Modo de balanceamento de taxa
Utilização máxima backends[].maxUtilization Modo de balanceamento de utilização

Back-ends de NEG sem servidor

Região region Visão geral dos grupos de endpoints de rede sem servidor
Tipo O tipo de back-end sem servidor. Os valores possíveis incluem cloud-run, cloud-function ou app-engine. Balanceadores de carga compatíveis
Nome do serviço appEngine.service Visão geral dos grupos de endpoints de rede sem servidor
Versão do serviço appEngine.version Visão geral dos grupos de endpoints de rede sem servidor

Configuração do IAP

Ativar iap.enabled Visão geral do Identity-Aware Proxy
ID do cliente OAuth 2.0 iap.oauth2ClientId Como compartilhar clientes OAuth
Chave secreta do cliente OAuth2 iap.oauth2ClientSecret Como compartilhar clientes OAuth

Política de CDN

Modo de cache cdnPolicy.cacheMode Visão geral do armazenamento em cache
Idade máxima do cache de URL assinado em segundos cdnPolicy.signedUrlCacheMaxAgeSec Personalizar o tempo máximo de cache
TTL padrão cdnPolicy.defaultTtl Alterar configurações e substituições de TTL
TTL máx. cdnPolicy.maxTtl Alterar configurações e substituições de TTL
TTL do cliente cdnPolicy.clientTtl Alterar configurações e substituições de TTL
Armazenamento em cache negativo cdnPolicy.negativeCaching Usar o armazenamento em cache negativo
Exibir enquanto estiver desatualizado cdnPolicy.serveWhileStale Como exibir conteúdo desatualizado
Ignorar cache nos cabeçalhos de solicitação cdnPolicy.bypassCacheOnRequestHeaders[] Ignorar o cache

Política de armazenamento em cache negativo

Código cdnPolicy.negativeCachingPolicy[].code Usar o armazenamento em cache negativo
TTL cdnPolicy.negativeCachingPolicy[].ttl Usar o armazenamento em cache negativo

Política de chave de cache

Incluir host cdnPolicy.cacheKeyPolicy.includeHost Chaves de cache
Incluir protocolo cdnPolicy.cacheKeyPolicy.includeProtocol Chaves de cache
Incluir string de consulta cdnPolicy.cacheKeyPolicy.includeQueryString Lista de inclusão da string de consulta
Lista de proibições de strings de consulta cdnPolicy.cacheKeyPolicy.queryStringBlacklist[] Lista de exclusões da string de consulta
Lista de permissões da string de consulta cdnPolicy.cacheKeyPolicy.queryStringWhitelist[] Lista de inclusão da string de consulta
Incluir cabeçalhos HTTP cdnPolicy.cacheKeyPolicy.includeHttpHeaders[] Configurações de chaves de cache de cabeçalhos HTTP e cookies HTTP
Incluir cookies nomeados cdnPolicy.cacheKeyPolicy.includeNamedCookies[] Como incluir cookies nomeados

Detecção de outliers

Segundos do tempo base de expulsão outlierDetection.baseEjectionTime.seconds Detecção de outliers para NEGs sem servidor
Nanos de tempo base de expulsão outlierDetection.baseEjectionTime.nanos Detecção de outliers para NEGs sem servidor
Erros consecutivos outlierDetection.consecutiveErrors Detecção de outliers para NEGs sem servidor
Falha de gateway consecutiva outlierDetection.consecutiveGatewayFailure Detecção de outliers para NEGs sem servidor
Garantia de aplicação em erros consecutivos outlierDetection.enforcingConsecutiveErrors Detecção de outliers para NEGs sem servidor
Garantia de aplicação em falhas de gateway consecutivas outlierDetection.enforcingConsecutiveGatewayFailure Detecção de outliers para NEGs sem servidor
Garantia de aplicação em taxa de sucesso outlierDetection.enforcingSuccessRate Detecção de outliers para NEGs sem servidor
Intervalo em segundos outlierDetection.interval.seconds Detecção de outliers para NEGs sem servidor
Intervalo em nanossegundos outlierDetection.interval.nanos Detecção de outliers para NEGs sem servidor
Percentual máximo de expulsão outlierDetection.maxEjectionPercent Detecção de outliers para NEGs sem servidor
Mínimo de hosts da taxa de sucesso outlierDetection.successRateMinimumHosts Detecção de outliers para NEGs sem servidor
Volume de solicitações com taxa de sucesso outlierDetection.successRateRequestVolume Detecção de outliers para NEGs sem servidor
Fator stdev da taxa de sucesso outlierDetection.successRateStdevFactor Detecção de outliers para NEGs sem servidor

Verificação de integridade

Host http2HealthCheck.host Flags adicionais para verificações de integridade HTTP, HTTPS e HTTP/2
Caminho da solicitação http2HealthCheck.requestPath Critérios de sucesso para HTTP, HTTPS e HTTP/2
Solicitação sslHealthCheck.request Critérios de sucesso para SSL e TCP
Resposta sslHealthCheck.response Flags adicionais para verificações de integridade HTTP, HTTPS e HTTP/2
Porta http2HealthCheck.port Categorias, protocolos e portas da verificação de integridade
Nome da porta http2HealthCheck.portName Portas nomeadas
Cabeçalho do proxy http2HealthCheck.proxyHeader Cabeçalhos
Especificação da porta http2HealthCheck.portSpecification Sinalizações de especificação de porta
Protocolo type Categorias, protocolos e portas da verificação de integridade
Intervalo de verificação em segundos checkIntervalSec Sondagens
Tempo limite em segundos timeoutSec Sondagens
Limite íntegro healthyThreshold Estado de integridade
Limite não íntegro unhealthyThreshold Estado de integridade
Logging logConfig.enable Informações de geração de registros de verificação de integridade
Política de segurança perimetral edge_security_policy Políticas de segurança de borda
Política de segurança security_policy Visão geral da política de segurança
Redes de firewall rede Configurar regras de firewall
Projetos de firewall Nomes dos projetos em que as regras de firewall serão criadas. Configurar regras de firewall
Tags de destino targetTags[] Restringir quais clientes podem enviar tráfego ao balanceador de carga
Contas de serviço de destino targetServiceAccounts[] Filtragem de origem e destino por conta de serviço

A seguir

Você precisa conectar o componente de back-end a um componente de front-end. Para configurar o componente de front-end, consulte Configurar um front-end global do Cloud Load Balancing no App Design Center.