arrow_back

Utilizzo di un bilanciatore del carico delle applicazioni interno

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Utilizzo di un bilanciatore del carico delle applicazioni interno

Lab 45 minuti universal_currency_alt 1 credito show_chart Introduttivi
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Accedi a oltre 700 lab e corsi

GSP041

Logo dei self-paced lab di Google Cloud

Panoramica

Il bilanciatore del carico delle applicazioni interno è essenziale per creare applicazioni interne affidabili, sicure e facilmente gestibili per le operazioni aziendali. Questo lab ti insegnerà a distribuire il traffico di rete all'interno della rete cloud privata senza esporre le macchine virtuali (VM) direttamente alla rete internet pubblica, così da garantire la protezione e l'efficienza dei servizi.

Creerai un pattern architetturale semplificato, ma molto comune:

  • Un "livello web" (un sito web rivolto al pubblico) che deve chiedere aiuto a un altro servizio interno.
  • Un "livello di servizio interno" (un calcolatore di numeri primi) che esegue attività specifiche ed è distribuito su più macchine.

Questa configurazione garantisce che, anche se una parte del servizio interno è occupata o non funziona, il sistema complessivo continui a funzionare senza problemi perché il bilanciatore del carico indirizza automaticamente le richieste alle macchine integre.

In questo lab proverai a:

  • Scoprire di più sui componenti che costituiscono un bilanciatore del carico interno.
  • Creare un gruppo di macchine di backend (un calcolatore di numeri primi).
  • Configurare il bilanciatore del carico interno in modo che indirizzi il traffico interno alle macchine di backend.
  • Testare il bilanciatore del carico interno da un'altra macchina interna.
  • Configurare un server web rivolto al pubblico che utilizza il bilanciatore del carico interno per ottenere i risultati dal servizio interno per il calcolo di numeri primi.

Prerequisiti

  • Familiarità di base con Google Cloud Compute Engine: sapere cos'è un'istanza di macchina virtuale (VM).
  • Concetti di base del networking: che cos'è un indirizzo IP.
  • Riga di comando Unix/Linux di base: come digitare i comandi in un terminale.
  • Conoscenze generali sui VPC (Virtual Private Cloud): sapere che le risorse Google Cloud si trovano in una rete privata.

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 Inizia il 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 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: per eseguire questo lab, utilizza una finestra del browser in modalità di navigazione in incognito (consigliata) o privata. Ciò evita conflitti tra il tuo account personale e l'account studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
  • È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: utilizza solo l'account studente per questo lab. Se utilizzi un altro account Google Cloud, potrebbero essere addebitati costi su quell'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 aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Il pulsante Apri la console Google Cloud
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. 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.
  3. 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.

  4. Fai clic su Avanti.

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

  6. 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.
  7. 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: per accedere ai prodotti e ai servizi Google Cloud, fai clic sul menu di navigazione o digita il nome del servizio o del prodotto nel campo Cerca. Icona del menu di navigazione e campo Cerca

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 Icona Attiva Cloud Shell nella parte superiore della console Google Cloud.

  2. Fai clic nelle seguenti finestre:

    • Continua nella finestra delle informazioni di Cloud Shell.
    • Autorizza Cloud Shell a utilizzare le tue credenziali per effettuare chiamate API 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:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
  1. Fai clic su Autorizza.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: per la documentazione completa di gcloud, in Google Cloud, fai riferimento alla guida Panoramica dell'interfaccia a riga di comando gcloud.

Imposta la regione e la zona

  1. Imposta la regione e la zona del progetto per questo lab:
gcloud config set compute/region {{{project_0.default_region | Region}}} gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
  1. Crea una variabile per la regione:
export REGION={{{project_0.default_region | Region}}}
  1. Crea una variabile per la zona:
export ZONE={{{project_0.default_zone | Zone}}}

Puoi trovare ulteriori informazioni nella documentazione relativa alle regioni e alle zone.

Nota: quando esegui gcloud sul tuo computer, le impostazioni di configurazione sono rese persistenti in tutte le sessioni. In Cloud Shell, invece, devi impostarle per ogni nuova sessione o riconnessione.

Attività 1: crea un ambiente virtuale

Un ambiente virtuale mantiene in ordine il software del progetto e garantisce che il codice venga sempre eseguito con le versioni specifiche degli strumenti necessari.

Gli ambienti virtuali Python vengono utilizzati per isolare l'installazione dei pacchetti dal sistema.

  1. Installa l'ambiente virtualenv:
sudo apt-get install -y virtualenv
  1. Crea l'ambiente virtuale:
python3 -m venv venv
  1. Attiva l'ambiente virtuale:
source venv/bin/activate

Attività 2: crea un gruppo di istanze gestite di backend

Utilizzando un "gruppo di istanze gestite", Google Cloud può creare e gestire automaticamente copie identiche del servizio. Se una copia ha dei problemi, Google Cloud la sostituisce, rendendo il servizio più affidabile.

Crea lo script di avvio

Questo script è come un insieme di istruzioni che ogni nuova VM del gruppo seguirà all'avvio. Il nostro script includerà un piccolo server web scritto in Python che può dirci se un numero è primo (True) o meno (False).

  1. Per iniziare, crea lo script backend.sh nella home directory:
touch ~/backend.sh
  1. Fai clic su sull'icona Apri editor nella parte superiore di Cloud Shell. Se richiesto, fai clic su Apri in una nuova finestra.

L'icona Apri editor evidenziata nell'interfaccia utente

Nota: se non vedi l'icona dell'editor di codice, chiudi il riquadro a sinistra facendo clic sull'icona del menu di navigazione.

Icona del menu di navigazione evidenziata nell'interfaccia utente

Dopo l'avvio dell'editor di codice, Cloud Shell viene spostato in una nuova finestra e l'editor di codice viene aperto. Dopo alcuni secondi, viene visualizzato il workspace.

  1. Seleziona il file backend.sh nel riquadro a sinistra.

  2. Ora aggiungi lo script seguente nell'editor a destra:

sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/serveprimes.py import http.server def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1)) class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/plain") s.end_headers() s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8'))) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
  1. Fai clic su File > Salva.

Crea il modello di istanza

  1. Fai clic su Apri terminale nella barra degli strumenti di Cloud Shell. Inserisci il comando seguente per creare il template di istanza primecalc:
gcloud compute instance-templates create primecalc \ --metadata-from-file startup-script=backend.sh \ --no-address --tags backend --machine-type=e2-medium

Questo è il "progetto base" per le VM di backend. Nota che contiene --no-address, a indicare che queste VM di backend non avranno accesso a internet pubblico per motivi di sicurezza.

Apri il firewall

Devi creare una regola firewall per consentire al traffico sulla porta 80 (traffico HTTP standard) di raggiungere le VM di backend. Ciò è fondamentale per la comunicazione tra il bilanciatore del carico delle applicazioni interno e i controlli di integrità.

  1. Apri il firewall sulla porta 80:
gcloud compute firewall-rules create http --network default --allow=tcp:80 \ --source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend

Fai clic su Controlla i miei progressi qui sotto per verificare se il lab sta procedendo bene.

Crea il template di istanza e apri il firewall sulla porta 80

Crea il gruppo di istanze

  1. Ora crea il gruppo di istanze gestite denominato backend. Inizia con tre istanze:
gcloud compute instance-groups managed create backend \ --size 3 \ --template primecalc \ --zone $ZONE
  1. Al termine dell'esecuzione, torna alla scheda della console. Vai a Compute Engine > Istanze VM. Ora dovresti vedere che il gruppo di istanze ha creato tre VM di backend.

I tre backend elencati nella pagina a schede Istanze

I backend adesso sono pronti a gestire il traffico.

Fai clic su Controlla i miei progressi qui sotto per verificare se il lab sta procedendo bene.

Crea il gruppo di istanze

Attività 3: configura il bilanciatore del carico interno

Stai creando un unico ingresso VIP privato per il servizio interno. In questo modo, altre applicazioni interne potranno raggiungere in modo affidabile il "calcolatore di numeri primi", senza che sia necessario sapere quale VM di backend specifica è attiva o disponibile. Ora configuriamo il bilanciatore del carico interno e colleghiamolo al gruppo di istanze che hai appena creato.

Un bilanciatore del carico interno è composto da tre parti principali:

  • Regola di forwarding: questo è l'indirizzo IP privato effettivo a cui altri servizi interni invieranno le richieste. In pratica, "inoltra" il traffico al servizio di backend.
  • Servizio di backend: definisce in che modo il bilanciatore del carico distribuisce il traffico sulle istanze VM. Include anche il controllo di integrità.
  • Controllo di integrità: si tratta di un controllo continuo che monitora l'integrità delle VM di backend. Il bilanciatore del carico invia il traffico solo alle macchine che superano i controlli di integrità, in modo da garantire che il servizio sia sempre disponibile.

Il seguente diagramma mostra come viene bilanciato il carico delle istanze utilizzando più istanze in più gruppi di backend all'interno di zone diverse.

Diagramma del bilanciamento del carico

Crea un controllo di integrità

  1. È necessario un controllo di integrità per garantire che il bilanciatore del carico invii il traffico solo alle istanze integre. Il servizio di backend è un server HTTP, perciò occorre verificare se risponde con "200 OK" su un percorso URL specifico (in questo caso, /2 per verificare se 2 è un numero primo):
gcloud compute health-checks create http ilb-health --request-path /2

Poiché il servizio HTTP è fornito, occorre verificare se viene compilata una risposta 200 su un percorso URL specifico (in questo caso /2 per verificare se 2 è un numero primo):

Crea un servizio di backend

  1. Adesso crea il servizio di backend denominato prime-service:
gcloud compute backend-services create prime-service \ --load-balancing-scheme internal --region=$REGION \ --protocol tcp --health-checks ilb-health

Questo servizio collegherà il controllo di integrità al gruppo di istanze.

Aggiungi il gruppo di istanze al nuovo servizio di backend

  1. Collega il gruppo di istanze di backend al servizio di backend "prime-service" per indicare al bilanciatore del carico quali macchine deve gestire:
gcloud compute backend-services add-backend prime-service \ --instance-group backend --instance-group-zone=$ZONE \ --region=$REGION

Crea la regola di forwarding

  1. Infine, crea la regola di forwarding denominata prime-lb con un IP statico :
gcloud compute forwarding-rules create prime-lb \ --load-balancing-scheme internal \ --ports 80 --network default \ --region=$REGION --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \ --backend-service prime-service

Il servizio interno per il calcolo dei numeri primi è ora completamente configurato e pronto per essere interrogato tramite il suo indirizzo IP interno.

Fai clic su Controlla i miei progressi qui sotto per verificare se il lab sta procedendo bene.

Configura il bilanciatore del carico interno

Attività 4: testa il bilanciatore del carico

Questo passaggio è fondamentale per verificare che il bilanciatore del carico delle applicazioni interno indirizzi correttamente il traffico ai servizi di backend. Dimostra che altre applicazioni interne ora possono raggiungere in modo affidabile il servizio tramite un unico indirizzo IP stabile, così da garantire il funzionamento continuo.

Per testare il bilanciatore del carico, devi creare una nuova istanza VM nella stessa rete del bilanciatore del carico delle applicazioni interno. È accessibile solo dalla rete cloud privata, non direttamente da Cloud Shell (che si trova al di fuori di questa rete specifica).

  1. Utilizza gcloud in Cloud Shell per creare una semplice istanza di test:
gcloud compute instances create testinstance \ --machine-type=e2-standard-2 --zone $ZONE
  1. Poi, accedi tramite SSH:
gcloud compute ssh testinstance --zone $ZONE

Se richiesto, digita Y e premi Invio due volte per procedere.

Esegui una query sul bilanciatore del carico

  1. Dall'istanza di test, utilizza curl per chiedere all'indirizzo IP del bilanciatore del carico delle applicazioni interno se alcuni numeri sono primi:
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5

L'output mostrerà True o False accanto alla riga di comando, come indicato di seguito:

user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5 Trueuser@testinstance:~$ exit

Dovresti vedere che 2 e 5 sono identificati correttamente come numeri primi, mentre 4 no. Ciò conferma che il bilanciatore del carico delle applicazioni interno funziona. Ha ricevuto le richieste e le ha inoltrate correttamente a una delle VM di backend per il calcolo dei numeri primi.

Il servizio ha risposto correttamente: 2 e 5 sono numeri primi, mentre 4 no.

  1. Esci dall'istanza di test:
exit
  1. Poi eliminala perché non è più necessaria:
gcloud compute instances delete testinstance --zone=$ZONE
  1. Digita Y per confermare l'eliminazione.

Attività 5: crea un server web rivolto al pubblico

Ora puoi vedere in che modo un'applicazione rivolta al pubblico (ad esempio un sito web) può sfruttare i servizi interni. Creerai un server web rivolto al pubblico che utilizzerà il servizio interno "calcolatore di numeri primi" (tramite il bilanciatore del carico delle applicazioni interno) per visualizzare una matrice di numeri primi.

  1. Innanzitutto, crea lo script di avvio per questo "frontend" pubblico nella directory home:
touch ~/frontend.sh
  1. L'editor di codice dovrebbe ancora essere aperto. In caso contrario, avvia l'editor di codice selezionandolo nella shell:

Il pulsante Apri editor evidenziato nell&#39;interfaccia utente

Dopo alcuni secondi, viene visualizzato il workspace.

  1. Ora aggiungi questo script nell'editor a destra:
sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/getprimes.py import urllib.request from multiprocessing.dummy import Pool as ThreadPool import http.server PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer def get_url(number): return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8') class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/html") s.end_headers() i = int(s.path[1:]) if (len(s.path)>1) else 1 s.wfile.write("<html><body><table>".encode('utf-8')) pool = ThreadPool(10) results = pool.map(get_url,range(i,i+100)) for x in range(0,100): if not (x % 10): s.wfile.write("<tr>".encode('utf-8')) if results[x]=="True": s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8')) else: s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8')) s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8')) if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8')) s.wfile.write("</table></body></html>".encode('utf-8')) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
  1. Fai clic su File > Salva.

Crea l'istanza di frontend

  1. In Cloud Shell crea un'istanza denominata frontend che eseguirà questo server web:
gcloud compute instances create frontend --zone=$ZONE \ --metadata-from-file startup-script=frontend.sh \ --tags frontend --machine-type=e2-standard-2

Apri il firewall per il frontend

  1. Poiché il server è pubblico, devi aprire il firewall per consentire il traffico sulla porta 80 da qualsiasi punto su internet (0.0.0.0/0):
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \ --source-ranges 0.0.0.0/0 --target-tags frontend
  1. Nel menu di navigazione, fai clic su Compute Engine > Istanze VM. Aggiorna il browser se non vedi l'istanza frontend.

  2. Apri l'IP esterno del frontend nel browser:

Nella pagina delle istanze VM è visualizzato l&#39;indirizzo IP del frontend selezionato

Dovresti vedere una matrice simile a questa, in cui tutti i numeri primi fino a 100 sono riportati in verde:

Il diagramma a matrice mostra i numeri primi in verde

  1. Prova ad aggiungere un numero al percorso, ad esempio http://your-ip/10000, per visualizzare tutti i numeri primi a partire da quel numero.

Il diagramma a matrice mostra i numeri primi a partire da 100 in verde

Nota: lo script di avvio di esempio non calcola i numeri primi. Inoltre, non include algoritmi di rilevamento o correzione degli errori. L'aggiunta di numeri elevati al percorso causerà timeout del servizio.

Fai clic su Controlla i miei progressi qui sotto per verificare se il lab sta procedendo bene.

Crea un server web rivolto al pubblico

Complimenti!

Hai creato correttamente un servizio interno affidabile utilizzando il bilanciatore del carico delle applicazioni interno di Google Cloud e hai dimostrato come un'applicazione pubblica può sfruttarlo in modo sicuro.

Prossimi passi/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: 18 luglio 2025

Ultimo test del lab: 18 luglio 2025

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

Prima di iniziare

  1. I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
  2. I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
  3. In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare

Utilizza la navigazione privata

  1. Copia il nome utente e la password forniti per il lab
  2. Fai clic su Apri console in modalità privata

Accedi alla console

  1. Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
  2. Accetta i termini e salta la pagina di ripristino delle risorse
  3. Non fare clic su Termina lab a meno che tu non abbia terminato il lab o non voglia riavviarlo, perché il tuo lavoro verrà eliminato e il progetto verrà rimosso

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile

Un lab alla volta

Conferma per terminare tutti i lab esistenti e iniziare questo

Utilizza la navigazione privata per eseguire il lab

Utilizza una finestra del browser in incognito o privata per eseguire questo lab. In questo modo eviterai eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.