Checkpoint
Create multiple web server instances
/ 30
Configure the load balancing service
/ 20
Create an HTTP load balancer
/ 50
Configurazione di bilanciatori del carico di rete e HTTP
- GSP007
- Panoramica
- Cosa imparerai a fare
- Configurazione e requisiti
- Attività 1: imposta la regione e la zona predefinite per tutte le risorse
- Attività 2: crea più istanze del server web
- Attività 3: configura il servizio di bilanciamento del carico
- Attività 4: invia traffico alle istanze
- Attività 5: crea un bilanciatore del carico HTTP
- Attività 6: verifica il traffico inviato alle istanze
- Complimenti!
GSP007
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) 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 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).
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Come avviare il lab e accedere alla console Google Cloud
-
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:
- Il pulsante Apri console Google Cloud
- Tempo rimanente
- Credenziali temporanee da utilizzare per il lab
- Altre informazioni per seguire questo lab, se necessario
-
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).
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.
Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account. -
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.
{{{user_0.username | "Username"}}} Puoi trovare il Nome utente anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
-
Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.
{{{user_0.password | "Password"}}} Puoi trovare la Password anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi. -
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.
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.
- Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
- (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
-
Fai clic su Autorizza.
-
L'output dovrebbe avere ora il seguente aspetto:
Output:
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
Output:
Output di esempio:
gcloud
, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.
Attività 1: imposta la regione e la zona predefinite per tutte le risorse
-
Imposta la regione predefinita:
gcloud config set compute/region {{{project_0.default_region | Region}}} -
In Cloud Shell imposta la zona predefinita:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}} 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
-
Crea una macchina virtuale www1 nella tua zona predefinita utilizzando il seguente codice:
gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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' -
Crea una macchina virtuale www2 nella tua zona predefinita utilizzando il seguente codice:
gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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' -
Crea una macchina virtuale www3 nella tua zona predefinita.
gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --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' -
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.
-
Esegui il comando seguente per elencare le istanze. I relativi indirizzi IP saranno visualizzati nella colonna
EXTERNAL_IP
:gcloud compute instances list -
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.
-
Crea un indirizzo IP esterno statico per il bilanciatore del carico:
gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | 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]. -
Aggiungi una risorsa legacy di controllo di integrità HTTP:
gcloud compute http-health-checks create basic-check -
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.default_region | Region}}} --http-health-check basic-check -
Aggiungi le istanze al pool:
gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3 -
Aggiungi una regola di forwarding:
gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | 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.
-
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.default_region | Region}}} -
Accedi all'indirizzo IP esterno
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress) -
Mostra l'indirizzo IP esterno
echo $IPADDRESS -
Utilizza il comando
curl
per accedere all'indirizzo IP esterno, sostituendoIP_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. -
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é questo 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.
-
Innanzitutto, crea il modello del bilanciatore del carico:
gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | 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.
-
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.default_zone | Zone}}} -
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
e35.191.0.0/16
). Questo lab utilizza il tag di destinazioneallow-health-check
per identificare le VM. -
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 -
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à. -
Crea un servizio di backend:
gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global -
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.default_zone | Zone}}} \ --global -
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.
-
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 -
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
Fai clic su Controlla i miei progressi qui sotto per verificare di avere creato un bilanciatore del carico HTTP(S) L7.
Attività 6: verifica il traffico inviato alle istanze
-
Nella console Google Cloud, dal menu di navigazione, vai a Servizi di rete > Bilanciamento del carico.
-
Fai clic sul bilanciatore del carico che hai appena creato (
web-map-http
). -
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.
-
Se le VM sono in stato integro, verifica il bilanciatore del carico tramite un browser web, andando all'indirizzo
http://IP_ADDRESS/
e sostituendoIP_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.
Segui il prossimo lab
Continua la Quest con Il nodo Kubernetes oppure dai un'occhiata a questi lab consigliati:
Passaggi successivi/Scopri di più
- Configurazione di un bilanciatore del carico di rete con servizi di backend
- Configurazione di un bilanciatore del carico HTTPS esterno semplice
- Panoramica del bilanciamento del carico HTTP(S) esterno
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: 19 settembre 2023
Ultimo test del lab: 19 settembre 2023
Copyright 2024 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.