Accedi ai servizi pubblicati tramite backend
Questa guida descrive come configurare un bilanciatore del carico delle applicazioni esterno globale con un backend Private Service Connect per accedere a un servizio pubblicato utilizzando Private Service Connect.
Per ulteriori informazioni, vedi Informazioni sui backend Private Service Connect.
Ruoli
L'amministratore del bilanciatore del carico Compute
ruolo
(roles/compute.loadBalancerAdmin
) contiene l'autorizzazione necessaria per eseguire
le attività descritte in questa guida.
Prima di iniziare
Se vuoi pubblicare il tuo servizio, consulta Pubblicare servizi utilizzando Private Service Connect.
Se vuoi collegare un servizio pubblicato da una terza parte, chiedi al producer di servizi per le seguenti informazioni:
L'URI del collegamento al servizio per il servizio a cui vuoi collegarti. Il collegamento servizio ha il seguente formato:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Eventuali requisiti per i nomi DNS a cui inviare le richieste. Potresti dover utilizzare nomi DNS specifici nella configurazione della mappa di URL o nella configurazione DNS.
Crea gruppo di endpoint di rete
Crea un NEG Private Service Connect che punti al servizio allegato per il servizio pubblicato a cui vuoi accedere. Se il servizio pubblicato viene implementato in più regioni diverse, crea un NEG per allegato del servizio.
Ogni NEG di Private Service Connect utilizza un indirizzo IP /32
in modo che il bilanciatore del carico possa comunicare con esso.
Console
Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.
Fai clic su Crea gruppo di endpoint di rete.
Inserisci un Nome per il gruppo di endpoint di rete.
Per Tipo di gruppo di endpoint di rete, seleziona Gruppo di endpoint di rete. (Private Service Connect).
Seleziona il tipo di target Servizio pubblicato.
In Servizio di destinazione, inserisci l'URI del collegamento al servizio.
Seleziona la rete e la subnet per creare l'endpoint di rete Raggruppa.
La subnet deve trovarsi nella stessa regione del servizio pubblicato.
Fai clic su Crea.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET
Sostituisci quanto segue:
NEG_NAME
: un nome per il gruppo di endpoint di rete.TARGET_SERVICE
: il collegamento al servizio che vuoi connettersi.REGION
: la regione in cui creare il gruppo di endpoint di rete in. La regione deve essere la stessa del servizio di destinazione.NETWORK
: la rete in cui creare il gruppo di endpoint di rete. Se omesso, viene utilizzata la rete predefinita.SUBNET
: la subnet per creare il gruppo di endpoint di rete in. La subnet deve trovarsi nella stessa regione del servizio di destinazione. Una subnet se fornisci la rete. Se sia la rete sia la subnet sono omesse, viene utilizzata la rete predefinita e la subnet predefinita nelREGION
specificato.
Prenota un indirizzo IP esterno per il bilanciatore del carico
Per prenotare un indirizzo IP esterno per il bilanciatore del carico, segui questi passaggi.
Console
Nella console Google Cloud, vai alla pagina Indirizzi IP.
Per prenotare un indirizzo IPv4, fai clic su Prenota indirizzo statico.
Assegna un nome alla risorsa indirizzo IP.
Imposta il livello della rete su Premium.
Imposta la versione IP su IPv4.
Imposta il Tipo su Globale.
Fai clic su Prenota.
gcloud
Prenota un indirizzo IPv4 esterno globale per il bilanciatore del carico.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global
Sostituisci
ADDRESS_NAME
con un nome per la risorsa indirizzo IP.Esegui questo comando per visualizzare l'indirizzo IP riservato:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global
Crea una risorsa del certificato SSL
Per creare un bilanciatore del carico HTTPS, devi aggiungere una risorsa del certificato SSL al front-end del bilanciatore del carico. Crea una risorsa del certificato SSL utilizzando un sistema SSL gestito da Google certificato o un certificato SSL autogestito.
Certificati gestiti da Google. Ti consigliamo di utilizzare i certificati gestiti da Google perché Google Cloud li ottiene, li gestisce e li rinnova automaticamente. Per creare un certificato gestito da Google, devi un dominio e i record DNS per quel dominio per eseguire il provisioning certificato. Se non hai ancora un dominio, puoi richiederne uno da Google Domains; Per ulteriori informazioni, vedi Inizia a utilizzare Google Domains. Inoltre, devi aggiornare il record DNS A del dominio in modo che indichi l'indirizzo IP del bilanciatore del carico creato nel passaggio precedente. Per istruzioni dettagliate, consulta Utilizzare i certificati gestiti da Google.
Certificati autogestiti. I certificati SSL con gestione indipendente sono certificati che ottieni, esegui il provisioning e rinnovi autonomamente. I certificati gestiti autonomamente possono essere firmati da un'autorità di certificazione o essere autofirmati. Se sono firmati da un'autorità di certificazione, devi avere un dominio. Se non hai ancora un dominio, puoi acquistarne uno da Google Domains. Per ulteriori informazioni, consulta Iniziare a utilizzare Google Domains. Inoltre, devi aggiornare il record A del DNS del dominio in modo che punti allo l'indirizzo IP del bilanciatore del carico creato nel passaggio precedente. per informazioni dettagliate istruzioni, vedi Utilizza certificati SSL autogestiti.
Se al momento non vuoi configurare un dominio, puoi utilizzare una certificato SSL autofirmato per i test.
Queste istruzioni presuppongono che tu abbia già creato una risorsa per i certificati SSL.
Configura il bilanciatore del carico
Configura un bilanciatore del carico delle applicazioni esterno globale con funzionalità avanzate di gestione del traffico (schema di bilanciamento del carico impostato su EXTERNAL_MANAGED
) per connetterti a un servizio gestito.
Se ti connetti a un servizio pubblicato di cui è stato eseguito il deployment in più regioni, e hai creato più NEG Private Service Connect per collegarti a ogni collegamento di servizio, puoi aggiungere tutti i NEG al servizio di backend.
Sebbene il NEG Private Service Connect sia regionale, tutti gli altri componenti di bilanciamento del carico in questa configurazione sono globali.
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni (HTTP/HTTPS) e fai clic su Avanti.
- In Pubblico o interno, seleziona Pubblico (esterno) e fai clic su Avanti.
- In Deployment globale o in una regione singola, seleziona Ideale per carichi di lavoro globali e fai clic su Avanti.
- In Generazione del bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni esterno globale e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
- Inserisci un Nome bilanciatore del carico.
- Tieni aperta la finestra per continuare.
Configurazione frontend
- Fai clic su Configurazione frontend.
- Fai clic su Aggiungi IP e porta frontend.
- Inserisci un Nome per il bilanciatore del carico.
- Nel campo Protocollo, seleziona HTTPS (include HTTP/2).
- Assicurati che Porta sia impostata su
443
per consentire il traffico HTTPS. In Indirizzo IP, seleziona l'indirizzo IP che hai prenotato.
Fai clic sull'elenco Certificato e seleziona il certificato che hai creato.
Fai clic su OK.
Fai clic su Fine.
Configurazione backend
Il gruppo di endpoint di rete Private Service Connect è un tipo di backend del bilanciatore del carico. Aggiungi tutte NEG Private Service Connect per lo stesso servizio gestito al servizio di backend.
- Fai clic su Configurazione backend.
- Fai clic sull'elenco Servizi e bucket di backend, quindi su Crea un servizio di backend.
- Inserisci un nome per il servizio di backend.
- Imposta il Tipo di backend su Endpoint di rete Private Service Connect .
- Nella sezione Backend, fai clic su Private Service Connect gruppo di endpoint di rete e selezionare del NEG Private Service Connect che hai creato. Fai clic su Fine.
Se hai creato più di un NEG Private Service Connect, Fai clic su Aggiungi backend per selezionare un altro NEG.
Ripeti questo passaggio finché non sono stati aggiunti al servizio di backend tutti i NEG per questo servizio gestito.
Fai clic su Crea.
Regole di routing
Poiché questa configurazione contiene un solo servizio di backend, la regola di routing predefinita è sufficiente e non è necessario apportare modifiche in questa sezione.
Esamina e finalizza
- Per esaminare la configurazione, fai clic su Esamina e finalizza.
- Fai clic su Crea.
gcloud
Crea un servizio di backend per il servizio gestito a cui vuoi collegarti.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
Sostituisci
BACKEND_SERVICE_NAME
con il nome del servizio di backend.Aggiungi il NEG Private Service Connect che punta al servizio di destinazione.
Se hai creato più NEG in regioni diverse per lo stesso servizio, ripeti questo passaggio per aggiungere tutte le NEG al servizio di backend.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=REGION \ --global
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del servizio di backend.NEG_NAME
: il nome del gruppo di endpoint di rete.REGION
: la regione del gruppo di endpoint di rete.
Crea una mappa URL per il bilanciatore del carico.
Una mappa URL deve fare riferimento a un servizio di backend predefinito. Configura il servizio di backend che hai creato come servizio di backend predefinito.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --global
Sostituisci quanto segue:
URL_MAP_NAME
: un nome per la mappa URL.BACKEND_SERVICE_NAME
: il nome del caricamento il servizio di backend predefinito del bilanciatore del carico. Il valore predefinito viene utilizzato quando nessuna regola host corrisponde al nome host richiesto.
Crea il proxy HTTPS di destinazione.
Utilizza la risorsa del certificato SSL che hai creato per creare una destinazione Proxy HTTPS.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE
Sostituisci quanto segue:
PROXY_NAME
: un nome per il proxy HTTPS di destinazione.URL_MAP_NAME
: il nome della mappa di URL.CERTIFICATE
: il nome della risorsa del certificato.
Crea la regola di forwarding.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --global
Sostituisci quanto segue:
FWD_RULE
: un nome per la regola di forwarding.ADDRESS_NAME
: la risorsa dell'indirizzo IP che hai prenotato da utilizzare per la regola di forwarding.PROXY_NAME
: il nome del proxy HTTPS di destinazione.
Configura i record DNS
Per accedere al backend Private Service Connect tramite utilizzando un nome DNS, crea nomi DNS per ogni regola di forwarding esterno. Il DNS deve corrispondere a un nome nella mappa URL. A meno che la mappa degli URL non riscrive i nomi, il record DNS deve corrispondere anche ai nomi previsti dal servizio del produttore.
Se utilizzi Cloud DNS per gestire il DNS, consulta la sezione sull'aggiunta di un record DNS.
Verificare la configurazione
Crea l'istanza VM.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-11 \ --zone=ZONE
Sostituisci quanto segue:
VM_NAME
: un nome per la macchina virtuale.NETWORK
: la rete per la VM.ZONE
: la zona della VM.
Connettiti alla VM.
gcloud compute ssh VM_NAME --zone=ZONE
Usa
curl
per verificare la configurazione. Questo comando imposta l'intestazioneHost
e ignora la risoluzione DNS specificando un indirizzo IP definito dall'utente. Puoi ometti la porta se utilizzi la porta predefinita per il protocollo, ad esempio ad esempio utilizzando la porta 443 per HTTPS.Puoi saltare la convalida dei certificati utilizzando il flag
-k
. Potresti dover saltare la convalida se hai utilizzato un certificato autofirmato per configurare il proxy HTTPS di destinazione o se la VM non dispone del certificato dell'autorità di certificazione che ha firmato il tuo certificato.curl [-k] -s 'https://HOST:443/RESOURCE_URI' \ -H 'Host: HOST' \ --connect-to HOST:443:FWD_RULE_IP_ADDRESS:443
Sostituisci quanto segue:
HOST
: il nome host configurato nella mappa URL.RESOURCE_URI
: il resto dell'URI della risorsa da utilizzare per la verifica.FWD_RULE_IP_ADDRESS
: l'indirizzo IP assegnato al di una regola di forwarding.
Risoluzione dei problemi
La creazione del backend riesce, ma la connettività non è stabilita
Se crei correttamente un backend per i servizi pubblicati, ma la connettività non è ancora stato definito, controlla lo stato stato della connessione. Lo stato della connessione potrebbe indicare i passaggi da seguire per risolvere il problema.