Panoramica del bilanciatore del carico delle applicazioni

L'Application Load Balancer è un bilanciatore del carico di livello 7 basato su proxy che ti consente di eseguire e scalare i servizi. Il bilanciatore del carico delle applicazioni distribuisce il traffico HTTP e HTTPS ai backend ospitati su diverse piattaforme Google Cloud, come Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage e Cloud Run, nonché a backend esterni connessi su internet o mediante connettività ibrida.

I bilanciatori del carico delle applicazioni sono disponibili nelle seguenti modalità di deployment:

Modalità di deployment Livello di servizio di rete Schema di bilanciamento del carico Indirizzo IP Porte di frontend Link
Bilanciatore del carico delle applicazioni esterno

Bilancia il carico del traffico proveniente dai client su internet.

Esterno globale Livello Premium EXTERNAL_MANAGED IPv4
IPv6

Può fare riferimento a una sola porta da 1-65535.

Dettagli dell'architettura
Esterno regionale Livello Premium o Standard EXTERNAL_MANAGED IPv4
Classico

Globale nel livello Premium

Regionale nel livello Standard

EXTERNAL IPv4
IPv6 richiede il livello Premium
Bilanciatore del carico delle applicazioni interno

Bilancia il carico del traffico all'interno della tua rete VPC o delle reti connesse alla tua rete VPC.

Interno a livello di regione Livello Premium INTERNAL_MANAGED IPv4

Può fare riferimento a una sola porta da 1-65535.

Dettagli dell'architettura

Interno tra regioni*

Livello Premium INTERNAL_MANAGED IPv4

Lo schema di bilanciamento del carico è un attributo della regola di forwarding e del servizio di backend di un bilanciatore del carico e indica se il bilanciatore del carico può essere utilizzato per il traffico interno o esterno. Il termine *_MANAGED nello schema di bilanciamento del carico indica che il bilanciatore del carico è implementato come servizio gestito su Google Front End (GFE) o sul proxy Envoy open source. In uno schema di bilanciamento del carico *_MANAGED, le richieste vengono instradate al GFE o al proxy Envoy.

* Il bilanciatore del carico utilizza risorse globali e può essere implementato in una o più regioni Google Cloud a tua scelta.

Bilanciatore del carico delle applicazioni esterno

I bilanciatori del carico delle applicazioni esterni vengono implementati utilizzando Google Front End (GFE) o proxy gestiti. Gli Application Load Balancer esterni globali e gli Application Load Balancer classici utilizzano GFE distribuiti a livello globale, che operano insieme utilizzando la rete globale e il piano di controllo di Google. I GFE offrono il bilanciamento del carico a più regioni nel livello Premium, indirizzando il traffico al backend integro più vicino con capacità disponibile e terminando il traffico HTTP(S) il più vicino possibile ai tuoi utenti. Gli Application Load Balancer esterni globali e quelli esterni regionali utilizzano il software open source proxy Envoy per abilitare funzionalità avanzate di gestione del traffico.

Il deployment di questi bilanciatori del carico può essere eseguito in una delle seguenti modalità: globale, regionale o classica.

I bilanciatori del carico delle applicazioni esterni supportano le seguenti funzionalità:

Il seguente diagramma mostra un esempio di architettura di un bilanciatore del carico delle applicazioni esterno.

Architettura del bilanciatore del carico delle applicazioni esterno.
Architettura del bilanciatore del carico delle applicazioni esterno.

Per una panoramica completa, consulta Panoramica dell'architettura per bilanciatori del carico delle applicazioni esterni.

Bilanciatore del carico delle applicazioni interno

Gli Application Load Balancer interni sono bilanciatori del carico regionali di livello 7 basati su proxy Envoy che ti consentono di eseguire e scalare il traffico delle applicazioni HTTP dietro un indirizzo IP interno. I bilanciatori del carico delle applicazioni interni supportano i backend in un'unica regione, ma possono essere configurati per l'accesso globale ai client di qualsiasi regione Google Cloud.

Il bilanciatore del carico distribuisce il traffico a backend ospitati su Google Cloud, on-premise o in altri ambienti cloud. I bilanciatori del carico delle applicazioni interni supportano anche le seguenti funzionalità:

  • Norme relative alle località. All'interno di un gruppo di istanza di backend o di un gruppo di endpoint di rete, puoi configurare la modalità di distribuzione delle richieste alle istanze o agli endpoint dei membri. Per maggiori dettagli, consulta Gestione del traffico.
  • Accesso globale. Se l'accesso globale è abilitato, i client di qualsiasi regione possono accedere al bilanciatore del carico. Per maggiori dettagli, vedi Abilitare l'accesso globale.
  • Accesso dalle reti connesse. Puoi rendere il bilanciatore del carico accessibile ai client da reti esterne alla propria rete VPC (Virtual Private Cloud) Google Cloud. Le altre reti devono essere connesse alla rete VPC del bilanciatore del carico utilizzando peering di rete VPC, Cloud VPN o Cloud Interconnect. Per maggiori dettagli, consulta Accedere alle reti connesse.
  • Compatibilità con GKE mediante Ingress (completamente orchestrato). Per maggiori dettagli, consulta Configurare Ingress per i bilanciatori del carico delle applicazioni interni.
  • I bilanciatori del carico delle applicazioni interni regionali sono supportati con App Hub, che è in anteprima.
Architettura del bilanciatore del carico delle applicazioni interno.
Architettura del bilanciatore del carico delle applicazioni interno.

Per una panoramica completa, consulta Panoramica dell'architettura per bilanciatori del carico delle applicazioni interni.

Casi d'uso

Le seguenti sezioni descrivono alcuni casi d'uso comuni per gli Application Load Balancer.

Servizi web a tre livelli

Puoi eseguire il deployment di una combinazione di bilanciatori del carico delle applicazioni e bilanciatori del carico di rete per supportare i servizi web convenzionali a tre livelli. L'esempio seguente mostra come eseguire il deployment di ogni livello, a seconda del tipo di traffico:

  • Livello web. Il frontend dell'applicazione è gestito da un Application Load Balancer esterno con backend di gruppi di istanze. Il traffico entra da internet e viene trasferito tramite proxy dal bilanciatore del carico a un set di backend di gruppi di istanze in varie regioni. Questi backend inviano traffico HTTP(S) a un set di Application Load Balancer interni.
  • Livello di applicazione. Il deployment del middleware dell'applicazione viene eseguito e scalato utilizzando un bilanciatore del carico delle applicazioni interno e backend di gruppi di istanze. I bilanciatori del carico distribuiscono il traffico ai gruppi di istanze middleware. Questi gruppi di istanze middleware inviano quindi il traffico ai bilanciatori del carico di rete passthrough interni.
  • Livello database. I bilanciatori del carico di rete fungono da frontend per il livello del database. Distribuiscono il traffico ai backend di archiviazione dati in varie regioni.
Routing basato su livello 7 in un'applicazione web a tre livelli.
Routing basato su livello 7 in un'applicazione web a tre livelli.

Accesso globale per Application Load Balancer interni regionali

Se abiliti l'accesso globale per il bilanciatore del carico delle applicazioni interno regionale, le VM client del livello web possono trovarsi in un'altra regione.

Questo esempio di applicazione a più livelli mostra quanto segue:

  • Un livello web per internet disponibile a livello globale che bilancia il carico del traffico utilizzando un bilanciatore del carico delle applicazioni esterno.
  • Un livello di database con bilanciamento del carico del backend interno nella regione us-east1 a cui accede il livello web globale.
  • Una VM client che fa parte del livello web nella regione europe-west1 che accede al livello del database con bilanciamento del carico interno situato in us-east1.
App web a tre livelli con bilanciatore del carico delle applicazioni esterno, accesso globale e Application Load Balancer interno.
App web a tre livelli con un bilanciatore del carico delle applicazioni esterno, accesso globale e un bilanciatore del carico delle applicazioni interno (fai clic per ingrandire).

Carichi di lavoro con conformità giurisdizionale

Alcuni carichi di lavoro con requisiti normativi o di conformità richiedono che le configurazioni di rete e la terminazione del traffico risiedano in una regione specifica. Per questi carichi di lavoro, un bilanciatore del carico delle applicazioni esterno regionale è spesso l'opzione preferita per fornire i controlli giurisdizionali richiesti da questi carichi di lavoro.

Gestione avanzata del traffico

Gli Application Load Balancer supportano funzionalità avanzate di gestione del traffico che offrono un controllo granulare sulla modalità di gestione del traffico. Queste funzionalità includono:

  • Puoi aggiornare la modalità di gestione del traffico senza dover modificare il codice dell'applicazione.
  • Puoi instradare il traffico in modo intelligente in base a parametri HTTP(S), come host, percorso, intestazioni e altri parametri della richiesta. Ad esempio, puoi utilizzare i bucket Cloud Storage per gestire qualsiasi contenuto video statico e i gruppi di istanze o i NEG per gestire tutte le altre richieste.
  • Puoi mitigare i rischi quando esegui il deployment di una nuova versione dell'applicazione utilizzando la suddivisione del traffico in base alla ponderazione. Ad esempio, puoi inviare il 95% del traffico alla versione precedente del servizio e il 5% alla nuova versione del servizio. Dopo aver verificato che la nuova versione funzioni come previsto, puoi spostare gradualmente le percentuali fino a quando il 100% del traffico non raggiunge la nuova versione del servizio. La suddivisione del traffico viene in genere utilizzata per il deployment di nuove versioni, i test A/B, la migrazione dei servizi, la modernizzazione dei servizi legacy e processi simili.

Di seguito è riportato un esempio di routing basato su percorso implementato utilizzando un Application Load Balancer interno. Ogni percorso è gestito da un backend diverso.

Routing basato su percorso con bilanciatori del carico delle applicazioni interni.
Routing basato su percorso con bilanciatori del carico delle applicazioni interni.

Per maggiori dettagli, vedi quanto segue:

Estensibilità con le estensioni di servizio

I callout delle estensioni di servizio consentono di inserire una logica personalizzata nel percorso dei dati del bilanciamento del carico. Queste estensioni consentono di indicare ai bilanciatori del carico delle applicazioni supportati di effettuare chiamate gRPC ad applicazioni o servizi gestiti dall'utente durante l'elaborazione dei dati.

Per saperne di più, consulta la panoramica delle estensioni di servizio.

Migrazione dei servizi legacy a Google Cloud

La migrazione di un servizio esistente a Google Cloud ti consente di liberare capacità on-premise e di ridurre i costi e l'onere associati alla manutenzione di un'infrastruttura on-premise. Puoi configurare temporaneamente un deployment ibrido che ti consenta di instradare il traffico sia al servizio on-premise attuale che a un endpoint di servizio Google Cloud corrispondente.

Il seguente diagramma illustra questa configurazione con un bilanciatore del carico delle applicazioni interno. Se utilizzi un bilanciatore del carico interno, puoi configurare il bilanciatore del carico Google Cloud in modo che utilizzi la suddivisione del traffico in base alla ponderazione in modo da suddividere il traffico tra i due servizi. La suddivisione del traffico consente di iniziare inviando lo 0% del traffico al servizio Google Cloud e il 100% al servizio on-premise. È quindi possibile aumentare gradualmente la proporzione di traffico inviata al servizio Google Cloud. Alla fine, invierai il 100% del traffico al servizio Google Cloud e potrai ritirare il servizio on-premise.

Esegui la migrazione dei servizi legacy a Google Cloud.
Esegui la migrazione dei servizi legacy a Google Cloud.

Bilanciamento del carico per le applicazioni GKE

Esistono tre modi per eseguire il deployment di bilanciatori del carico delle applicazioni per i cluster GKE:

  • Controller gateway GKE. Supportata solo dagli Application Load Balancer esterni globali, dagli Application Load Balancer classici e dagli Application Load Balancer interni regionali. Per le istruzioni di configurazione, consulta la pagina gateway di deployment.
  • Controller GKE Ingress. Puoi utilizzare il controller GKE Ingress integrato, che esegue il deployment dei bilanciatori del carico Google Cloud per conto degli utenti GKE. Questa è la stessa dell'architettura di bilanciamento del carico autonoma, ad eccezione del fatto che il suo ciclo di vita è completamente automatizzato e controllato da GKE. Supportato da bilanciatori del carico delle applicazioni sia esterni che interni. Per istruzioni sulla configurazione, consulta questo articolo:
  • NEG autonomi a livello di zona. Il deployment dei NEG autonomi viene eseguito e gestito tramite il controller NEG GKE, mentre il deployment di tutte le risorse di bilanciamento del carico (regole di forwarding, controlli di integrità e così via) viene eseguito manualmente. che sono supportati da bilanciatori del carico delle applicazioni esterni e interni.

Bilanciamento del carico per le applicazioni Cloud Run, Cloud Functions e App Engine

Puoi utilizzare un bilanciatore del carico delle applicazioni come frontend per le tue applicazioni serverless Google Cloud. In questo modo puoi configurare le tue applicazioni serverless per gestire le richieste da un indirizzo IP dedicato non condiviso con altri servizi.

Per configurarlo, utilizza un NEG serverless come backend del bilanciatore del carico. I seguenti diagrammi mostrano in che modo un'applicazione serverless è integrata con un bilanciatore del carico delle applicazioni.

Esterno globale

Questo diagramma mostra come un NEG serverless si inserisce in un'architettura di Application Load Balancer esterno globale.

Architettura del bilanciatore del carico delle applicazioni esterno globale per le app serverless.
Architettura del bilanciatore del carico delle applicazioni esterno globale per le app serverless.

Esterno regionale

Questo diagramma mostra come un NEG serverless si inserisce in un'architettura di Application Load Balancer esterno regionale. Questo bilanciatore del carico supporta solo i backend di Cloud Run.

Architettura del bilanciatore del carico delle applicazioni esterno regionale per le app serverless.
Architettura del bilanciatore del carico delle applicazioni esterno regionale per le app serverless.

Interno a livello di regione

Questo diagramma mostra come un NEG serverless si inserisce nel modello dell'Application Load Balancer interno regionale. Questo bilanciatore del carico supporta solo i backend di Cloud Run.

Architettura del bilanciatore del carico delle applicazioni interno regionale per le app serverless.
Architettura del bilanciatore del carico delle applicazioni interno regionale per le app serverless.

Interno tra regioni

Questo diagramma mostra come un NEG serverless si inserisce nel modello dell'Application Load Balancer interno tra regioni. Questo bilanciatore del carico supporta solo i backend di Cloud Run.

Architettura del bilanciatore del carico delle applicazioni interno tra regioni per app serverless.
Architettura del bilanciatore del carico delle applicazioni interno tra regioni per app serverless (fai clic per ingrandire).

Documentazione correlata:

Bilanciamento del carico verso i backend esterni a Google Cloud

I bilanciatori del carico delle applicazioni supportano il bilanciamento del carico del traffico verso gli endpoint che si estendono oltre Google Cloud, come i data center on-premise e altri ambienti cloud. In genere, i backend esterni sono accessibili in uno dei seguenti modi:

  • Accessibile su internet pubblico. Per questi endpoint, utilizzi un NEG internet come backend del bilanciatore del carico. Il NEG internet è configurato per puntare a un singolo endpoint FQDN:Porta o IP:Porta sul backend esterno. I NEG internet possono essere globali o a livello di regione.

    Il seguente diagramma mostra come connettersi a backend esterni accessibili su rete internet pubblica utilizzando un NEG internet globale.

    Bilanciatore del carico delle applicazioni esterno globale con un backend esterno.
    Application Load Balancer esterno globale con backend esterno.

    Per maggiori dettagli, consulta la panoramica sui NEG internet.

  • Accessibile mediante la connettività ibrida (Cloud Interconnect o Cloud VPN). Per questi endpoint, utilizzerai un NEG ibrido come backend del bilanciatore del carico. Il NEG ibrido è configurato in modo da puntare agli endpoint IP:Port sul backend esterno.

    I seguenti diagrammi mostrano come connettersi a backend esterni accessibili utilizzando Cloud Interconnect o Cloud VPN.

    Esterno

    Connettività ibrida con bilanciatori del carico delle applicazioni esterni globali.
    Connettività ibrida con bilanciatori del carico delle applicazioni esterni globali.

    Interno

    Connettività ibrida con bilanciatori del carico delle applicazioni interni.
    Connettività ibrida con bilanciatori del carico delle applicazioni interni.

    Per ulteriori dettagli, consulta la panoramica sui NEG ibridi.

Integrazione con Private Service Connect

Private Service Connect consente il consumo privato dei servizi su reti VPC appartenenti a gruppi, team, progetti od organizzazioni diversi. Puoi utilizzare Private Service Connect per accedere alle API e ai servizi Google o ai servizi gestiti in un'altra rete VPC.

Puoi utilizzare un Application Load Balancer esterno globale per accedere ai servizi pubblicati utilizzando Private Service Connect. Per maggiori informazioni, consulta Informazioni sui backend di Private Service Connect.

Puoi utilizzare un bilanciatore del carico delle applicazioni interno per inviare richieste alle API e ai servizi Google regionali supportati. Per ulteriori informazioni, consulta Accedere alle API di Google tramite backend.

Alta disponibilità e failover tra regioni

Il failover tra regioni è disponibile solo con gli Application Load Balancer esterni globali, con gli Application Load Balancer classici e con gli Application Load Balancer interni tra regioni. Questi bilanciatori del carico consentono di migliorare la disponibilità dei servizi quando crei servizi di backend globali con backend in più regioni. Se i backend in una determinata regione sono inattivi, il traffico esegue il failover controllato verso un'altra regione.

Per scoprire di più su come funziona il failover, consulta gli argomenti seguenti: