Accedere alle API Google regionali tramite i backend

Questa guida descrive come configurare un bilanciatore del carico delle applicazioni interno con un backend di Private Service Connect per accedere a un'API Google regionale.

Per saperne di più sui backend, consulta Informazioni sui backend.

Un bilanciatore del carico delle applicazioni interno utilizzato per Private Service Connect può essere raggiunto da reti VPC condiviso e da reti connesse.

Ruoli

Il ruolo Amministratore bilanciamento del carico di Compute (roles/compute.loadBalancerAdmin) contiene l'autorizzazione necessaria per eseguire le attività descritte in questa guida.

Servizi supportati

Consulta l'elenco degli endpoint di servizio regionali supportati.

Prima di iniziare

  • Abilita l'API Compute Engine nel tuo progetto.

  • Se vuoi registrare la regola di forwarding del bilanciamento del carico con Service Directory, attiva l'API Service Directory nel tuo progetto. Per configurare Service Directory, devi creare la regola di forwarding utilizzando Google Cloud CLI o l'API.

  • Crea una subnet solo proxy se non ne hai già una. Deve essere presente una singola subnet solo proxy nella rete VPC e nella regione in cui intendi creare il bilanciatore del carico delle applicazioni interno. Questa subnet viene utilizzata da tutti i bilanciatori del carico delle applicazioni interni all'interno di questa rete e regione.

  • Se non le hai già, crea una chiave privata e un certificato autogestito per il tuo dominio. Consulta il passaggio 1 dell'utilizzo dei certificati SSL autogestiti. Per creare il proxy HTTPS di destinazione durante la configurazione del bilanciatore del carico, devi disporre di una chiave privata e di un certificato.

Crea gruppo di endpoint di rete

Per ogni servizio che vuoi rendere disponibile utilizzando il bilanciatore del carico, crea un gruppo di endpoint di rete (NEG) Private Service Connect.

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 la regione per il gruppo di endpoint di rete.

  6. Seleziona il servizio di destinazione per il gruppo di endpoint di rete.

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

Sostituisci quanto segue:

  • NEG_NAME: un nome per il gruppo di endpoint di rete.

  • TARGET_SERVICE: il servizio di destinazione a cui vuoi connetterti. Consulta l'elenco degli endpoint di servizio regionali supportati.

  • REGION: la regione in cui creare il gruppo di endpoint di rete. La regione deve essere la stessa del servizio a cui vuoi connetterti.

Configura il bilanciatore del carico

Tutti i componenti del bilanciatore del carico devono essere creati nella stessa regione del gruppo di endpoint di rete Private Service Connect.

Console

Seleziona il tipo di bilanciatore del carico

  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 Interno e fai clic su Avanti.
  5. In Deployment multiregionale o in una singola regione, seleziona Ideale per workload regionali e fai clic su Avanti.
  6. Fai clic su Configura.

Configurazione di base

  1. Inserisci un nome per il bilanciatore del carico.
  2. Seleziona una regione per il bilanciatore del carico.
  3. Seleziona una rete per il bilanciatore del carico.

    La rete deve contenere una subnet solo proxy nella regione in cui stai creando il NEG e il bilanciatore del carico. Se non ne hai uno, puoi fare clic su Riserva subnet per crearne uno.

  4. Tieni aperta la finestra per continuare.

Configurazione backend

Il gruppo di endpoint di rete Private Service Connect è un tipo di backend del bilanciatore del carico. Crea un servizio di backend per ogni backend che vuoi configurare.

  1. Fai clic su Configurazione backend.
  2. Per ogni gruppo di endpoint di rete Private Service Connect che vuoi configurare, crea un servizio di backend.

    1. Dal menu Crea o seleziona servizi di backend, seleziona Crea un servizio di backend.
    2. Inserisci un nome per il servizio di backend.
    3. Imposta Tipo di backend su Gruppo di endpoint di rete Private Service Connect.
    4. Imposta Tipo di destinazione Private Service Connect su API di Google regionale.
    5. Seleziona HTTPS per il protocollo.

    6. Nella sezione Backend, fai clic sul menu Nuovo backend e seleziona il gruppo di endpoint di rete Private Service Connect.

      Se devi creare un nuovo gruppo di endpoint di rete Private Service Connect, fai clic su Crea gruppo di endpoint di rete Private Service Connect.

Regole di routing

L'insieme di regole per instradare le richieste HTTPS in entrata a servizi di backend o bucket di backend specifici è chiamato mappa URL. Per saperne di più sulle mappe URL, consulta la Panoramica delle mappe URL.

Se stai configurando un solo servizio di backend per il bilanciatore del carico, la regola di routing predefinita è sufficiente e puoi passare alla configurazione del frontend.

  1. Se hai più di un servizio di backend, fai clic su Regole di routing.
  2. Seleziona Regola semplice per host e percorso.
  3. Per ogni backend, procedi nel seguente modo:
    1. Aggiungi regola host e percorso.
    2. In Host, inserisci il nome host che verrà utilizzato per inviare richieste a questo servizio, ad esempio pubsub.example.com.
    3. In Percorsi, inserisci il percorso, ad esempio /*.
    4. In Backend, seleziona il servizio di backend.

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. Seleziona una subnet per il bilanciatore del carico.
  6. Assicurati che la Porta sia impostata su 443 per consentire il traffico HTTPS.
  7. In Indirizzo IP, seleziona un indirizzo IP dal menu.

    Se vuoi prenotare un nuovo indirizzo IP, fai clic su Crea indirizzo IP.

  8. Fai clic sul menu a discesa Certificato.

    1. Se hai già una risorsa certificato SSL autogestito che vuoi utilizzare, selezionala dal menu.
    2. In alternativa, seleziona Crea un nuovo certificato.
    3. Inserisci un nome per la risorsa certificato.
    4. Nei campi appropriati, carica i file in formato PEM:
      • Certificato
      • Chiave privata
    5. Fai clic su Crea.
  9. Fai clic su Fine.

Esamina e finalizza

  1. Fai clic su Esamina e finalizza per rivedere la configurazione.
  2. Fai clic su Crea.

gcloud

  1. Per ogni gruppo di endpoint di rete che hai creato, crea un servizio di backend.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTPS \
        --region=REGION
    

    Sostituisci quanto segue:

    • BACKEND_SERVICE_NAME: il nome del servizio di backend.
    • REGION: la regione in cui creare il servizio di backend.
  2. Per ogni servizio di backend che hai creato, aggiungi il NEG corrispondente al servizio di backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --region=REGION
    

    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 backend.
  3. Crea una mappa URL per il bilanciatore del carico.

    Una mappa URL deve fare riferimento a un servizio di backend predefinito. Se configuri il bilanciatore del carico con un servizio di backend, impostalo come predefinito. Se stai configurando il bilanciatore del carico in modo che utilizzi più servizi di backend, a cui fanno riferimento le regole host e i matcher percorso che crei nel passaggio successivo, scegli uno dei servizi di backend da utilizzare come predefinito per la mappa URL.

    gcloud compute url-maps create URL_MAP_NAME \
        --default-service=DEFAULT_BACKEND_SERVICE_NAME \
        --region=REGION
    

    Sostituisci quanto segue:

    • URL_MAP_NAME: un nome per la mappa URL.

    • DEFAULT_BACKEND_SERVICE_NAME: il nome del valore predefinito del bilanciatore del carico. L'impostazione predefinita viene utilizzata quando nessuna regola host corrisponde al nome host richiesto.

    • REGION: la regione in cui creare la mappa URL.

  4. Aggiungi altri servizi di backend alla mappa URL.

    Se la mappa URL deve fare riferimento a due o più servizi di backend, completa i seguenti passaggi. Se la mappa URL fa riferimento a un solo servizio di backend, ignora questo passaggio.

    1. Per ogni servizio di backend, aggiungi un matcher di percorso. Devi creare un matcher di percorso per ogni servizio di backend.

      gcloud compute url-maps add-path-matcher URL_MAP_NAME \
          --path-matcher-name=PATH_MATCHER \
          --default-service=BACKEND_SERVICE_NAME \
          --region=REGION
      

      Sostituisci quanto segue:

      • URL_MAP_NAME: il nome della mappa URL.
      • PATH_MATCHER: un nome per il matcher di percorso.
      • BACKEND_SERVICE_NAME: il nome del servizio di backend.
      • REGION: la regione della mappa degli URL.
    2. Per ogni nome host, aggiungi una regola host.

      Ogni regola host può fare riferimento a un solo matcher di percorso, ma due o più regole host possono fare riferimento allo stesso matcher di percorso.

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
          --hosts=HOST \
          --path-matcher-name=PATH_MATCHER \
          --region=REGION
      

      Sostituisci quanto segue:

      • URL_MAP_NAME: il nome della mappa URL.
      • HOST: il nome host a cui inviare le richieste per questo servizio. Ad esempio, pubsub.example.com.
      • PATH_MATCHER: il nome del matcher di percorso.
      • REGION: la regione della mappa degli URL.
  5. Crea il proxy HTTPS di destinazione.

    1. Crea una risorsa del certificato SSL a livello di regione utilizzando il comando gcloud compute ssl-certificates create. I certificati gestiti da Google non sono supportati con i bilanciatori del carico delle applicazioni interni.

      gcloud compute ssl-certificates create CERTIFICATE \
          --certificate=LB_CERT \
          --private-key=LB_PRIVATE_KEY \
          --region=REGION
      

      Sostituisci quanto segue:

      • CERTIFICATE: un nome per il certificato.

      • LB_CERT: il percorso del file del certificato in formato PEM per il certificato autogestito.

      • LB_PRIVATE_KEY: il percorso del file della chiave privata in formato PEM per il certificato autogestito.

      • REGION: la regione del certificato.

    2. Utilizza la risorsa del certificato SSL regionale per creare un proxy HTTPS di destinazione con il comando gcloud compute target-https-proxies create.

      gcloud compute target-https-proxies create PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --region=REGION \
          --ssl-certificates=CERTIFICATE
      

      Sostituisci quanto segue:

      • PROXY_NAME: un nome per il proxy HTTPS di destinazione.
      • URL_MAP_NAME: il nome della mappa URL.
      • REGION: la regione della risorsa del certificato.
      • CERTIFICATE: il nome della risorsa certificato.
  6. Prenota un indirizzo IPv4 interno regionale per la regola di forwarding.

    gcloud compute addresses create ADDRESS_NAME \
        --ip-version=IPV4 \
        --region=REGION \
        --subnet=SUBNETWORK
    

    Sostituisci quanto segue:

    • ADDRESS_NAME: un nome per la risorsa dell'indirizzo IP.
    • REGION: la regione in cui creare l'indirizzo IP.
    • SUBNET: la subnet in cui creare l'indirizzo IP.

    Esegui questo comando per visualizzare l'indirizzo IP riservato. Dopo aver creato il bilanciatore del carico, puoi utilizzare l'indirizzo IP per verificare la configurazione.

    gcloud compute addresses describe ADDRESS_NAME \
        --format="get(address)" --region=REGION
    
  7. Crea la regola di forwarding.

    Crea la regola di forwarding utilizzando il comando gcloud compute forwarding-rules create.

    gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=NETWORK \
        --address=ADDRESS_NAME \
        --ports=443 \
        --region=REGION \
        --target-https-proxy=PROXY_NAME \
        --target-https-proxy-region=PROXY_REGION \
       [--service-directory-registration=SD_SERVICE_NAME]
    

    Sostituisci quanto segue:

    • FWD_RULE: un nome per la regola di forwarding.

    • NETWORK: la rete in cui creare la regola di forwarding.

    • ADDRESS_NAME: l'indirizzo IP riservato.

    • REGION: la regione per la regola di forwarding.

    • PROXY_NAME: il nome del proxy HTTPS di destinazione.

    • PROXY_REGION: la regione del proxy HTTPS di destinazione.

    • SD_SERVICE_NAME: l'URI del servizio Service Directory a cui vuoi registrare il bilanciatore del carico, in questo formato: projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME. La specifica di --service-directory-registration è facoltativa.

Verificare la configurazione

  1. Crea l'istanza VM.

    gcloud compute instances create VM_NAME \
        --network=NETWORK \
        --image-project=debian-cloud --image-family=debian-12 \
        --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 ignora la risoluzione DNS specificando un indirizzo IP definito dall'utente. Puoi omettere la porta se utilizzi quella predefinita per il protocollo, ad esempio la porta 443 per HTTPS.

    Se necessario, puoi ignorare 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 -iv --resolve HOSTNAME:443:IP_ADDRESS \
       'https://HOSTNAME/RESOURCE_URI'
    

    Sostituisci quanto segue:

    • HOSTNAME: il nome host che hai configurato nella mappa URL, ad esempio pubsub.example.com.
    • IP_ADDRESS: l'indirizzo IP della regola di forwarding del bilanciatore del carico.
    • RESOURCE_URI: il resto dell'URI della risorsa che vuoi utilizzare per la verifica. Ad esempio, se il bilanciatore del carico inoltra le richieste a un endpoint regionale per Pub/Sub, puoi utilizzare rest?version=v1.

Configura i record DNS

Configura i record DNS per ogni host che hai aggiunto alla mappa URL, in modo che puntino all'indirizzo IP della regola di forwarding. Se utilizzi Cloud DNS per gestire il DNS, consulta Aggiungere, modificare ed eliminare record. In caso contrario, configura i record DNS sul tuo server DNS.

Ad esempio, supponiamo di aver creato le seguenti configurazioni:

  • Un NEG Private Service Connect che utilizza il servizio di destinazione pubsub.europe-west3.rep.googleapis.com.

  • Un bilanciatore del carico delle applicazioni interno che utilizza il NEG Private Service Connect come backend.

  • Una mappa URL che definisce una regola host per pubsub.example.com.

Affinché questa configurazione funzioni correttamente, devi creare un record DNS che rimandi pubsub.example.com all'indirizzo IP dellaregola di forwardingo.

Con questa configurazione, tutte le richieste inviate a pubsub.example.com vengono inviate al bilanciatore del carico, che inoltra la richiesta a pubsub.europe-west3.rep.googleapis.com.

Configura i client per inviare richieste al backend

Per inviare richieste tramite il backend anziché gli endpoint di servizio pubblici, devi configurare i client in modo che inviino le richieste al nome host definito nella mappa URL del bilanciatore del carico, ad esempio pubsub.example.com. Consulta la documentazione del client o della libreria client per informazioni sulla configurazione per l'utilizzo di endpoint personalizzati. Le pagine seguenti includono i passaggi di configurazione per alcuni client comuni:

  • Python: puoi configurare api_endpoint in Opzioni client.

  • Vai: puoi configurare WithEndpoint in ClientOptions.

  • .NET: puoi configurare Endpoint nella classe builder del client.

  • gcloud: puoi configurare api_endpoint_overrides nella gcloud CLI.

Accedere al backend da host on-premise

Se la tua rete on-premise è connessa a una rete VPC, puoi inviare traffico al backend Private Service Connect.

  • La rete on-premise deve essere connessa alla rete VPC contenente il bilanciatore del carico delle applicazioni interno utilizzando tunnel Cloud VPN o collegamenti VLAN nella stessa regione del bilanciatore del carico delle applicazioni interno.

  • La rete on-premise deve avere route appropriati al bilanciatore del carico delle applicazioni interno. Assicurati che ogni router Cloud che gestisce la sessione BGP per il tunnel Cloud VPN o il collegamento VLAN sia stato configurato per annunciare l'intervallo di indirizzi IP primario della subnet utilizzata dalla regola di forwarding del bilanciatore del carico delle applicazioni interno. I router Cloud annunciano le route subnet per impostazione predefinita.

  • Devi configurare i sistemi on-premise in modo che i nomi host nella mappa URL del bilanciatore del carico delle applicazioni interno vengano risolti nell'indirizzo IP della regola di forwarding del bilanciatore del carico delle applicazioni interno. Puoi creare i record DNS nei server dei nomi on-premise oppure utilizzare Cloud DNS.

    Se hai creato i record DNS utilizzando le zone private gestite di Cloud DNS, completa i seguenti passaggi:

    • Crea un criterio del server in entrata nella rete VPC a cui si connette la tua rete on-premise.

    • Identifica i punti di ingresso del forwarder in entrata, nelle regioni in cui si trovano i tunnel Cloud VPN e i collegamenti VLAN, nella rete VPC a cui si connette la rete on-premise.

    • Configura i server dei nomi DNS on-premise per inoltrare le richieste DNS per i nomi host nella mappa URL a un punto di ingresso dell'inoltro in entrata di Cloud DNS.

Figura 1. Configurando Private Service Connect, router Cloud e gli host on-premise, puoi connetterti alle API e ai servizi Google utilizzando i backend regionali (fai clic per ingrandire).