Configura un bilanciatore del carico delle applicazioni esterno globale con un servizio di backend e un bucket di backend tra progetti

Questo documento mostra come creare un bilanciatore del carico delle applicazioni esterno globale con un servizio di backend e un bucket di backend che si trovano in un progetto diverso da quello in cui si trovano il frontend del bilanciatore del carico e la mappa URL. Questo modello di deployment è noto come riferimento ai servizi tra progetti.

L'esempio utilizzato in questo documento non utilizza un ambiente VPC condiviso per configurare il riferimento ai servizi tra progetti. Per scoprire di più su come configurare il riferimento ai servizi tra progetti in un ambiente VPC condiviso, consulta Configurare un bilanciatore del carico delle applicazioni esterno globale con VPC condiviso.

Prima di iniziare

Assicurati che la configurazione soddisfi i seguenti prerequisiti.

Ruoli e autorizzazioni IAM richiesti

Per seguire questa guida, devi disporre dei seguenti ruoli IAM:

Attività Ruolo richiesto
Crea un progetto Ruolo di autore del progetto (roles/resourcemanager.projectCreator)
Creare risorse di computing Ruolo Amministratore rete Compute (roles/compute.networkAdmin)
Creazione di bucket di Cloud Storage Ruolo Amministratore oggetti Storage (roles/storage.objectAdmin)

Utilizzare una risorsa di un altro progetto

In questo esempio, il progetto A fa riferimento al servizio di backend e al bucket di backend che si trovano nel progetto B.

In questo esempio, un amministratore del progetto B deve concedere il ruolo Utente dei servizi bilanciatore del carico Compute (roles/compute.loadBalancerServiceUser) all'amministratore del progetto A per consentire l'accesso al servizio di backend e al bucket di backend nel progetto B. Questo ruolo può essere concesso a livello di progetto o di risorsa.

Per scoprire di più su come assegnare questo ruolo, consulta Concedi autorizzazioni all'amministratore del bilanciatore del carico Compute per utilizzare il servizio di backend.

Crea Trusted Cloud by S3NS progetti

Per l'esempio riportato in questo documento, segui le istruzioni due volte per creare due Trusted Cloud by S3NS progetti.

Console

Per creare un nuovo progetto, segui questi passaggi:

  1. Vai alla pagina Gestisci risorse nella console Trusted Cloud .

    Vai a Gestisci risorse

    I passaggi rimanenti vengono visualizzati nella console Trusted Cloud .

  2. Nell'elenco a discesa Seleziona organizzazione nella parte superiore della pagina, scegli la risorsa Organizzazione in cui creare un progetto. Se stai usufruendo di una prova gratuita, salta questo passaggio perché l'elenco non viene visualizzato.
  3. Fai clic su Crea progetto.
  4. Nella finestra Nuovo progetto visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione appropriato. Il nome del progetto può contenere solo lettere, numeri, virgolette singole, trattini, spazi o punti esclamativi e deve avere una lunghezza compresa tra 4 e 30 caratteri.
  5. Inserisci la cartella o l'organizzazione padre nella casella Posizione. Questa risorsa sarà l'entità padre gerarchica di un nuovo progetto. Se Nessuna organizzazione è un'opzione, puoi selezionarla per creare il nuovo progetto come livello superiore della sua gerarchia di risorse.
  6. Una volta specificati i dettagli del nuovo progetto, fai clic su Crea.

gcloud

  1. In the Trusted Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Per creare un nuovo progetto, utilizza il comando gcloud projects create:

    gcloud projects create PROJECT_ID
    

    dove PROJECT_ID è l'ID del progetto che vuoi creare. Un ID progetto deve iniziare con una lettera minuscola e può contenere solo lettere ASCII, cifre e trattini e deve essere compreso tra 6 e 30 caratteri.

Panoramica della configurazione

Come illustrato nel seguente diagramma, il frontend e la mappa URL di un bilanciatore del carico delle applicazioni esterno globale vengono creati in un progetto diverso dal servizio di backend e dal bucket di backend del bilanciatore del carico. Questo tipo di deployment tra progetti non utilizza un ambiente VPC condiviso.

In questa configurazione, la mappa URL instrada le richieste di contenuti statici (/images/*) a un bucket di backend, mentre tutte le altre richieste vengono instradate al servizio di backend predefinito.

Un bilanciatore del carico delle applicazioni interno tra regioni invia il traffico a un servizio di backend Cloud Storage e a un bucket di backend che si trovano in un progetto diverso.
Deployment tra progetti (fai clic per ingrandire).

La tabella seguente fornisce una panoramica delle risorse create nel progetto A e nel progetto B. Il frontend e la mappa URL del bilanciatore del carico vengono creati nel progetto A, mentre i componenti di backend vengono creati nel progetto B.

Risorse create nel progetto A Risorse create nel progetto B
  • Indirizzo IP
  • Certificato SSL
  • Mappa URL
  • Proxy di destinazione
  • Regola di forwarding
  • Rete VPC
  • Subnet
  • Servizio di backend

    Il servizio di backend fa riferimento alle istanze di backend in un gruppo di istanze. Per creare le istanze di backend vengono utilizzate le seguenti risorse. Ai fini di questo esempio, le istanze di backend vengono create in una subnet denominata lb-backend-subnet nella regione us-west1.

    • Modello di istanza
    • Gruppo di istanze
    • Controllo di integrità
    • Regola firewall
  • Bucket di backend
    • Il bucket di backend fa riferimento a un bucket Cloud Storage.

Nelle sezioni seguenti configureremo le diverse risorse elencate nella tabella precedente, a partire dalla configurazione di una rete VPC e di una subnet per le VM di backend del bilanciatore del carico nel progetto B.

Configura una rete e una subnet per le VM di backend del bilanciatore del carico nel progetto B

Ai fini di questo esempio, le VM di backend vengono create nella seguente rete e subnet:

  • Rete. La rete è una rete VPC in modalità personalizzata denominata lb-network.

  • Subnet per le VM di backend del bilanciatore del carico: una subnet denominata lb-backend-subnet nella regione us-west1 utilizza 10.1.2.0/24 per il suo intervallo IP primario. Gli intervalli di indirizzi IPv4 principali e secondari di una subnet sono indirizzi IPv4 interni regionali. Per saperne di più, vedi Intervalli IPv4 validi.

Console

  1. Nella console Trusted Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci lb-network.

  4. Nella sezione Subnet, imposta Modalità di creazione subnet su Personalizzata.

  5. Nella sezione Nuova subnet, inserisci le seguenti informazioni:

    • Nome: lb-backend-subnet
    • Seleziona una regione: us-west1
    • Intervallo di indirizzi IP: 10.1.2.0/24
  6. Fai clic su Fine.

  7. Fai clic su Crea.

gcloud

  1. Crea una rete VPC personalizzata, denominata lb-network, con il comando gcloud compute networks create.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=PROJECT_B_ID
    
  2. Crea una subnet nella rete VPC lb-network nella regione us-west1 con il comando gcloud compute networks subnets create.

    gcloud compute networks subnets create lb-backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-west1 \
        --project=PROJECT_B_ID
    

Configura un servizio di backend nel progetto B

Per configurare un servizio di backend, devi:

  • Creare un modello di istanza.
  • Crea un gruppo di istanze.
  • Creare un controllo di integrità.
  • Crea una regola firewall.
  • Crea un servizio di backend.

Crea un modello di istanza

Il passaggio preliminare alla creazione di un gruppo di istanze gestite è la creazione di un modello di istanza, ovvero una risorsa che puoi utilizzare per creare istanze di macchine virtuali (VM). Il traffico proveniente dai client viene bilanciato del carico sulle VM in un gruppo di istanze. Il gruppo di istanze gestite fornisce VM che eseguono i server di backend di un bilanciatore del carico delle applicazioni esterno. In questo esempio, i backend gestiscono i propri nomi host.

Console

  1. Nella console Trusted Cloud , vai alla pagina Modelli di istanza di Compute Engine.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza.

  3. In Nome, inserisci backend-template.

  4. Nella sezione Disco di avvio, assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio Debian GNU/Linux 12 (bookworm). Fai clic su Cambia per modificare l'immagine, se necessario.

  5. Espandi la sezione Opzioni avanzate.

  6. Espandi Networking e configura i seguenti campi:

    1. In Tag di rete, inserisci load-balanced-backend.
    2. Nella sezione Interfacce di rete, configura i seguenti campi:
      • Rete: lb-network
      • Subnet: lb-backend-subnet
      • Tipo di stack IP: IPv4
    3. Fai clic su Fine.
  7. Espandi Gestione. Nel campo Script di avvio, inserisci il seguente script:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    # Retrieve the instance name from metadata
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    # Create an index file
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    # Restart Apache to apply changes
    systemctl restart apache2' \
    
  8. Fai clic su Crea.

gcloud

  1. Creare un modello di istanza.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --region=us-west1 \
        --network=projects/PROJECT_B_ID/global/networks/lb-network \
        --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --metadata=startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2 -y
        a2ensite default-ssl
        a2enmod ssl
        # Retrieve the instance name from metadata
        vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://metadata.google.internal/computeMetadata/v1/instance/name)"
        # Create an index file
        echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        # Restart Apache to apply changes
        systemctl restart apache2' \
        --project=PROJECT_B_ID
    

Creare un gruppo di istanze gestite

Console

  1. Nella console Trusted Cloud , vai alla pagina Gruppi di istanze di Compute Engine.

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.

  3. Seleziona Nuovo gruppo di istanze gestite (stateless) dalle opzioni.

  4. Come nome del gruppo di istanze, inserisci lb-backend.

  5. Nell'elenco Modello di istanza, seleziona il modello di istanza backend-template creato nel passaggio precedente.

  6. Nella sezione Località, seleziona Zona singola e inserisci i seguenti valori:

    • In Regione, seleziona us-west1.

    • In Zona, seleziona us-west1-a.

  7. Nella sezione Scalabilità automatica, inserisci i seguenti valori:

    • In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo.

    • In Numero minimo di istanze, seleziona 2.

    • In Numero massimo di istanze, seleziona 3.

  8. Nella sezione Mappatura delle porte, fai clic su Aggiungi porta e inserisci i valori seguenti:

    • In Nome porta, inserisci http.

    • In Numero porta, inserisci 80.

  9. Fai clic su Crea.

gcloud

  1. Crea un gruppo di istanze gestite e seleziona il modello di istanza che hai creato nel passaggio precedente:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --zone=us-west1-a \
        --size=2 \
        --template=INSTANCE_TEMPLATE_NAME \
        --project=PROJECT_B_ID
    
  2. Aggiungi una porta denominata al gruppo di istanze:

    gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=PROJECT_B_ID
    

Crea un controllo di integrità

I controlli di integrità sono test che confermano la disponibilità dei backend. Crea un controllo di integrità che utilizzi il protocollo HTTP e i probe sulla porta 80. In un secondo momento, collegherai questo controllo di integrità al servizio di backend a cui fa riferimento il bilanciatore del carico.

Console

  1. Nella console Trusted Cloud , vai alla pagina Controlli di integrità di Compute Engine.

    Vai a Controlli di integrità

  2. Inserisci lb-health-check per il nome del controllo di integrità.

  3. Imposta il protocollo su HTTP.

  4. Fai clic su Crea.

gcloud

Crea un controllo di integrità HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=PROJECT_B_ID

Crea una regola firewall

Per i probe del controllo di integrità, devi creare una regola firewall di autorizzazione in entrata a livello di rete, che ai fini di questo esempio è lb-network. Questa regola firewall consente ai probe del controllo di integrità di raggiungere le istanze di backend. Questo esempio utilizza la seguente regola firewall:

  • fw-allow-health-check. Una regola in entrata, applicabile alle istanze con bilanciamento del carico, che consente tutto il traffico TCP proveniente dai sistemi di controllo di integrità in Trusted Cloud, 130.211.0.0/22 e 35.191.0.0/16. Questo esempio utilizza il tag di destinazione load-balanced-backend per identificare le istanze a cui deve essere applicato.

Console

  1. Nella console Trusted Cloud , vai alla pagina Policy firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea regola firewall per creare la regola che consente le connessioni SSH in entrata sulla VM client:

    • Nome: fw-allow-health-check
    • Rete: lb-network
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Consenti
    • Target: Tag di destinazione specificati
    • Tag di destinazione: load-balanced-backend
    • Filtro di origine: intervalli IPv4
    • Intervalli IPv4 di origine: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolli e porte:
      • Scegli Protocolli e porte specificati.
      • Seleziona la casella di controllo TCP, quindi inserisci 80 per il numero di porta. Come best practice, limita questa regola solo ai protocolli e alle porte che corrispondono a quelli utilizzati dal controllo di integrità. Se utilizzi tcp:80 per il protocollo e la porta, Trusted Cloud by S3NS puoi utilizzare HTTP sulla porta 80 per contattare le tue VM, ma non puoi utilizzare HTTPS sulla porta 443 per contattarle.
  3. Fai clic su Crea.

gcloud

  1. Crea la regola firewall fw-allow-health-check per consentire i controlli di integritàTrusted Cloud . Questo esempio consente tutto il traffico TCP dai prober di controllo di integrità. Tuttavia, puoi configurare un insieme più ristretto di porte per soddisfare le tue esigenze.

    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
       --network=lb-network \
       --action=allow \
       --direction=ingress \
       --source-ranges=130.211.0.0/22,35.191.0.0/16 \
       --target-tags=load-balanced-backend \
       --rules=tcp \
       --project=PROJECT_B_ID
    

Crea un servizio di backend

Crea un servizio di backend globale per distribuire il traffico tra i backend. Nell'ambito di questo passaggio, devi assegnare il controllo di integrità che hai creato al servizio di backend e aggiungere il gruppo di istanze come backend al servizio di backend.

Console

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

    Vai a Bilanciamento del carico

  2. Vai alla sezione Backend.

  3. Fai clic su Crea servizio di backend.

  4. Per Servizio di backend globale, fai clic sul pulsante Crea accanto.

  5. In corrispondenza del nome del servizio di backend, inserisci cross-ref-backend-service.

  6. In Tipo di backend, seleziona Gruppo di istanze.

  7. Imposta Protocollo su HTTP.

  8. Nel campo Porta denominata, inserisci http. Si tratta dello stesso nome di porta che hai inserito durante la creazione del gruppo di istanze gestite.

  9. Per aggiungere backend al servizio di backend:

    1. Nella sezione Backend, imposta il gruppo di istanze su lb-backend, ovvero il gruppo di istanze gestite che hai creato in un passaggio precedente.

    2. In Numeri di porta, inserisci 80.

    3. Per aggiungere il backend, fai clic su Fine.

  10. Per aggiungere un controllo di integrità, nell'elenco Controllo di integrità, seleziona lb-health-check, ovvero il controllo di integrità che hai creato in precedenza.

  11. Per creare il servizio di backend, fai clic su Crea.

gcloud

  1. Crea un servizio di backend globale per distribuire il traffico tra i backend:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=HEALTH_CHECK_NAME \
        --global \
        --project=PROJECT_B_ID
    
  2. Aggiungi il tuo gruppo di istanze come backend del servizio di backend:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --instance-group=INSTANCE_GROUP_NAME \
        --instance-group-zone=us-west1-a \
        --global \
        --project=PROJECT_B_ID
    

Configura un bucket di backend nel progetto B

Per creare un bucket di backend, devi:

  1. Crea il bucket Cloud Storage.
  2. Copia i contenuti nel bucket.
  3. Rendi il bucket accessibile pubblicamente.
  4. Crea un bucket di backend e indirizzalo al bucket Cloud Storage.

Crea un bucket Cloud Storage

Console

  1. Nella console Trusted Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Fai clic su Crea.

  3. Nella casella Assegna un nome al bucket, inserisci un nome univoco globale che rispetti le linee guida per l'assegnazione dei nomi.

  4. Fai clic su Scegli dove archiviare i tuoi dati.

  5. Imposta Tipo di località su Area geografica.

  6. Dall'elenco delle regioni, seleziona us-east1.

  7. Fai clic su Crea.

gcloud

  1. Crea un bucket nella regione us-east1 con il comando gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=PROJECT_B_ID
    

Sostituisci la variabile BUCKET_NAME con il nome del tuo bucket Cloud Storage.

Copia un file grafico nel bucket Cloud Storage

Esegui il comando seguente in Cloud Shell, sostituendo le variabili dei nomi dei bucket con il nome univoco del tuo bucket Cloud Storage, per copiare il file grafico da un bucket Cloud Storage pubblico alla cartella images/ nel tuo bucket Cloud Storage:

gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/

Rendi pubblicamente leggibile il bucket Cloud Storage

Per rendere leggibili tutti gli oggetti in un bucket da parte di chiunque su internet, concedi al principal allUsers il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer).

Console

Per concedere a tutti gli utenti l'accesso in visualizzazione agli oggetti nei bucket, ripeti la seguente procedura per ogni bucket:

  1. Nella console Trusted Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che vuoi rendere pubblico.

  3. Seleziona la scheda Autorizzazioni nella parte superiore della pagina.

  4. Nella sezione Autorizzazioni, fai clic sul pulsante Concedi accesso. Viene visualizzata la finestra di dialogo Concedi l'accesso.

  5. Nel campo Nuove entità, inserisci allUsers.

  6. Nel campo Seleziona un ruolo, inserisci Storage Object Viewer nella casella di filtro e seleziona Visualizzatore oggetti Storage dai risultati filtrati.

  7. Fai clic su Salva.

  8. Fai clic su Consenti accesso pubblico.

gcloud

Per concedere a tutti gli utenti l'accesso per visualizzare gli oggetti nei bucket, esegui il comando buckets add-iam-policy-binding.

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer

Sostituisci le variabili dei nomi dei bucket con i nomi univoci dei bucket Cloud Storage.

Crea un bucket di backend

I backend bucket fungono da wrapper per i bucket Cloud Storage che hai creato in precedenza. indirizzano il traffico in entrata ai bucket Cloud Storage.

Console

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

    Vai a Bilanciamento del carico

  2. Vai alla sezione Backend.

  3. Fai clic su Crea bucket di backend.

  4. Inserisci un nome per il bucket di backend.

  5. Seleziona un bucket Cloud Storage a cui indirizzare il bucket di backend.

  6. Fai clic su Crea.

gcloud

Crea un bucket di backend con il comando gcloud compute backend-buckets create nel progetto B.

gcloud compute backend-buckets create BACKEND_BUCKET_NAME \
  --gcs-bucket-name=BUCKET_NAME \
  --project=PROJECT_B_ID

Configura i componenti frontend del bilanciatore del carico nel progetto A

Questa sezione mostra come configurare i seguenti componenti frontend del bilanciatore del carico nel progetto A:

  • Indirizzo IP
  • Certificato SSL
  • Mappa URL
  • Proxy di destinazione
  • Regola di forwarding

Prenota l'indirizzo IP del bilanciatore del carico

Prenota un indirizzo IP esterno statico globale che può essere assegnato alla regola di forwarding del bilanciatore del carico.

Console

  1. Nella console Trusted Cloud , vai alla pagina Indirizzi IP VPC.

    Vai a indirizzi IP

  2. Fai clic su Prenota indirizzo IP statico esterno.

  3. In Nome, inserisci cross-ref-ip-address.

  4. Imposta Network Service Tier su Premium.

  5. Imposta Versione IP su IPv4.

  6. Imposta Tipo su Globale.

  7. Fai clic su Prenota.

gcloud

Crea un indirizzo IP esterno statico globale.

gcloud compute addresses create IP_ADDRESS_NAME \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=PROJECT_A_ID

Configura una risorsa del certificato SSL

In questo esempio, puoi utilizzare HTTP o HTTPS come protocollo di richiesta-risposta tra il client e il bilanciatore del carico. Per creare un bilanciatore del carico HTTPS, devi aggiungere una risorsa del certificato SSL al frontend del bilanciatore del carico.

Crea una risorsa del certificato SSL come descritto nella documentazione seguente:

Ti consigliamo di utilizzare un certificato gestito da Google.

Dopo aver creato il certificato, puoi collegarlo al proxy di destinazione HTTPS.

Configura i componenti di un bilanciatore del carico delle applicazioni esterno globale

Console

Seleziona il tipo di bilanciatore del carico

  1. Nella console Trusted 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 workload 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 per il bilanciatore del carico.
  2. Tieni aperta la pagina per continuare.

Configura il frontend

Per HTTP:

  1. Fai clic su Configurazione frontend.
  2. Inserisci un nome per la regola di forwarding.
  3. Imposta Protocollo su HTTP.
  4. Seleziona l'indirizzo IP che hai creato in Riserva l'indirizzo IP del bilanciatore del carico.
  5. Imposta Porta su 80.
  6. Fai clic su Fine.

Per HTTPS:

Se utilizzi HTTPS tra il client e il bilanciatore del carico, devi configurare il proxy con una o più risorse di certificati SSL. Per informazioni su come creare risorse del certificato SSL, vedi Certificati SSL.

  1. Fai clic su Configurazione frontend.
  2. Inserisci un nome per la regola di forwarding.
  3. Nel campo Protocollo, seleziona HTTPS (includes HTTP/2).
  4. Seleziona l'indirizzo IP che hai creato in Riserva l'indirizzo IP del bilanciatore del carico.
  5. Assicurati che la Porta sia impostata su 443 per consentire il traffico HTTPS.
  6. Fai clic sull'elenco Certificato.
  7. Seleziona il nome del certificato SSL che hai creato in precedenza.
  8. Fai clic su Fine.

Configura il backend

  1. Fai clic su Configurazione backend.
  2. Fai clic su Servizi di backend tra progetti.
  3. In ID progetto, inserisci l'ID progetto per il progetto B.
  4. Dall'elenco Seleziona servizi di backend, seleziona il servizio di backend del progetto B che vuoi utilizzare.
  5. Fai clic su OK.

Configura le regole di routing

  1. Fai clic su Regole di routing.

  2. Per la modalità, seleziona Regola avanzata per host e percorso.

  3. Seleziona Aggiungi regola host e percorso.

  4. Nel campo Host, inserisci * per trovare una corrispondenza con tutti i nomi host.

  5. Nella sezione Patch matcher, inserisci la seguente configurazione YAML.

    defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME
    name: PATH_MATCHER_NAME
    pathRules:
    - paths:
      - /images/*
      service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    

    Il matcher di percorso, in questo esempio, è composto da una regola di percorso e da un servizio predefinito. La regola del percorso indirizza tutte le richieste a /images/* a un bucket di backend. Tutte le altre richieste vengono indirizzate al servizio di backend predefinito.

  6. Fai clic su Fine.

Per informazioni sulla gestione del traffico, consulta la panoramica della gestione del traffico.

Rivedi e finalizza la configurazione

  1. Esamina i diversi componenti del bilanciatore del carico che hai configurato nei passaggi precedenti. Noterai che la sezione Backend fa riferimento sia al servizio di backend sia al bucket di backend.

  2. Fai clic su Crea.

gcloud

Per creare i componenti di bilanciamento del carico menzionati in precedenza utilizzando gcloud CLI, segui questi passaggi:

  1. Crea una mappa URL con il comando gcloud compute url-maps create.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \
      --global \
      --project=PROJECT_A_ID
    
  2. Aggiungi un matcher percorso per la mappa URL. Il matcher percorso, in questo esempio, è composto da una regola di percorso e da un servizio predefinito. La regola percorso instrada tutte le richieste a /images/* a un bucket di backend. Tutte le altre richieste vengono indirizzate al servizio di backend predefinito.

    gcloud compute url-maps add-path-matcher URL_MAP_NAME \
      --path-matcher-name=PATH_MATCHER_NAME \
      --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME  \
      --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
    
  3. Crea un proxy di destinazione con il comando gcloud compute target-http-proxies create.

    Per il traffico HTTP, crea un proxy HTTP di destinazione per instradare le richieste alla mappa URL:

    gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --global \
      --project=PROJECT_A_ID
    

    Per il traffico HTTPS, crea un proxy HTTPS di destinazione per instradare le richieste alla mappa URL. Il proxy è la parte del bilanciatore del carico che contiene il certificato SSL per un bilanciatore del carico HTTPS. Dopo aver creato il certificato, puoi collegarlo al proxy di destinazione HTTPS.

    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE_NAME \
      --global \
      --project=PROJECT_A_ID
    

    Sostituisci CERTIFICATE_NAME con il nome del certificato SSL.

  4. Crea una regola di forwarding globale con il comando gcloud compute forwarding-rules create.

    Per il traffico HTTP, crea le regole di forwarding globali per instradare le richieste in entrata al proxy HTTP di destinazione:

    gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-http-proxy=TARGET_HTTP_PROXY_NAME \
      --ports=80 \
      --project=PROJECT_A_ID
    

    Per il traffico HTTPS, crea le regole di forwarding globali per instradare le richieste in entrata al proxy di destinazione HTTPS:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --address=IP_ADDRESS_NAME \
      --global \
      --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
      --ports=443 \
      --project=PROJECT_A_ID
    

Testa il bilanciatore del carico

La configurazione del bilanciatore del carico può richiedere alcuni minuti, dopodiché puoi inviare una richiesta al bilanciatore del carico. In questo esempio, la richiesta viene inviata alla regola di forwarding HTTP del bilanciatore del carico.

Ottieni l'indirizzo IP della regola di forwarding HTTP del bilanciatore del carico.

gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \
    --global

Se indirizzi il browser a http://IP_ADDRESS, la richiesta viene indirizzata al servizio di backend, che restituisce una pagina con informazioni minime sull'istanza di backend.

Tuttavia, se indirizzi il browser a http://IP_ADDRESS/images/three-cats.jpg, la richiesta a /images/* viene indirizzata al bucket di backend, che restituisce il file grafico.

Passaggi successivi