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, tra cui Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage e Cloud Run, nonché ai backend esterni connessi tramite internet o utilizzando la connettività ibrida.
I bilanciatori del carico delle applicazioni sono disponibili nelle seguenti modalità di deployment:
Bilanciatore del carico delle applicazioni esterno: bilancia il carico del traffico proveniente dai client su internet. Per i dettagli sull'architettura, vedi Architettura del bilanciatore del carico delle applicazioni esterno.
Modalità di deployment Livello di servizio di rete Schema di bilanciamento del carico † Indirizzo IP Porte frontend Esterno globale Livello Premium EXTERNAL_MANAGED IPv4
IPv6Può fare riferimento esattamente a una porta tra 1-65535.
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 rete VPC o delle reti connesse alla rete VPC. Per i dettagli sull'architettura, vedi Architettura del bilanciatore del carico delle applicazioni interno.
Modalità di deployment Livello di servizio di rete Schema di bilanciamento del carico † Indirizzo IP Porte frontend Interno a livello di regione Livello Premium INTERNAL_MANAGED IPv4 Può fare riferimento esattamente a una porta tra 1-65535.
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 di tipo *_MANAGED
, le richieste vengono instradate a GFE o al proxy Envoy.
* Il bilanciatore del carico utilizza risorse globali e può essere sottoposto a deployment 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. I bilanciatori del carico delle applicazioni esterni globali e i bilanciatori del carico delle applicazioni classici utilizzano GFE distribuiti a livello globale e operano insieme utilizzando la rete globale e il piano di controllo di Google. I GFE offrono bilanciamento del carico multiregionale nel livello Premium, indirizzando il traffico al backend integro più vicino dotato di capacità e terminando il traffico HTTP(S) il più vicino possibile agli utenti. I bilanciatori del carico delle applicazioni esterni globali e i bilanciatori del carico delle applicazioni 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à:
- Gestione avanzata del traffico, come mirroring del traffico, suddivisione del traffico in base al peso e trasformazioni di intestazione basate su richiesta/risposta. Per maggiori dettagli, vedi Panoramica della gestione del traffico.
- Bilanciamento del carico del traffico verso i backend ospitati su diverse piattaforme Google Cloud, come Compute Engine, Google Kubernetes Engine (GKE), Cloud Run e altre ancora. Il supporto del backend dipende dalla modalità di deployment del bilanciatore del carico. Per maggiori dettagli, consulta la panoramica del bilanciatore del carico delle applicazioni esterno.
- Risposte memorizzate nella cache con Cloud CDN.
- Protezione da attacchi DDoS o altri web mediante l'utilizzo di Google Cloud Armor.
- Bilanciamento del carico in GKE tramite Ingress o Gateway (completamente orchestrato) o NEG autonomi.
- I bilanciatori del carico delle applicazioni esterni regionali sono supportati con App Hub, in anteprima.
Il seguente diagramma mostra un'architettura di esempio del bilanciatore del carico delle applicazioni esterno.
Per una panoramica completa, vedi Panoramica dell'architettura per i bilanciatori del carico delle applicazioni esterni.
Bilanciatore del carico delle applicazioni interno
I bilanciatori del carico delle applicazioni interni sono bilanciatori del carico regionali basati su proxy Envoy di livello 7 che 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 in modo da essere accessibili a livello globale dai client di qualsiasi regione Google Cloud.
Il bilanciatore del carico distribuisce il traffico ai 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 sulla 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 agli endpoint o alle istanze dei membri. Per maggiori dettagli, vedi Gestione del traffico.
- Accesso globale. Quando l'accesso globale è abilitato, i client di qualsiasi regione possono accedere al bilanciatore del carico. Per maggiori dettagli, vedi Abilitare l'accesso globale.
- Accesso da reti connesse. Puoi rendere il bilanciatore del carico accessibile ai client da reti esterne alla propria rete Virtual Private Cloud (VPC) di Google Cloud. Le altre reti devono essere connesse alla rete VPC del bilanciatore del carico tramite peering di rete VPC, Cloud VPN o Cloud Interconnect. Per maggiori dettagli, vedi Accedere alle reti connesse.
- Compatibilità con GKE mediante Ingress (completamente orchestrato). Per maggiori dettagli, vedi Configurare Ingress per i bilanciatori del carico delle applicazioni interni.
- I bilanciatori del carico delle applicazioni interni regionali sono supportati tramite App Hub, in anteprima.
Per una panoramica completa, vedi Panoramica dell'architettura per i bilanciatori del carico delle applicazioni interni.
Casi d'uso
Le sezioni seguenti descrivono alcuni casi d'uso comuni per i bilanciatori del carico delle applicazioni.
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 bilanciatore del carico delle applicazioni esterno con backend di gruppi di istanze. Il traffico entra da internet e viene inviato tramite proxy dal bilanciatore del carico a un insieme di backend di gruppi di istanze in varie regioni. Questi backend inviano il traffico HTTP(S) a un insieme di Application Load Balancer interni.
- Livello di applicazione. Il deployment e la scalabilità del middleware dell'applicazione vengono utilizzati mediante un bilanciatore del carico delle applicazioni interno e i backend dei gruppi di istanze. I bilanciatori del carico distribuiscono il traffico ai gruppi di istanze middleware. Questi gruppi di istanze middleware inviano il traffico ai bilanciatori del carico di rete passthrough interni.
- Livello di database. I bilanciatori del carico di rete fungono da frontend per il livello del database. Distribuiscono il traffico ai backend di archiviazione dei dati in varie regioni.
Accesso globale per i bilanciatori del carico delle applicazioni interni regionali
Se abiliti l'accesso globale per il bilanciatore del carico delle applicazioni interno regionale, le VM client a livello web possono trovarsi in un'altra regione.
Questo esempio di applicazione multilivello 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 backend interno nella regione
us-east1
a cui si accede dal livello web globale. - Una VM client che fa parte del livello web nella regione
europe-west1
che accede al livello del database interno con bilanciamento del carico situato inus-east1
.
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
I bilanciatori del carico delle applicazioni supportano funzionalità avanzate di gestione del traffico che offrono un controllo granulare sulle modalità di gestione del traffico. tra cui:
- Puoi aggiornare la modalità di gestione del traffico senza dover modificare il codice dell'applicazione.
- Puoi indirizzare il traffico in modo intelligente in base a parametri HTTP(S), come host, percorso, intestazioni e altri parametri di richiesta. Ad esempio, puoi utilizzare i bucket Cloud Storage per gestire i contenuti video statici e puoi utilizzare i gruppi di istanze o 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 basata sui pesi. 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 finché 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 mediante un bilanciatore del carico delle applicazioni interno. Ogni percorso è gestito da un backend diverso.
Per ulteriori dettagli, consulta quanto segue:
- Panoramica della gestione del traffico per Application Load Balancer esterni globali
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni esterni regionali
Estensibilità con Service Extensions
I callout di Service Extensions consentono di inserire logica personalizzata nel percorso dei dati di 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 ulteriori informazioni, consulta la panoramica di Service Extensions.
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 il carico della manutenzione di un'infrastruttura on-premise. Puoi configurare temporaneamente un deployment ibrido che ti consente di instradare il traffico sia al servizio on-premise attuale sia a un endpoint di servizio Google Cloud corrispondente.
Il seguente diagramma mostra 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 da utilizzare la suddivisione del traffico in base al peso per suddividere il traffico tra i due servizi. La suddivisione del traffico ti consente di iniziare inviando lo 0% del traffico al servizio Google Cloud e il 100% al servizio on-premise. Puoi quindi aumentare gradualmente la proporzione di traffico inviata al servizio Google Cloud. Alla fine, invii il 100% del traffico al servizio Google Cloud e potrai ritirare il servizio on-premise.
Bilanciamento del carico per le applicazioni GKE
Esistono tre modi per eseguire il deployment dei bilanciatori del carico delle applicazioni per i cluster GKE:
- Controller gateway GKE. Supportata solo dai bilanciatori del carico delle applicazioni esterni globali, dagli Application Load Balancer classici e dagli Application Load Balancer interni regionali. Per le istruzioni di configurazione, vedi Deployment di gateway.
- Controller Ingress GKE. Puoi utilizzare il controller GKE Ingress integrato, che esegue il deployment dei bilanciatori del carico Google Cloud per conto degli utenti GKE. È uguale all'architettura di bilanciamento del carico standalone, ma il ciclo di vita è completamente automatizzato e controllato da GKE. Supportata da bilanciatori del carico delle applicazioni sia esterni che interni. Per istruzioni di configurazione, consulta quanto segue:
- NEG a livello di zona autonomi. Il deployment dei NEG autonomi viene eseguito e gestito tramite il controller NEG GKE, ma il deployment di tutte le risorse di bilanciamento del carico (regole di forwarding, controlli di integrità e così via) viene eseguito manualmente. Sono supportati da bilanciatori del carico delle applicazioni sia esterni che 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 di 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 come un'applicazione serverless è integrata con un bilanciatore del carico delle applicazioni.
Esterno globale
Questo diagramma mostra il modo in cui un NEG serverless si inserisce in un'architettura del bilanciatore del carico delle applicazioni esterno globale.
Esterno regionale
Questo diagramma mostra il modo in cui un NEG serverless si inserisce in un'architettura del bilanciatore del carico delle applicazioni esterno regionale. Questo bilanciatore del carico supporta solo i backend Cloud Run.
Interno a livello di regione
Questo diagramma mostra come un NEG serverless si inserisce nel modello di bilanciatore del carico delle applicazioni interno regionale. Questo bilanciatore del carico supporta solo i backend Cloud Run.
Interno tra regioni
Questo diagramma mostra come un NEG serverless si inserisce nel modello di bilanciatore del carico delle applicazioni interno tra regioni. Questo bilanciatore del carico supporta solo i backend Cloud Run.
Documentazione correlata:
- Panoramica dei NEG serverless
- Configura un bilanciatore del carico delle applicazioni esterno globale con un backend Cloud Run, Cloud Functions o App Engine
- Configura un bilanciatore del carico delle applicazioni esterno regionale con un backend di Cloud Run
- Configura un bilanciatore del carico delle applicazioni interno regionale con un backend Cloud Run
- Configura un bilanciatore del carico delle applicazioni interno tra regioni con Cloud Run
Bilanciamento del carico verso i backend esterni a Google Cloud
I bilanciatori del carico delle applicazioni supportano il bilanciamento del carico del traffico verso endpoint che si estendono oltre Google Cloud, come data center on-premise e altri ambienti cloud. I backend esterni sono in genere accessibili in uno dei seguenti modi:
Accessibile tramite la rete internet pubblica. Per questi endpoint, usi un NEG internet come backend del bilanciatore del carico. Il NEG internet è configurato in modo da puntare a un singolo endpoint FQDN:Port o IP:Port sul backend esterno. I NEG internet possono essere globali o a livello di regione.
Il seguente diagramma mostra come connettersi a backend esterni accessibili sulla rete internet pubblica utilizzando un NEG internet globale.
Per maggiori dettagli, consulta Panoramica dei NEG internet.
Accessibile tramite la connettività ibrida (Cloud Interconnect o Cloud VPN). Per questi endpoint, utilizza 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.
Esterna
Interna
Per maggiori dettagli, consulta Panoramica dei NEG ibridi.
Integrazione con Private Service Connect
Private Service Connect consente il consumo privato di servizi nelle reti VPC che appartengono a diversi gruppi, team, progetti o organizzazioni. 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 bilanciatore del carico delle applicazioni esterno globale per accedere ai servizi pubblicati utilizzando Private Service Connect. Per ulteriori informazioni, vedi 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 maggiori informazioni, vedi Accedere alle API di Google tramite backend.
Disponibilità elevata e failover tra regioni
Il failover tra regioni è disponibile solo con bilanciatori del carico delle applicazioni esterni globali, bilanciatori del carico delle applicazioni classici e bilanciatori del carico delle applicazioni 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 non sono attivi, il traffico esegue il failover verso un'altra regione.
Per saperne di più su come funziona il failover, consulta i seguenti argomenti:
- Bilanciatori del carico delle applicazioni esterni globali: modalità di distribuzione delle richieste
- Bilanciatori del carico delle applicazioni interni tra regioni: alta disponibilità e failover tra regioni