Accedere ai servizi pubblicati tramite i 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.

L'utilizzo di un backend basato su un bilanciatore del carico delle applicazioni esterno globale consente ai consumer di servizi con accesso a internet di inviare traffico ai servizi nella rete VPC del producer di servizi (fai clic per ingrandire).

Per ulteriori informazioni, consulta Informazioni sui backend di Private Service Connect.

Ruoli

Il ruolo Amministratore bilanciatore del carico Compute (roles/compute.loadBalancerAdmin) contiene l'autorizzazione richiesta 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 colleghi un servizio pubblicato da una terza parte, chiedi al producer di servizi le seguenti informazioni:

    • L'URI del collegamento al servizio per il servizio a cui vuoi collegarti. Il collegamento al 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 di Private Service Connect che punti al collegamento al servizio 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

  1. Nella console Google Cloud, vai alla pagina Gruppi di endpoint di rete.

    Vai a Gruppi di endpoint di rete

  2. Fai clic su Crea gruppo di endpoint di rete.

  3. Inserisci un nome per il gruppo di endpoint di rete.

  4. Per Tipo di gruppo di endpoint di rete, seleziona Gruppo di endpoint di rete (Private Service Connect).

  5. Seleziona il tipo di target Servizio pubblicato.

  6. In Servizio di destinazione, inserisci l'URI del collegamento al servizio.

  7. Seleziona la Rete e la Subnet in cui creare il gruppo di endpoint di rete.

    La subnet deve trovarsi nella stessa regione del servizio pubblicato.

  8. 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 del servizio a cui vuoi collegarti.

  • REGION: la regione in cui creare il gruppo di endpoint di rete. 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 in cui creare il gruppo di endpoint di rete. La subnet deve trovarsi nella stessa regione del servizio di destinazione. Se fornisci la rete, deve essere fornita una subnet. Se sia la rete sia la subnet sono omesse, viene utilizzata la rete predefinita e la subnet predefinita in REGION 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

  1. Nella console Google Cloud, vai alla pagina Indirizzi IP.

    Vai a indirizzi IP

  2. Per prenotare un indirizzo IPv4, fai clic su Prenota indirizzo statico.

  3. Assegna un nome alla risorsa indirizzo IP.

  4. Imposta il livello della rete su Premium.

  5. Imposta la versione IP su IPv4.

  6. Imposta il Tipo su Globale.

  7. Fai clic su Prenota.

gcloud

  1. 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.

  2. 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 certificato SSL gestito da Google 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 avere un dominio e i relativi record DNS per eseguire il provisioning del certificato. 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 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 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 SSL autogestiti.

    Se al momento non vuoi configurare un dominio, puoi utilizzare un certificato SSL autofirmato per i test.

Queste istruzioni presuppongono che tu abbia già creato una risorsa di certificato 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

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni (HTTP/HTTPS) e fai clic su Avanti.
  4. In Pubblico o interno, seleziona Pubblico (esterno) e fai clic su Avanti.
  5. In Deployment globale o in una regione singola, seleziona Ideale per carichi di lavoro globali e fai clic su Avanti.
  6. In Generazione del bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni esterno globale e fai clic su Avanti.
  7. Fai clic su Configura.

Configurazione di base

  1. Inserisci un nome del bilanciatore del carico.
  2. Tieni aperta la finestra per continuare.

Configurazione frontend

  1. Fai clic su Configurazione frontend.
  2. Fai clic su Aggiungi IP e porta frontend.
  3. Inserisci un nome per il bilanciatore del carico.
  4. Nel campo Protocollo, seleziona HTTPS (include HTTP/2).
  5. Assicurati che Porta sia impostata su 443 per consentire il traffico HTTPS.
  6. In Indirizzo IP, seleziona l'indirizzo IP che hai riservato.

  7. Fai clic sull'elenco Certificato e seleziona il certificato che hai creato.

  8. Fai clic su OK.

  9. Fai clic su Fine.

Configurazione backend

Il gruppo di endpoint di rete Private Service Connect è un tipo di backend del bilanciatore del carico. Aggiungi tutti i NEG Private Service Connect per lo stesso servizio gestito al servizio di backend.

  1. Fai clic su Configurazione backend.
  2. Fai clic sull'elenco Servizi e bucket di backend, quindi su Crea un servizio di backend.
  3. Inserisci un nome per il servizio di backend.
  4. Imposta Tipo di backend su Gruppo di endpoint di rete Private Service Connect.
  5. Nella sezione Backend, fai clic sull'elenco Gruppo di endpoint di rete Private Service Connect e seleziona il NEG Private Service Connect che hai creato. Fai clic su Fine.
  6. 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 tutti i NEG per questo servizio gestito al servizio di backend.

  7. 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

  1. Per esaminare la configurazione, fai clic su Esamina e finalizza.
  2. Fai clic su Crea.

gcloud

  1. 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.

  2. 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.
  3. 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 degli URL.

    • BACKEND_SERVICE_NAME: il nome del servizio di backend predefinito del bilanciatore del carico. Il valore predefinito viene utilizzato quando nessuna regola host corrisponde al nome host richiesto.

  4. Crea il proxy HTTPS di destinazione.

    Utilizza la risorsa del certificato SSL che hai creato per creare un proxy HTTPS di destinazione.

    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.
  5. 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 indirizzo IP che hai riservato da utilizzare per la regola di forwarding.

    • PROXY_NAME: il nome del proxy HTTPS di destinazione.

Configura i record DNS

Se vuoi accedere al backend di Private Service Connect utilizzando un nome DNS, crea nomi DNS per ogni regola di forwarding esterno. Il record 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 di produzione.

Se utilizzi Cloud DNS per gestire il DNS, consulta la sezione sull'aggiunta di un record DNS.

Verificare la configurazione

  1. 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.

  2. Connettiti alla VM.

    gcloud compute ssh VM_NAME --zone=ZONE
    
  3. Utilizza curl per verificare la configurazione. Questo comando imposta l'intestazione Host e aggira la risoluzione DNS specificando un indirizzo IP definito dall'utente. Puoi ommettere la porta se utilizzi la porta predefinita per il protocollo, ad esempio la porta 443 per HTTPS.

    Puoi saltare la convalida del certificato 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 che vuoi utilizzare per la verifica.

    • FWD_RULE_IP_ADDRESS: l'indirizzo IP assegnato alla regola di forwarding.

Risoluzione dei problemi

La creazione del backend è riuscita, ma la connettività non è stata stabilita

Se crei correttamente un backend per i servizi pubblicati, ma la connettività non è stabilita, controlla lo stato della connessione del backend. Lo stato della connessione potrebbe indicare i passaggi da seguire per risolvere il problema.