arrow_back

Configurazione di bilanciatori del carico di rete e HTTP

Partecipa Accedi

Configurazione di bilanciatori del carico di rete e HTTP

1 ora 1 credito

GSP007

Laboratori autogestiti Google Cloud

Panoramica

In questo lab pratico scoprirai quali sono le differenze tra un bilanciatore del carico di rete e un bilanciatore del carico HTTP e come configurarli per le tue applicazioni in esecuzione su macchine virtuali (VM) di Compute Engine.

Esistono diversi modi per bilanciare il carico su Google Cloud. Questo lab illustra come configurare i seguenti bilanciatori del carico:

Ti consigliamo di digitare direttamente i comandi, perché può aiutarti ad acquisire i concetti fondamentali. Molti lab includono blocchi di codice che contengono i comandi da inserire. Durante il lab puoi semplicemente copiare e incollare i comandi dai blocchi di codice nelle destinazioni appropriate.

Cosa imparerai a fare

  • Configurare un bilanciatore del carico di rete.

  • Configurare un bilanciatore del carico HTTP.

  • Acquisire esperienza pratica imparando le differenze tra i bilanciatori del carico di rete e i bilanciatori del carico HTTP.

Configurazione e requisiti

Prima di fare clic sul pulsante Avvia lab

Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.

Con questo lab pratico Qwiklabs avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.

Per completare il lab, avrai bisogno di:

  • Accesso a un browser Internet standard (Chrome è il browser consigliato).
  • Nota: utilizza una finestra di navigazione in incognito o privata per eseguire questo lab. Ciò previene qualsiasi conflitto tra il tuo account personale e l'account Studente, che potrebbe causare costi aggiuntivi sostenuti per il tuo account personale.

  • Tempo a disposizione per completare il lab.
  • Nota: se disponi già del tuo account o progetto Google Cloud personale, non utilizzarlo per questo lab per evitare costi aggiuntivi sul tuo account.

Come avviare il lab e accedere alla console Google Cloud

  1. Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Pulsante Apri console Google
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. Fai clic su Apri console Google. Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.

    Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.

    Note: se visualizzi la finestra di dialogo Scegli un account, fai clic su Utilizza un altro account.
  3. Se necessario, copia il Nome utente dal riquadro Dettagli lab e incollalo nella finestra di dialogo di accesso. Fai clic su Avanti.

  4. Copia la Password dal riquadro Dettagli lab e incollala nella finestra di dialogo di benvenuto. Fai clic su Avanti.

    Importante: devi utilizzare le credenziali presenti nel riquadro di sinistra. Non utilizzare le tue credenziali Google Cloud Skills Boost. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
  5. Fai clic nelle pagine successive:

    • Accetta i termini e le condizioni.
    • Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
    • Non registrarti per le prove gratuite.

Dopo qualche istante, la console Google Cloud si apre in questa scheda.

Nota: puoi visualizzare il menu con un elenco di prodotti e servizi Google Cloud facendo clic sul menu di navigazione in alto a sinistra. Icona menu di navigazione

Attiva Cloud Shell

Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Fai clic su Attiva Cloud Shell Attiva l'icona di Cloud Shell nella parte superiore della console di Google Cloud.

  2. Fai clic su Continua.

  3. Occorrono alcuni istanti per eseguire il provisioning e connettersi all'ambiente. Quando sei connesso, sei già autenticato e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:

    Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

    gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.

  4. (Opzionale) Puoi visualizzare il nome dell'account attivo con questo comando:

  5. gcloud auth list

    Output

    ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  6. (Opzionale) Puoi elencare l'ID progetto con questo comando:

gcloud config list project

Output

[core] project =

output di esempio

[core] project = qwiklabs-gcp-44776a13dea667a6

Attività 1: imposta la regione e la zona predefinite per tutte le risorse

  1. In Cloud Shell imposta la zona predefinita:

    gcloud config set compute/zone {{{project_0.startup_script.project_zone}}}
  2. Imposta la regione predefinita:

    gcloud config set compute/region {{{project_0.startup_script.project_region}}}

    Per saperne di più su come scegliere le zone e le regioni, consulta Regioni e zone nella documentazione di Compute Engine.

Attività 2: crea più istanze del server web

Per questo scenario di bilanciamento del carico, crea tre istanze VM di Compute Engine e installa Apache su ciascuna. Quindi, aggiungi una regola firewall che consenta al traffico HTTP di raggiungere le istanze.

Il codice fornito imposta la zona su . L'impostazione del campo relativo ai tag consente di fare riferimento a tutte queste istanze contemporaneamente, come con una regola firewall. Questi comandi installano anche Apache su ogni istanza e assegnano a ciascuna una home page univoca.

  1. Crea una macchina virtuale www1 nella tua zona predefinita.

    gcloud compute instances create www1 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www1

    " | tee /var/www/html/index.html'
  2. Crea una macchina virtuale www2 nella tua zona predefinita.

    gcloud compute instances create www2 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www2

    " | tee /var/www/html/index.html'
  3. Crea una macchina virtuale www3 nella tua zona predefinita.

    gcloud compute instances create www3 \ --zone={{{project_0.startup_script.project_zone}}} \ --tags=network-lb-tag \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www3

    " | tee /var/www/html/index.html'
  4. Crea una regola firewall per consentire il traffico esterno alle istanze VM:

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

Ora devi ottenere gli indirizzi IP esterni delle istanze e verificare che siano in esecuzione.

  1. Esegui il comando seguente per elencare le istanze. I relativi indirizzi IP saranno visualizzati nella colonna EXTERNAL_IP:

    gcloud compute instances list
  2. Verifica che ogni istanza sia in esecuzione con curl, sostituendo [IP_ADDRESS] con l'indirizzo IP di ciascuna delle VM:

    curl http://[IP_ADDRESS]

    Fai clic su Controlla i miei progressi qui sotto per verificare di avere creato un gruppo di server web.

    Crea più istanze del server web

Attività 3: configura il servizio di bilanciamento del carico

Una volta configurato il servizio di bilanciamento del carico, le istanze di macchine virtuali riceveranno i pacchetti destinati all'indirizzo IP esterno statico configurato. Le istanze create con un'immagine Compute Engine vengono automaticamente configurate per gestire questo indirizzo IP.

Nota: per saperne di più su come configurare il bilanciamento del carico di rete, consulta Panoramica del bilanciamento del carico di rete TCP/UDP esterno.
  1. Crea un indirizzo IP esterno statico per il bilanciatore del carico:

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.startup_script.project_region}}}

    Output:

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. Aggiungi una risorsa legacy di controllo di integrità HTTP:

    gcloud compute http-health-checks create basic-check
  3. Aggiungi un pool di destinazione nella stessa regione delle istanze. Esegui questo comando per creare il pool di destinazione e utilizzare il controllo di integrità necessario per consentire al servizio di funzionare:

    gcloud compute target-pools create www-pool \ --region {{{project_0.startup_script.project_region}}} --http-health-check basic-check
  4. Aggiungi le istanze al pool:

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
  5. Aggiungi una regola di forwarding:

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.startup_script.project_region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    Fai clic su Controlla i miei progressi qui sotto per verificare di avere creato un bilanciatore del carico di rete L4 che punta ai server web.

    Configura il servizio di bilanciamento del carico

Attività 4: invia traffico alle istanze

Una volta configurato il servizio di bilanciamento del carico, puoi iniziare a inviare traffico alla regola di forwarding e osservare la distribuzione del traffico su diverse istanze.

  1. Inserisci il seguente comando per visualizzare l'indirizzo IP esterno della regola di forwarding "www-rule" utilizzata dal bilanciatore del carico:

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}}
  2. Accedi all'indirizzo IP esterno

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.startup_script.project_region}}} --format="json" | jq -r .IPAddress)
  3. Mostra l'indirizzo IP esterno

    echo $IPADDRESS
  4. Utilizza il comando curl per accedere all'indirizzo IP esterno, sostituendo IP_ADDRESS con un indirizzo IP esterno del comando precedente:

    while true; do curl -m1 $IPADDRESS; done

    La risposta del comando curl si alterna in modo casuale tra le tre istanze. Se inizialmente la risposta non è andata a buon fine, attendi circa 30 secondi in modo che la configurazione sia caricata completamente e le istanze siano contrassegnate come integre prima di riprovare.

  5. Utilizza Ctrl+C per interrompere l'esecuzione del comando.

Attività 5: crea un bilanciatore del carico HTTP

Il bilanciamento del carico HTTP(S) è implementato in Google Front End (GFE). I GFE vengono distribuiti a livello globale e operano insieme utilizzando la rete globale e il piano di controllo di Google. Puoi configurare le regole URL per instradare alcuni URL a un set di istanze e altri URL ad altre istanze.

Le richieste vengono sempre instradate al gruppo di istanze più vicino all'utente, purché tale gruppo abbia una capacità sufficiente e sia appropriato per la richiesta. Se il gruppo più vicino non dispone di capacità sufficiente, la richiesta viene inviata al gruppo più vicino che ne dispone.

Per configurare un bilanciatore del carico con un backend di Compute Engine, le VM devono trovarsi in un gruppo di istanze. Il gruppo di istanze gestite fornisce VM che utilizzano i server di backend di un bilanciatore del carico HTTP esterno. Per questo lab, i backend gestiscono i propri nomi host.

  1. Innanzitutto, crea il modello del bilanciatore del carico:

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.startup_script.project_region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

    I gruppi di istanze gestite (MIG) ti consentono di utilizzare le app su più VM identiche. Puoi rendere i tuoi carichi di lavoro scalabili e ad alta disponibilità sfruttando i servizi MIG automatizzati, tra cui: scalabilità automatica, riparazione automatica, deployment regionale (più zone) e aggiornamento automatico.

  2. Crea un gruppo di istanze gestite basato sul modello:

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.startup_script.project_zone}}}
  3. Crea la regola firewall fw-allow-health-check.

    gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Nota: la regola in entrata consente il traffico proveniente dai sistemi di controllo di integrità di Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Questo lab utilizza il tag di destinazione allow-health-check per identificare le VM.
  4. Ora che le istanze sono operative, configura un indirizzo IP esterno statico e globale, che verrà utilizzato dai clienti per raggiungere il bilanciatore del carico:

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    Prendi nota dell'indirizzo IPv4 riservato:

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
  5. Crea un controllo di integrità per il bilanciatore del carico:

    gcloud compute health-checks create http http-basic-check \ --port 80 Nota: Google Cloud fornisce meccanismi del controllo di integrità che determinano se le istanze di backend rispondono correttamente al traffico. Per saperne di più, consulta Creazione di controlli di integrità.
  6. Crea un servizio di backend:

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. Aggiungi il tuo gruppo di istanze come backend del servizio di backend:

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.startup_script.project_zone}}} \ --global
  8. Crea una mappa URL per instradare le richieste in entrata al servizio di backend predefinito:

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service Nota: la mappa URL è una risorsa di configurazione di Google Cloud utilizzata per instradare le richieste ai servizi di backend o ai bucket di backend. Ad esempio, con un bilanciatore del carico HTTP(S) esterno, puoi utilizzare una singola mappa URL per instradare le richieste a destinazioni diverse in base alle regole configurate nella mappa URL:

    • Le richieste per https://example.com/video vanno a un servizio di backend.
    • Le richieste per https://example.com/audio vanno a un altro servizio di backend.
    • Le richieste per https://example.com/images vanno a un bucket di backend Cloud Storage.
    • Le richieste per qualsiasi altra combinazione di host e percorso vanno a un servizio di backend predefinito.
  9. Crea un proxy HTTP di destinazione per instradare le richieste alla mappa URL:

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. Crea una regola di forwarding globale per instradare le richieste in entrata al proxy:

gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80 Nota: una regola di forwarding e l'indirizzo IP corrispondente rappresentano la configurazione frontend di un bilanciatore del carico Google Cloud. Per saperne di più sulla comprensione generale delle regole di forwarding, consulta Panoramica delle regole di forwarding.

Fai clic su Controlla i miei progressi qui sotto per verificare di avere creato un bilanciatore del carico HTTP(S) L7.

Crea un bilanciatore del carico HTTP

Attività 6: verifica il traffico inviato alle istanze

  1. Nella console Google Cloud, dal Menu di navigazione, vai a Servizi di rete > Bilanciamento del carico.

  2. Fai clic sul bilanciatore del carico che hai appena creato (web-map-http).

  3. Nella sezione Backend, fai clic sul nome del backend e verifica che le VM siano in Stato integro. Nel caso in cui non lo siano, attendi qualche istante e prova a ricaricare la pagina.

  4. Se le VM sono in stato integro, verifica il bilanciatore del carico tramite un browser web, andando all'indirizzo http://IP_ADDRESS/ e sostituendo IP_ADDRESS con l'indirizzo IP del bilanciatore del carico.

L'operazione potrebbe richiedere dai tre ai cinque minuti. Se la connessione non va a buon fine, attendi un minuto, quindi ricarica il browser.

Il browser dovrebbe visualizzare una pagina con contenuti che mostrano il nome dell'istanza che ha pubblicato la pagina e la relativa zona (ad esempio, Page served from: lb-backend-group-xxxx).

Complimenti!

Hai creato un bilanciatore del carico di rete e un bilanciatore del carico HTTP(s) e hai fatto pratica con l'utilizzo di modelli di istanze e gruppi di istanze gestite.

Completa la Quest

Questo self-paced lab fa parte della Quest Google Cloud Essentials. Una Quest è una serie di lab collegati tra loro che formano un percorso di apprendimento. Il completamento della Quest ti permette di ottenere un badge come riconoscimento dell'obiettivo raggiunto. Puoi rendere pubblici i tuoi badge inserendone i link nel tuo CV online o sui social media. Iscriviti alla Quest e ricevi subito un riconoscimento per aver completato questo lab. Per vedere tutte le Quest disponibili, consulta il catalogo di Google Cloud Skills Boost.

Segui il prossimo lab

Continua la Quest con Il nodo Kubernetes oppure dai un'occhiata a questi lab consigliati:

Passaggi successivi/Scopri di più

Formazione e certificazione Google Cloud

… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.

Ultimo aggiornamento del manuale: 12 agosto 2022

Ultimo test del lab: 12 agosto 2022

Copyright 2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.