Il bilanciatore del carico delle applicazioni è un bilanciatore del carico di livello 7 basato su proxy che ti consente di eseguire e scalare i tuoi servizi. Il bilanciatore del carico delle applicazioni distribuisce il traffico HTTP e HTTPS ai backend ospitati su una varietà di piattaforme Google Cloud , come 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, consulta 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 compresa tra 1 e 65535.
Esterno regionale Livello Premium o Standard EXTERNAL_MANAGED IPv4
IPv6 (Anteprima)Classico Globale nel livello Premium
Regionale nel livello Standard
EXTERNAL* IPv4
IPv6 (richiede il livello Premium)* È possibile collegareEXTERNAL_MANAGEDservizi di backend aEXTERNALregole di forwarding. Tuttavia, i servizi di backendEXTERNALnon possono essere collegati alle regole di forwardingEXTERNAL_MANAGED. Per usufruire delle nuove funzionalità disponibili solo con il bilanciatore del carico delle applicazioni esterno globale, ti consigliamo di eseguire la migrazione delle risorseEXTERNALesistenti aEXTERNAL_MANAGEDutilizzando il processo di migrazione descritto in Esegui la migrazione delle risorse dal bilanciatore del carico delle applicazioni esterno classico a quello globale.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, consulta 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
IPv6 (Anteprima)Può fare riferimento esattamente a una porta compresa tra 1 e 65535.
Interno tra regioni*
Livello Premium INTERNAL_MANAGED IPv4
IPv6 (Anteprima)* Il bilanciatore del carico utilizza risorse globali e può essere distribuito in una o più regioni Google Cloud scelte da te.
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 quest'ultimo può essere usato per il traffico interno o esterno. Il termine _MANAGED nello schema di bilanciamento del carico indica che il bilanciatore del carico è implementato come un servizio gestito su Google Front End (GFE) o su proxy Envoy open source. In uno schema di bilanciamento del carico di tipo _MANAGED, le richieste vengono indirizzate a GFE o al proxy Envoy.
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, che operano insieme utilizzando la rete globale e il control plane di Google. I GFE offrono il bilanciamento del carico multiregionale nel livello Premium, indirizzando il traffico al backend integro più vicino con capacità disponibile 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, a livello di regione o classica.
I bilanciatori del carico delle applicazioni esterni supportano le seguenti funzionalità:
- Terminazione IPv6. I bilanciatori del carico esterni supportano sia indirizzi IPv4 sia IPv6 per il traffico client. Le richieste client da indirizzi IPv6 vengono terminate al livello del bilanciamento del carico e, successivamente, vengono inviate tramite proxy ai tuoi backend su connessioni IPv4 o IPv6 (a condizione che i backend siano configurati come dual-stack). Tieni presente che i bilanciatori del carico classici supportano solo l'invio tramite proxy su IPv4 ai tuoi backend.
- Gestione avanzata del traffico. Le funzionalità includono il mirroring del traffico, la suddivisione del traffico in base al peso e le trasformazioni delle intestazioni in base alla richiesta/risposta. Per maggiori dettagli, consulta la panoramica della gestione del traffico.
- Supporto di backend diversi. Bilancia il bilanciamento del carico del traffico verso i backend ospitati su una varietà di 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 i dettagli, consulta la panoramica del bilanciatore del carico delle applicazioni esterno.
- Risposte memorizzate nella cache. Si integra con Cloud CDN per memorizzare nella cache le risposte.
- Integrazione con Cloud Armor. Fornisce protezione da attacchi DDoS o altri attacchi web utilizzando Google Cloud Armor.
- Integrazione con GKE. Supporta il bilanciamento del carico su GKE utilizzando Ingress o Gateway (completamente orchestrato) o NEG autonomi.
- Organizzazione dei bilanciatori del carico delle applicazioni globali, regionali e tra regioni e dei bilanciatori del carico di rete proxy nelle applicazioni App Hub per comprendere le interazioni dei bilanciatori del carico e supportare le funzioni aziendali.
Il seguente diagramma mostra un'architettura di esempio del bilanciatore del carico delle applicazioni esterno.
Per una panoramica completa, consulta 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 di livello 7 regionali 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 una regione, ma possono essere configurati in modo da essere accessibili a livello globale dai client di qualsiasi regioneGoogle 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à:
- Terminazione IPv6. I bilanciatori del carico interni supportano sia indirizzi IPv4 sia IPv6 per il traffico client. Le richieste client da indirizzi IPv6 vengono terminate al livello del bilanciamento del carico e, successivamente, vengono inviate tramite proxy ai tuoi backend su connessioni IPv4 o IPv6 (a condizione che i backend siano configurati come dual-stack).
- Policy per le 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 membri. Per maggiori dettagli, consulta Gestione del traffico.
- Accesso globale. Quando l'accesso globale è abilitato, i client di qualsiasi regione possono accedere al bilanciatore del carico. Per maggiori dettagli, consulta Abilita l'accesso globale.
- Accesso da reti connesse. Puoi rendere il bilanciatore del carico accessibile ai client di reti esterne alla propria rete Virtual Private Cloud (VPC) Google Cloud. Le altre reti devono essere connesse alla rete VPC del bilanciatore del carico utilizzando il peering di rete VPC, Cloud VPN o Cloud Interconnect. Per maggiori dettagli, consulta Accedi alle reti connesse.
- Compatibilità con GKE utilizzando Ingress (orchestrazione completa). Per maggiori dettagli, consulta Configura Ingress per i bilanciatori del carico delle applicazioni interni.
- Organizzazione dei bilanciatori del carico delle applicazioni interni tra regioni e dei bilanciatori del carico delle applicazioni interni regionali nelle applicazioni App Hub per comprendere le interazioni dei bilanciatori del carico e supportare le funzioni aziendali.
Per una panoramica completa, consulta Panoramica dell'architettura per i bilanciatori del carico delle applicazioni interni.
Casi d'uso
Le sezioni seguenti illustrano 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 tradizionali 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 bilanciatori del carico delle applicazioni interni.
- Livello di applicazioni. Il deployment e la scalabilità del middleware dell'applicazione vengono eseguiti utilizzando 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 poi il traffico ai bilanciatori del carico di rete passthrough interni.
- Livello del database. I bilanciatori del carico di rete fungono da frontend per il livello del database. Distribuiscono il traffico ai backend di datastore 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 del livello web possono trovarsi in un'altra regione.
Questo esempio di applicazione multilivello mostra quanto segue:
- Un livello web disponibile a livello globale e con accesso a internet che bilancia il carico del traffico utilizzando un bilanciatore del carico delle applicazioni esterno.
- Un livello di database con bilanciamento del carico di backend interno nella regione
us-east1a cui accede il livello web globale. - Una VM client che fa parte del livello web nella regione
europe-west1che accede al livello di database con bilanciamento del carico interno situato inus-east1.
Workload con conformità giurisdizionale
Alcuni workload con requisiti normativi o di conformità richiedono che le configurazioni di rete e la terminazione del traffico risiedano in una regione specifica. Per questi workload, un bilanciatore del carico delle applicazioni esterno regionale è spesso l'opzione preferita per fornire i controlli giurisdizionali richiesti da questi workload.
Gestione avanzata del traffico
I bilanciatori del carico delle applicazioni supportano funzionalità avanzate di gestione del traffico che ti 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 ai parametri HTTP(S), come host, percorso, intestazioni e altri parametri della richiesta. Ad esempio, puoi utilizzare i bucket Cloud Storage per gestire i contenuti video statici e i gruppi di istanze o i NEG per gestire tutte le altre richieste.
- Puoi mitigare i rischi durante il deployment di una nuova versione della tua applicazione utilizzando la suddivisione del traffico basata sul peso. Ad esempio, puoi inviare il 95% del traffico alla versione precedente del servizio e il 5% alla nuova versione. Dopo aver verificato che la nuova versione funziona 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 bilanciatore del carico delle applicazioni interno. Ogni percorso viene gestito da un backend diverso.
Per maggiori dettagli, consulta le seguenti risorse:
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni esterni globali
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni esterni regionali
Estensibilità con Service Extensions
L'integrazione con Service Extensions consente di inserire una logica personalizzata nel percorso di bilanciamento del carico dei bilanciatori del carico delle applicazioni supportati.
Per saperne di più, 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 ridurre i costi e l'onere di manutenzione di un'infrastruttura on-premise. Puoi configurare temporaneamente un deployment ibrido che ti consente di indirizzare il traffico sia al tuo attuale servizio on-premise 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 per utilizzare la suddivisione del traffico basata sul peso per suddividere il traffico tra i due servizi. La suddivisione del traffico ti consente di iniziare inviando lo 0% del traffico al servizioGoogle Cloud e il 100% al servizio on-premise. Puoi quindi aumentare gradualmente la percentuale di traffico inviata al servizio Google Cloud. Alla fine, invii il 100% del traffico al servizio Google Cloud e puoi 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 GKE Gateway. Supportato solo dai bilanciatori del carico delle applicazioni esterni globali, dai bilanciatori del carico delle applicazioni classici e dai bilanciatori del carico delle applicazioni interni regionali. Per istruzioni sulla configurazione, consulta Deployment dei gateway.
- Controller Ingress GKE. Puoi utilizzare il controller GKE Ingress integrato, che esegue il deployment dei bilanciatori del caricoGoogle Cloud per conto degli utenti GKE. Questa è la stessa architettura di bilanciamento del carico autonoma, con la differenza che il suo ciclo di vita è completamente automatizzato e controllato da GKE. Supportato dai bilanciatori del carico delle applicazioni esterni e interni. Per istruzioni sulla configurazione, consulta quanto segue:
- NEG a livello di zona autonomi. Il deployment e la gestione dei NEG autonomi vengono eseguiti tramite il controller NEG di GKE, ma il deployment di tutte le risorse di bilanciamento del carico (regole di forwarding, controlli di integrità e così via) viene eseguito manualmente. Questi sono supportati dai bilanciatori del carico delle applicazioni esterni e interni.
Bilanciamento del carico per le applicazioni Cloud Run, Cloud Run Functions e App Engine
Puoi utilizzare un bilanciatore del carico delle applicazioni come frontend per le tue applicazioni serverlessGoogle Cloud . In questo modo puoi configurare le tue applicazioni serverless in modo che gestiscano le richieste da un indirizzo IP dedicato che non è condiviso con altri servizi.
Per configurare questa opzione, 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 come un NEG serverless si inserisce nell'architettura di un bilanciatore del carico delle applicazioni esterno globale.
Esterno regionale
Questo diagramma mostra come un NEG serverless si inserisce nell'architettura di un 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 Run Functions o App Engine
- Configura un bilanciatore del carico delle applicazioni esterno regionale con un backend 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 sui backend esterni a Google Cloud
I bilanciatori del carico delle applicazioni supportano il traffico di bilanciamento del carico verso 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 tramite 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 di internet possono essere globali o regionali.
Il seguente diagramma mostra come connettersi ai backend esterni accessibili tramite internet pubblico utilizzando un NEG internet globale.
Bilanciatore del carico delle applicazioni esterno globale con un backend esterno. Per maggiori dettagli, consulta la panoramica dei NEG internet.
Accessibile tramite connettività ibrida (Cloud Interconnect o Cloud VPN). Per questi endpoint, utilizzi un NEG ibrido come backend del bilanciatore del carico. Il NEG ibrido è configurato in modo da puntare agli endpoint IP:porta sul backend esterno.
I seguenti diagrammi mostrano come connettersi ai backend esterni accessibili tramite Cloud Interconnect o Cloud VPN.
Esterno
Connettività ibrida con bilanciatori del carico delle applicazioni esterni globali. Interno
Connettività ibrida con bilanciatori del carico delle applicazioni interni. Per maggiori dettagli, consulta la panoramica dei NEG ibridi.
Integrazione con Private Service Connect
Private Service Connect consente l'utilizzo privato dei servizi tra reti VPC che appartengono a gruppi, team, progetti o organizzazioni diversi. Puoi utilizzare Private Service Connect per accedere alle API di Google e ai servizi 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 saperne di più, consulta Informazioni sui backend Private Service Connect.
Puoi utilizzare un bilanciatore del carico delle applicazioni interno per inviare richieste alle API di Google e ai servizi regionali supportati. Per saperne di più, consulta Accedi alle API di Google tramite backend.
Alta affidabilità e failover
Il failover tra regioni è disponibile con i bilanciatori del carico delle applicazioni esterni globali, i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni interni tra regioni. Questi bilanciatori del carico ti consentono di migliorare la disponibilità del servizio quando crei servizi di backend globali con backend in più regioni. Se i backend in una determinata regione non sono attivi, il traffico viene trasferito in un'altra regione senza problemi.
Puoi anche configurare l'alta affidabilità con il failover a livello di bilanciatore del carico utilizzando le policy di routing e i controlli di integrità di Cloud DNS.
Per scoprire di più sul funzionamento dell'alta affidabilità e del failover, consulta i seguenti argomenti:
- Failover per i bilanciatori del carico delle applicazioni esterni globali
- Alta affidabilità per i bilanciatori del carico delle applicazioni esterni regionali
- Distribuzione delle richieste per i bilanciatori del carico delle applicazioni esterni
- Bilanciatori del carico delle applicazioni interni: alta affidabilità e failover tra regioni