Panoramica dei gruppi di endpoint di rete Internet

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Un gruppo di endpoint di rete Internet (NEG) definisce un backend esterno per un bilanciatore del carico. Un backend esterno è un backend che risiede al di fuori di Google Cloud. Puoi utilizzare questo tipo di backend con un bilanciatore del carico HTTP(S) esterno. Devi farlo quando vuoi pubblicare contenuti da un backend esterno e vuoi che il bilanciatore del carico HTTP(S) esterno sia il frontend.

In questo modo, puoi:

  • Utilizza l'infrastruttura Google Edge per terminare le connessioni utente.
  • Indirizza le connessioni al tuo backend esterno.
  • Utilizza Cloud CDN per memorizzare nella cache il contenuto per il backend esterno.
  • Invia il traffico al tuo endpoint pubblico attraverso la backbone privata di Google, il che migliora l'affidabilità e può ridurre la latenza tra il client e il server.

Questo documento descrive l'utilizzo di backend esterni con il bilanciatore del carico HTTP(S) esterno globale (classico). Non puoi utilizzare i backend esterni con il bilanciatore del carico HTTP(S) esterno globale con funzionalità di gestione del traffico avanzata, il bilanciatore del carico HTTP(S) esterno a livello di regione o con qualsiasi altro tipo di bilanciatore del carico. Tuttavia, puoi utilizzare i backend esterni con Traffic Director. Per scoprire come, vedi Traffic Director con gruppi di endpoint di rete Internet.

Per informazioni sui NEG di zona, consulta la panoramica del gruppo di endpoint di rete della zona.

Per informazioni sui NEG serverless, consulta la panoramica del gruppo di endpoint di rete serverless.

Terminologia

I seguenti termini sono talvolta utilizzati in modo intercambiabile perché hanno lo stesso significato o significato simile:

  • Backend esterno: un backend che si trova al di fuori di Google Cloud ed è raggiungibile su Internet. L'endpoint in un NEG Internet.
  • origine personalizzata: equivale a un backend esterno. In CDN, origine è il termine standard di settore per un'istanza di backend che pubblica contenuti web.
  • gruppo di endpoint di rete Internet (NEG): la risorsa API di Google Cloud che utilizzi per specificare un backend esterno.
  • endpoint esterno: uguale a un backend esterno.

Questo documento utilizza il termine backend esterno, tranne quando si fa riferimento alla risorsa API NEG di Internet.

Panoramica

I NEG Internet sono risorse globali ospitate all'interno dell'infrastruttura on-premise o su un'infrastruttura fornita da provider di terze parti.

Tipi di endpoint

Quando crei un NEG Internet, specifichi il tipo di endpoint di rete INTERNET_FQDN_PORT o INTERNET_IP_PORT:

Indirizzo endpoint Tipo Definizione Quando utilizzarlo
Nome host e porta facoltativa INTERNET_FQDN_PORT Per il bilanciamento del carico HTTP(S) esterno, un nome di dominio completo e pubblicamente risolvibile e una porta facoltativa, ad esempio backend.example.com:443 (porte predefinite: 80 per HTTP e 443 per HTTPS).

Per Traffic Director, viene utilizzato l'ordine della risoluzione dei nomi della rete VPC per risolvere il nome di dominio completo.
Utilizza questo endpoint con il bilanciamento del carico HTTP(S) esterno quando il backend esterno può essere risolto tramite un nome di dominio completo con DNS pubblico.

Utilizza questo endpoint con Traffic Director per inviare il traffico a servizi esterni.
Indirizzo IP e porta facoltativa INTERNET_IP_PORT Un indirizzo IP accessibile pubblicamente e una porta facoltativa, ad esempio 8.8.8.8 o 8.8.8.8:443 (porte predefinite: 80 per HTTP e 443 per HTTPS) Utilizza questo endpoint solo con il bilanciamento del carico HTTP(S) esterno per specificare un indirizzo IP accessibile pubblicamente e una porta a cui connettersi.

In un NEG Internet, non puoi avere più di un endpoint. I gruppi di endpoint di rete Internet non supportano il tipo di endpoint GCE_VM_IP_PORT.

Le sezioni seguenti illustrano come vengono utilizzati i backend esterni con i bilanciatori del carico HTTP(S) esterni. Quando utilizzi un backend esterno con Traffic Director, DNS, controllo di integrità e routing del traffico si comportano in modo diverso. Per ulteriori informazioni, consulta Traffic Director con i gruppi di endpoint di rete Internet.

Componenti e specifiche di bilanciamento del carico

Puoi utilizzare un backend esterno in un bilanciatore del carico utilizzando il livello di servizio di rete Premium.

Tuttavia, poiché in ogni NEG Internet è consentito un solo endpoint, il bilanciamento del carico non viene effettivamente eseguito. Ciò significa che non puoi utilizzare una qualsiasi delle modalità di bilanciamento del carico, ad esempio la frequenza o l'utilizzo. Il bilanciatore del carico funge solo da frontend e indirizza il traffico al backend esterno specificato.

La selezione dell'inoltro si basa su una mappa URL. Per i proxy HTTP(S) di destinazione, il servizio di backend utilizzato viene determinato controllando il nome e il percorso dell'host della richiesta nella mappa URL. I bilanciatori del carico HTTP(S) esterni possono avere più servizi di backend a cui viene fatto riferimento dalla mappa URL.

  • Ogni bilanciatore del carico HTTP(S) esterno dispone di una propria regola globale di forwarding esterno per indirizzare il traffico all'oggetto proxy di destinazione appropriato.

  • Se la mappa URL invia la richiesta a un servizio di backend che contiene un NEG Internet, il servizio di backend indirizza il traffico a tale backend esterno.

L'illustrazione seguente mostra un bilanciatore del carico HTTP(S) esterno con più tipi di backend, uno dei quali è un backend esterno.

Gruppi di endpoint di rete Internet nel bilanciamento del carico (fai clic per ingrandire)
Gruppi di endpoint di rete Internet nel bilanciamento del carico (fai clic per ingrandire)

Servizio di backend

Come mostrato nella sezione precedente, un NEG Internet è un tipo di backend supportato da un servizio di backend di un bilanciatore del carico HTTP(S) esterno. Ti permette di utilizzare l'infrastruttura perimetrale globale di Google per terminare le richieste degli utenti di fronte a un backend esterno.

Quando aggiungi un NEG Internet a un servizio di backend:

  • Il servizio di backend non può utilizzare anche NEG di zona o gruppi di istanze come backend. Tutti i backend su un servizio di backend devono essere dello stesso tipo.

  • Puoi aggiungere un solo backend NEG di Internet allo stesso servizio di backend.

  • Puoi aggiungere un solo endpoint a un NEG Internet.

  • Il servizio di backend non può fare riferimento a un controllo di integrità.

  • Lo schema di bilanciamento del carico del servizio di backend deve essere EXTERNAL e il suo protocollo deve essere uno tra HTTP, HTTPS o HTTP2.

  • Le funzionalità del servizio di backend sono supportate quando si utilizza un NEG Internet. Tali funzionalità includono:

Controlli di integrità

Un servizio di backend con un NEG Internet non supporta un controllo di integrità. Google Cloud non fornisce controlli di integrità per i backend esterni.

Se il backend esterno non è raggiungibile o se non è possibile risolvere il nome host (FQDN) configurato, il bilanciatore del carico HTTP(S) esterno restituisce una risposta HTTP 502 (Gateway non valido) ai client.

Autenticazione delle richieste

Per consentire a un bilanciatore del carico HTTP(S) esterno di inviare richieste al tuo backend esterno:

  • Esegui una query sul record TXT DNS _cloud-eoips.googleusercontent.com utilizzando uno strumento come dig o nslookup.

    Esempi:

    dig _cloud-eoips.googleusercontent.com txt @8.8.8.8
    
    nslookup -q=TXT _cloud-eoips.googleusercontent.com 8.8.8.8
    

    Osserva i CIDR (che seguono ip4:) e assicurati che questi intervalli siano consentiti dal tuo firewall o dall'elenco di controllo di accesso al cloud (ACL). Per un esempio, consulta l'articolo Aggiungere la lista consentita agli intervalli IP necessari.

  • Puoi impostare un'intestazione personalizzata per indicare che la richiesta proviene da un bilanciatore del carico HTTP(S) esterno di Google Cloud utilizzando un'intestazione della richiesta personalizzata

    • Ad esempio, puoi utilizzare 16 o più byte casuali crittografici come chiave condivisa.
  • Puoi anche attivare Identity-Aware Proxy (IAP) e verificare che il JWT firmato nell'intestazione della richiesta sia firmato da Google e che la rivendicazione aud (pubblico) contenga il numero di progetto in cui è definito il bilanciatore del carico HTTP(S) esterno. Tieni presente che IAP non è compatibile con Cloud CDN.

Convalida delle certificazioni SSL Server e convalida SAN

Se utilizzi HTTPS o HTTP/2 come protocollo di backend, ti consigliamo vivamente di utilizzare INTERNET_FQDN_PORT per creare il backend esterno.

Quando crei un backend esterno utilizzando INTERNET_FQDN_PORT, il bilanciatore del carico convalida il certificato del server SSL presentato dal backend esterno e verifica che:

  • Il certificato è firmato da autorità di certificazione note.
  • Il certificato non è scaduto.
  • La firma del certificato è valida.
  • Il nome di dominio completo configurato corrisponde a uno dei nomi alternativi del soggetto (SAN) nel certificato.

Supporto per l'estensione SSL Server Name Indication (SNI)

La funzione SNI è supportata solo quando utilizzi INTERNET_FQDN_PORT con HTTPS o HTTP/2 come protocollo di backend. In questo caso, il nome di dominio completo configurato riceve uno SNI nell'hello client durante l'handshake SSL tra il bilanciatore del carico e l'endpoint esterno. Lo SNI non viene inviato quando configuri l'endpoint come INTERNET_IP_PORT, perché i valori letterali degli indirizzi IP non sono consentiti nel campo HostName di un payload SNI.

Risoluzione dell'indirizzo IP per gli endpoint FQDN

Quando un endpoint INTERNET_FQDN_PORT rimanda a un record DNS che restituisce più indirizzi IP, l'indirizzo IP viene risolto nel seguente modo:

  • Il bilanciatore del carico HTTP(S) esterno tenta di connettersi al primo indirizzo IP nella risposta DNS. Se quell'indirizzo IP non è raggiungibile, il bilanciatore del carico restituisce una risposta HTTP 502 (Gateway non valido). anche se sono disponibili altri indirizzi IP dalla risposta DNS.

  • Il bilanciatore del carico HTTP(S) esterno utilizza un resolver DNS in una regione Google Cloud più vicina al suo client su Internet. Se il record DNS per l'endpoint INTERNET_FQDN_PORT restituisce indirizzi IP diversi in base alla località del client, assicurati che ciascuno di questi indirizzi IP possa essere raggiunto dal bilanciatore del carico.

Per ulteriori informazioni sugli intervalli IP e sulle località utilizzate dall'infrastruttura del resolver DNS di Google, consulta la documentazione relativa al DNS pubblico di Google.

Log

Le richieste trasferite a un backend esterno vengono registrate in Cloud Logging allo stesso modo in cui vengono registrate le richieste per altri backend di bilanciamento del carico HTTP(S). Per ulteriori informazioni, consulta Logging e monitoraggio del bilanciamento del carico HTTP(S).

Se abiliti Cloud CDN per un backend esterno, vengono registrati anche gli hit della cache.

Elaborazione delle intestazioni

Quando un bilanciatore del carico HTTP(S) esterno richiede un backend a un backend esterno, regola le intestazioni HTTP nei seguenti modi:

  • Alcune intestazioni sono unite. Quando esistono più istanze della stessa chiave di intestazione (ad esempio Via), il bilanciatore del carico combina i valori in un unico elenco separato da virgole per una singola chiave di intestazione. Solo le intestazioni i cui valori possono essere rappresentati come un elenco separato da virgole vengono uniti. Altre intestazioni come Set-Cookie non sono mai unite.

  • Le intestazioni sono maiuscole e minuscole quando il protocollo del servizio di backend è HTTP o HTTPS:

    • La prima lettera della chiave dell'intestazione e ogni lettera che segue un trattino (-) sono in maiuscolo per preservare la compatibilità con i client HTTP/1.1. Ad esempio, user-agent viene cambiato in User-Agent e content-encoding viene cambiato in Content-Encoding.

    • Alcune intestazioni (ad esempio, TE (codifica di trasferimento), Accept-CH (suggerimenti del client) vengono convertite in modo che corrispondano alla rappresentazione standard delle lettere miste.

  • Vengono aggiunte alcune intestazioni o vengono aggiunti valori. I bilanciatori del carico HTTP(S) esterni aggiungono o modificano sempre alcune intestazioni, ad esempio Via e X-Forwarded-For.

Limitazioni

  • Non puoi utilizzare i NEG Internet come backend per i bilanciatori del carico HTTP(S) esterni a livello di regione.
  • Un backend esterno con un FQDN definito deve essere risolvibile da Google Public DNS. I nomi che non possono essere risolti dal sistema DNS pubblico non saranno utilizzabili come backend esterno.
  • Un backend esterno deve essere un indirizzo IPv4 instradabile pubblicamente o deve risolversi in uno:
    • Un backend esterno non può essere un indirizzo RFC 1918.
    • Deve essere raggiungibile tramite Internet. L'endpoint non è raggiungibile solo tramite Cloud VPN o Cloud Interconnect.
    • Se il backend esterno fa riferimento a un'API o a un servizio Google, il servizio deve essere raggiungibile tramite la porta TCP 80 o 443 utilizzando il protocollo HTTP, HTTPS o HTTP/2.
  • Puoi utilizzare i NEG Internet solo nel livello di servizio di rete Premium, che è il livello predefinito. Per ulteriori informazioni, consulta la documentazione relativa ai livelli di servizi di rete.
  • Devi utilizzare IP:{facoltativo port} per l'endpoint INTERNET_IP_PORT o FQDN:{facoltativo port} per INTERNET_FQDN_PORT.
  • Quando utilizzi un NEG con un tipo di endpoint INTERNET_FQDN_PORT o INTERNET_IP_PORT, puoi aggiungere un solo endpoint al NEG. Ciò significa che quando utilizzi un NEG con un tipo di endpoint di rete INTERNET_FQDN_PORT o INTERNET_IP_PORT in una backendService, non puoi collegare più NEG al backendService.
  • Il bilanciamento del carico non è attualmente supportato sui backend esterni, le richieste vengono inviate tramite proxy solo all'endpoint. L'infrastruttura di Google Edge termina le connessioni utente e le indirizza al backend esterno.
  • Puoi utilizzare i NEG Internet senza Cloud CDN abilitato. Con questa configurazione non puoi comunque collegare più NEG Internet al servizio di backend. Ciò significa che la limitazione di un singolo endpoint rimane.
  • Non viene eseguito alcun controllo di integrità per il backend esterno. Se il backend esterno non è raggiungibile o se viene specificato come FQDN ma non può essere risolto, Cloud CDN invia un messaggio 502 (Bad Gateway) in risposta alle richieste degli utenti.
  • Quando utilizzi un backend esterno che prevede un valore specifico per l'intestazione Host della richiesta HTTP, devi configurare il servizio di backend per impostare l'intestazione Host su quel valore previsto. Se non configuri un'intestazione di richiesta personalizzata, un servizio di backend conserva l'intestazione Host che il client ha utilizzato per connettersi al bilanciatore del carico HTTP(S) esterno di Google Cloud. Per informazioni generali sulle intestazioni delle richieste personalizzate, consulta Creazione di intestazioni delle richieste personalizzate. Per un esempio specifico, consulta Configurazione di un bilanciatore del carico con un backend esterno.
  • Quando modifichi un bilanciatore del carico per cambiare il backend da un NEG Internet a un altro tipo o viceversa, l'applicazione riscontra un tempo di inattività temporaneo di circa 30-90 secondi. Durante questo periodo, i client visualizzano errori 502 con il codice di errore failed_to_connect_to_backend. Questo è un comportamento previsto.

Quota

Puoi configurare tutti i NEG con endpoint di rete esterni consentiti dalla quota di gruppi di endpoint di rete esistente. Per scoprire di più, consulta i backend NEG e gli endpoint per NEG.

Prezzi

Il traffico in uscita verso un endpoint NEG di Internet (tipo INTERNET_FQDN_PORT o INTERNET_IP_PORT) viene addebitato in base alle tariffe per il traffico in uscita da Internet per le reti Livello Premium.

L'origine si basa sulla località del client e la destinazione sulla base della località dell'endpoint pubblico.

Per ulteriori informazioni, consulta la pagina relativa ai prezzi di Cloud CDN per i backend esterni.

Passaggi successivi