O balanceador de carga de aplicações é um balanceador de carga da camada 7 baseado em proxy que lhe permite executar e dimensionar os seus serviços. O balanceador de carga de aplicações distribui o tráfego HTTP e HTTPS para back-ends alojados numa variedade de plataformas, como o Compute Engine, o Google Kubernetes Engine (GKE), o Cloud Storage e o Cloud Run, bem como back-ends externos ligados através da Internet ou através da conectividade híbrida. Google Cloud
Os equilibradores de carga de aplicações estão disponíveis nos seguintes modos de implementação:
Balanceador de carga de aplicações externo: equilibra o tráfego proveniente de clientes na Internet. Para ver detalhes da arquitetura, consulte o artigo Arquitetura do Application Load Balancer externo.
Modo de implementação Nível de serviço de rede Esquema de balanceamento de carga Endereço IP Portas da interface Global externo Nível premium EXTERNAL_MANAGED IPv4
IPv6Pode referenciar exatamente uma porta de 1 a 65535.
Regional externo Nível Premium ou Standard EXTERNAL_MANAGED IPv4 Clássico Global no nível Premium
Regional no Standard Tier
EXTERNO* IPv4
IPv6 (requer nível Premium)* É possível anexar serviços de back-end daEXTERNAL_MANAGED
a regras de encaminhamento daEXTERNAL
. No entanto, não é possível anexar serviços de back-end daEXTERNAL
a regras de encaminhamento daEXTERNAL_MANAGED
. Para tirar partido das novas funcionalidades disponíveis apenas com o Application Load Balancer externo global, recomendamos que migre os seus recursosEXTERNAL
existentes paraEXTERNAL_MANAGED
através do processo de migração descrito em Migre recursos do Application Load Balancer externo clássico para o global.Balanceador de carga de aplicações interno: equilibra a carga do tráfego na sua rede VPC ou nas redes ligadas à sua rede VPC. Para ver detalhes da arquitetura, consulte o artigo Arquitetura do Application Load Balancer interno.
Modo de implementação Nível de serviço de rede Esquema de balanceamento de carga Endereço IP Portas da interface Regional interno Nível premium INTERNAL_MANAGED IPv4 Pode referenciar exatamente uma porta de 1 a 65535.
Interno entre regiões*
Nível premium INTERNAL_MANAGED IPv4 * O balanceador de carga usa recursos globais e pode ser implementado numa ou em várias Google Cloud regiões à sua escolha.
O esquema de balanceamento de carga é um atributo da regra de encaminhamento e do
serviço de back-end de um balanceador de
carga e indica se o balanceador de carga pode ser usado para tráfego interno ou
externo. O termo _MANAGED
no esquema de balanceamento de carga indica que o balanceador de carga é implementado como um serviço gerido nos Google Front Ends (GFEs) ou no proxy Envoy de código aberto. Num esquema de balanceamento de carga _MANAGED
, os pedidos são encaminhados para o GFE ou para o proxy Envoy.
Balanceador de carga de aplicações externo
Os equilibradores de carga de aplicações externos são implementados através de front-ends da Google (GFEs) ou proxies geridos. Os equilibradores de carga de aplicações externos globais e os equilibradores de carga de aplicações clássicos usam GFEs distribuídos globalmente, que funcionam em conjunto usando a rede global e o plano de controlo da Google. Os GFEs oferecem o equilíbrio de carga em várias regiões no nível Premium, direcionando o tráfego para o back-end saudável mais próximo que tenha capacidade e terminando o tráfego HTTP(S) o mais próximo possível dos seus utilizadores. Os balanceadores de carga de aplicações externos globais e os balanceadores de carga de aplicações externos regionais usam o software de proxy Envoy de código aberto para ativar capacidades avançadas de gestão de tráfego.
Estes equilibradores de carga podem ser implementados num dos seguintes modos: global, regional ou clássico.
Os balanceadores de carga de aplicações externos suportam as seguintes capacidades:
- Gestão de tráfego avançada, como a replicação de tráfego, a divisão de tráfego baseada em ponderação e as transformações de cabeçalhos baseadas em pedidos/respostas. Para obter detalhes, consulte o artigo Vista geral da gestão de tráfego.
- Balanceamento de carga do tráfego para back-ends alojados numa variedade de Google Cloud plataformas, como o Compute Engine, o Google Kubernetes Engine (GKE), o Cloud Run e muito mais. O apoio técnico de back-end depende do modo de implementação do balanceador de carga. Para ver detalhes, consulte a vista geral do balanceador de carga de aplicações externo.
- Respostas em cache com o Cloud CDN.
- Proteção contra DDoS ou outros ataques Web através do Google Cloud Armor.
- Equilibrar a carga para o GKE usando Ingress ou Gateway (totalmente orquestrado) ou NEGs autónomos.
- Organização de balanceadores de carga de aplicações externos regionais em aplicações do App Hub para compreender as interações dos balanceadores de carga de aplicações externos regionais e suportar as funções empresariais.
O diagrama seguinte mostra uma arquitetura de exemplo do Application Load Balancer externo.
Para uma vista geral completa, consulte o artigo Vista geral da arquitetura dos balanceadores de carga de aplicações externos.
Balanceador de carga de aplicações interno
Os balanceadores de carga de aplicações internos são balanceadores de carga regionais de camada 7 baseados no proxy Envoy que lhe permitem executar e dimensionar o tráfego da sua aplicação HTTP atrás de um endereço IP interno. Os equilibradores de carga de aplicações internos suportam back-ends numa região, mas podem ser configurados para serem acessíveis globalmente por clientes de qualquerGoogle Cloud região.
O balanceador de carga distribui o tráfego para back-ends alojados na Google Cloud, infraestrutura no local ou noutros ambientes de nuvem. Os balanceadores de carga de aplicações internos também suportam as seguintes funcionalidades:
- Políticas de Localidade. Num grupo de instâncias de back-end ou num grupo de pontos finais da rede, pode configurar a forma como os pedidos são distribuídos às instâncias ou aos pontos finais membros. Para obter detalhes, consulte o artigo Gestão de tráfego.
- Acesso global. Quando o acesso global está ativado, os clientes de qualquer região podem aceder ao equilibrador de carga. Para obter detalhes, consulte Ative o acesso global.
- Acesso a partir de redes ligadas. Pode tornar o seu equilibrador de carga acessível a clientes de redes além da sua própria rede de nuvem virtual privada (VPC). Google CloudAs outras redes têm de estar ligadas à rede VPC do balanceador de carga através do peering de redes VPC, do Cloud VPN ou do Cloud Interconnect. Para ver detalhes, consulte Aceda a redes associadas.
- Compatibilidade com o GKE através do Ingress (totalmente orquestrado). Para obter detalhes, consulte o artigo Configure o Ingress para balanceadores de carga de aplicações internos.
- Organização de balanceadores de carga de aplicações internos regionais em aplicações do App Hub para compreender as interações dos balanceadores de carga de aplicações internos regionais e suportar funções empresariais.
Para uma vista geral completa, consulte o artigo Vista geral da arquitetura para balanceadores de carga de aplicações internos.
Exemplos de utilização
As secções seguintes descrevem alguns exemplos de utilização comuns para equilibradores de carga de aplicações.
Serviços Web de três camadas
Pode implementar uma combinação de equilibradores de carga de aplicações e equilibradores de carga de rede para suportar serviços Web convencionais de três camadas. O exemplo seguinte mostra como pode implementar cada nível, consoante o tipo de tráfego:
- Nível Web. A interface de utilizador da aplicação é publicada por um Application Load Balancer externo com back-ends de grupos de instâncias. O tráfego entra a partir da Internet e é encaminhado por proxy do balanceador de carga para um conjunto de back-ends do grupo de instâncias em várias regiões. Estes back-ends enviam tráfego HTTP(S) para um conjunto de balanceadores de carga de aplicações internos.
- Nível de aplicação. O middleware da aplicação é implementado e dimensionado através de um balanceador de carga de aplicações interno e back-ends de grupos de instâncias. Os balanceadores de carga distribuem o tráfego para grupos de instâncias de middleware. Em seguida, estes grupos de instâncias de middleware enviam o tráfego para balanceadores de carga de rede de passagem interna.
- Nível da base de dados. Os balanceadores de carga de rede servem como front-ends para a camada de base de dados. Distribuem o tráfego para backends de armazenamento de dados em várias regiões.
Acesso global para balanceadores de carga de aplicações internos regionais
Se ativar o acesso global para o seu Application Load Balancer interno regional, as VMs do cliente de nível Web podem estar noutra região.
Este exemplo de aplicação de vários níveis mostra o seguinte:
- Uma camada Web acessível pela Internet a nível global que equilibra a carga do tráfego através de um balanceador de carga de aplicações externo.
- Uma camada de base de dados com equilíbrio de carga de back-end interno na região
us-east1
, à qual a camada Web global acede. - Uma VM cliente que faz parte da camada Web na região
europe-west1
que acede à camada de base de dados com equilíbrio de carga interno localizada emus-east1
.
Cargas de trabalho com conformidade jurisdicional
Algumas cargas de trabalho com requisitos regulamentares ou de conformidade exigem que as configurações de rede e a terminação de tráfego residam numa região específica. Para estas cargas de trabalho, um Application Load Balancer externo regional é frequentemente a opção preferida para fornecer os controlos jurisdicionais que estas cargas de trabalho requerem.
Gestão avançada de tráfego
Os equilibradores de carga de aplicações suportam funcionalidades avançadas de gestão de tráfego que lhe dão um controlo detalhado sobre a forma como o tráfego é processado. Estas capacidades incluem o seguinte:
- Pode atualizar a forma como o tráfego é gerido sem ter de modificar o código da aplicação.
- Pode encaminhar o tráfego de forma inteligente com base em parâmetros HTTP(S), como o anfitrião, o caminho, os cabeçalhos e outros parâmetros de pedido. Por exemplo, pode usar contentores do Cloud Storage para processar qualquer conteúdo de vídeo estático e pode usar grupos de instâncias ou NEGs para processar todos os outros pedidos.
- Pode mitigar os riscos quando implementa uma nova versão da sua aplicação usando a divisão de tráfego baseada no peso. Por exemplo, pode enviar 95% do tráfego para a versão anterior do seu serviço e 5% para a nova versão do seu serviço. Depois de validar que a nova versão funciona como esperado, pode alterar gradualmente as percentagens até que 100% do tráfego alcance a nova versão do seu serviço. A divisão do tráfego é normalmente usada para implementar novas versões, testes A/B, migração de serviços, modernização de serviços antigos e processos semelhantes.
Segue-se um exemplo de encaminhamento baseado em caminhos implementado através de um Application Load Balancer interno. Cada caminho é processado por um back-end diferente.
Para mais detalhes, consulte o seguinte:
- Vista geral da gestão de tráfego para balanceadores de carga de aplicações externos globais
- Vista geral da gestão de tráfego para balanceadores de carga de aplicações externos regionais
Extensibilidade com extensões de serviços
A integração com extensões de serviço permite-lhe injetar lógica personalizada no caminho de balanceamento de carga dos balanceadores de carga de aplicações suportados.
Para mais informações, consulte o artigo Vista geral das extensões de serviços.
Migrar serviços antigos para o Google Cloud
A migração de um serviço existente para o Google Cloud permite-lhe libertar capacidade no local e reduzir o custo e o encargo da manutenção de uma infraestrutura no local. Pode configurar temporariamente uma implementação híbrida que lhe permita encaminhar tráfego para o seu serviço no local atual e para um ponto final de serviço Google Cloud correspondente.
O diagrama seguinte demonstra esta configuração com um Application Load Balancer interno. Se estiver a usar um balanceador de carga interno, pode configurar o balanceador de carga para usar a divisão de tráfego com base no peso para dividir o tráfego entre os dois serviços. Google Cloud A divisão de tráfego permite-lhe começar por enviar 0% do tráfego para o serviçoGoogle Cloud e 100% para o serviço no local. Em seguida, pode aumentar gradualmente a proporção de tráfego enviado para o serviço Google Cloud. Eventualmente, envia 100% do tráfego para o serviço Google Cloud e pode desativar o serviço no local.
Balanceamento de carga para aplicações do GKE
Existem três formas de implementar equilibradores de carga de aplicações para clusters do GKE:
- GKE Gateway controller. Apenas suportado pelos balanceadores de carga de aplicações externos globais, pelos balanceadores de carga de aplicações clássicos e pelos balanceadores de carga de aplicações internos regionais. Para ver instruções de configuração, consulte o artigo Implementação de gateways.
- Controlador de entrada do GKE. Pode usar o controlador de entrada do GKE incorporado, que implementa equilibradores de carga em nome dos utilizadores do GKE.Google Cloud Isto é igual à arquitetura de equilíbrio de carga autónoma, exceto que o respetivo ciclo de vida é totalmente automatizado e controlado pelo GKE. Suportado por balanceadores de carga de aplicações externos e internos. Para ver instruções de configuração, consulte o seguinte:
- NEGs zonais autónomos. Os NEGs autónomos são implementados e geridos através do controlador do NEG do GKE, mas todos os recursos de equilíbrio de carga (regras de encaminhamento, verificações de estado, etc.) são implementados manualmente. Estes são suportados por balanceadores de carga de aplicações externos e internos.
Equilíbrio de carga para o Cloud Run, as funções do Cloud Run e as aplicações do App Engine
Pode usar um Application Load Balancer como o front-end das suas Google Cloud aplicações sem servidor. Isto permite-lhe configurar as suas aplicações sem servidor para publicar pedidos a partir de um endereço IP dedicado que não é partilhado com outros serviços.
Para configurar esta opção, usa um NEG sem servidor como back-end do equilibrador de carga. Os diagramas seguintes mostram como uma aplicação sem servidor está integrada num Application Load Balancer.
Global externo
Este diagrama mostra como um NEG sem servidor se enquadra numa arquitetura de Application Load Balancer externo global.
Regional externo
Este diagrama mostra como um NEG sem servidor se enquadra numa arquitetura de Application Load Balancer externo regional. Este equilibrador de carga só suporta back-ends do Cloud Run.
Regional interno
Este diagrama mostra como um NEG sem servidor se enquadra no modelo do Application Load Balancer interno regional. Este equilibrador de carga só suporta back-ends do Cloud Run.
Interno entre regiões
Este diagrama mostra como um NEG sem servidor se enquadra no modelo do Application Load Balancer interno entre regiões. Este equilibrador de carga só suporta back-ends do Cloud Run.
Documentação relacionada:
- Vista geral dos NEGs sem servidor
- Configure um Application Load Balancer externo global com um backend do Cloud Run, das funções do Cloud Run ou do App Engine
- Configure um Application Load Balancer externo regional com um back-end do Cloud Run
- Configure um Application Load Balancer interno regional com um back-end do Cloud Run
- Configure um balanceador de carga de aplicações interno entre regiões com o Cloud Run
Balanceamento de carga para back-ends fora do domínio Google Cloud
Os balanceadores de carga de aplicações suportam o tráfego de balanceamento de carga para pontos finais que se estendem para além Google Cloud, como centros de dados nas instalações e outros ambientes de nuvem. Normalmente, os backends externos estão acessíveis de uma das seguintes formas:
Acessível através da Internet pública. Para estes pontos finais, usa um NEG da Internet como o back-end do equilibrador de carga. O NEG da Internet está configurado para apontar para um único ponto final FQDN:Port ou IP:Port no back-end externo. As NEGs de Internet podem ser globais ou regionais.
O diagrama seguinte demonstra como estabelecer ligação a back-ends externos acessíveis através da Internet pública com um NEG da Internet global.
Balanceador de carga de aplicações externo global com um back-end externo. Para mais detalhes, consulte a vista geral dos NEGs da Internet.
Acessível através da conetividade híbrida (Cloud Interconnect ou Cloud VPN). Para estes pontos finais, usa um NEG híbrido como o back-end do equilibrador de carga. O NEG híbrido está configurado para apontar para pontos finais IP:Porta no back-end externo.
Os diagramas seguintes demonstram como estabelecer ligação a back-ends externos acessíveis através do Cloud Interconnect ou do Cloud VPN.
Externo
Conetividade híbrida com equilibradores de carga de aplicações externos globais. Internos
Conetividade híbrida com balanceadores de carga de aplicações internos. Para mais detalhes, consulte a vista geral dos NEGs híbridos.
Integração com o Private Service Connect
O Private Service Connect permite o consumo privado de serviços em redes VPC que pertencem a diferentes grupos, equipas, projetos ou organizações. Pode usar o Private Service Connect para aceder a APIs e serviços Google ou a serviços geridos noutra rede VPC.
Pode usar um Application Load Balancer externo global para aceder a serviços publicados através do Private Service Connect. Para mais informações, consulte o artigo Acerca dos back-ends do Private Service Connect.
Pode usar um Application Load Balancer interno para enviar pedidos para APIs Google regionais e serviços suportados. Para mais informações, consulte o artigo Aceda às APIs Google através de back-ends.
Alta disponibilidade e comutação por falha entre regiões
A comutação por falha entre regiões só está disponível com balanceadores de carga de aplicações externos globais, balanceadores de carga de aplicações clássicos e balanceadores de carga de aplicações internos entre regiões. Estes balanceadores de carga permitem-lhe melhorar a disponibilidade do serviço quando cria serviços de back-end globais com back-ends em várias regiões. Se os backends numa determinada região estiverem inativos, o tráfego é transferido para outra região sem problemas.
Para saber mais sobre o funcionamento da comutação por falha, consulte os seguintes tópicos:
- Balanceadores de carga de aplicações externos globais: como os pedidos são distribuídos
- Balanceadores de carga de aplicações internos entre regiões: alta disponibilidade e comutação por falha entre regiões