Creare la connessione a Internet per le VM private

Last reviewed 2024-05-10 UTC

In questo documento vengono descritte le opzioni disponibili per la connessione a e da Internet utilizzando alle risorse Compute Engine che hanno indirizzi IP privati. È utile per gli sviluppatori che creano servizi Google Cloud degli ambienti Google Cloud.

Questo tutorial presuppone che tu abbia familiarità con il deployment dei VPC, con in Compute Engine e con il networking TCP/IP di base.

Obiettivi

  • Scopri le opzioni disponibili per la connessione tra VM private all'esterno del VPC.
  • Crea un'istanza di Identity-Aware Proxy (IAP) per i tunnel TCP appropriato per i servizi interattivi come SSH.
  • Crea un'istanza Cloud NAT per consentire alle VM di effettuare chiamate in uscita di connessione a internet.
  • Configurare un bilanciatore del carico HTTP per supportare le connessioni in entrata dal a internet per le tue VM.

Costi

Questo tutorial utilizza componenti fatturabili di Google Cloud, tra cui:

Utilizza la Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto. Calcoliamo che per eseguire questo tutorial è inferiore a 5$al giorno.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

Introduzione

Gli indirizzi IP privati offrono una serie di vantaggi rispetto all'IP pubblico (esterno) indirizzi tra cui:

  • Superficie di attacco ridotta. La rimozione degli indirizzi IP esterni dalle VM lo rende più difficile per gli aggressori raggiungere le VM e sfruttare il potenziale le vulnerabilità.
  • Maggiore flessibilità. Introdurre un livello di astrazione, ad esempio bilanciatore del carico o un servizio NAT, consente un servizio più affidabile e flessibile la distribuzione dei dati rispetto agli indirizzi IP esterni statici.

Questa soluzione illustra tre scenari, descritti nella seguente tabella:

Interattiva Recupero Pubblicazione in corso
Viene avviata una connessione SSH da un host remoto direttamente a una VM utilizzando IAP per TCP.

Esempio: amministrazione remota tramite SSH o RDP

Una connessione viene avviata da una VM a un host esterno su internet utilizzando Cloud NAT

Esempio: aggiornamenti del sistema operativo, API esterne

Una connessione viene avviata da un host remoto a una VM attraverso un servizio Google Cloud globale con il bilanciatore del carico di rete.

Esempio: frontend delle applicazioni, WordPress

Alcuni ambienti potrebbero includere solo uno di questi scenari. Tuttavia, molti di questi ambienti richiedono tutti questi scenari, pienamente supportata in Google Cloud.

Le seguenti sezioni descrivono un ambiente multiregionale con un protocollo HTTP servizio con bilanciamento del carico supportato da due VM in due regioni. Queste VM utilizzano Cloud NAT per le comunicazioni in uscita. Per l'amministrazione, le VM vengono accessibili tramite SSH con tunneling su IAP.

Il seguente diagramma fornisce una panoramica di tutti e tre i casi d'uso i componenti pertinenti.

Architettura della soluzione che mostra il flusso dal client alle istanze VM tramite il bilanciatore del carico, Cloud NAT per l'accesso dalle istanze a internet e IAP per consentire l'accesso diretto SSH da un client alle istanze.

Creazione di istanze VM

Per iniziare il tutorial, creerai un totale di quattro macchine virtuali (VM) di Compute Engine: due istanze per regione in due regioni diverse. Devi assegnare tutte le lo stesso tag, che viene utilizzato in seguito da un regola firewall per consentire al traffico in entrata di raggiungere le tue istanze.

Il seguente diagramma mostra le istanze VM e i gruppi di istanze che crei. distribuiti in due zone.

Architettura di una soluzione che evidenzia le quattro istanze VM in 2 zone.

La script di avvio che aggiungi a ogni istanza installa Apache e crea una home page unica per ogni istanza.

La procedura include istruzioni per utilizzare sia la console Google Cloud e gcloud. Il modo più semplice per usare i comandi gcloud è usare Cloud Shell.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    VAI ALLA PAGINA ISTANZE VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su www-1.

  4. Imposta Zone su us-central1-b.

  5. Fai clic su Gestione, sicurezza, dischi, networking, single-tenancy.

  6. Fai clic su Networking e definisci le seguenti impostazioni:

    • Per il traffico HTTP, nella casella Tag di rete, inserisci http-tag.
    • Sotto Interfacce di rete, fai clic su .
    • In IP esterno, seleziona Nessuno.
  7. Fai clic su Gestione e imposta lo Script di avvio come segue:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>server 1</h1></body></html>' | sudo tee /var/www/html/index.html
    
  8. Fai clic su Crea.

  9. Crea www-2 con le stesse impostazioni, tranne l'impostazione Script di avvio su le seguenti:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>server 2<h1></body></html>' | sudo tee /var/www/html/index.html
    
  10. Crea www-3 con le stesse impostazioni, tranne l'impostazione Zona su europe-west1-b e imposta lo Script di avvio come segue:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>server 3</h1></body></html>' | sudo tee /var/www/html/index.html
    
  11. Crea www-4 con le stesse impostazioni, tranne l'impostazione Zona su europe-west1-b e imposta lo Script di avvio come segue:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>server 4</h1></body></html>' | sudo tee /var/www/html/index.html
    

gcloud

  1. Apri Cloud Shell:

    APRI Cloud Shell

  2. Crea un'istanza denominata www-1 in us-central1-b con una classe di base script di avvio:

    gcloud compute instances create www-1 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --zone us-central1-b \
        --tags http-tag \
        --network-interface=no-address \
        --metadata startup-script="#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>www-1</h1></body></html>' | tee /var/www/html/index.html
    EOF"
    
  3. Crea un'istanza denominata www-2 in us-central1-b:

    gcloud compute instances create www-2 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --zone us-central1-b \
        --tags http-tag \
        --network-interface=no-address \
        --metadata startup-script="#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>www-2</h1></body></html>' | tee /var/www/html/index.html
    EOF"
    
  4. Crea un'istanza denominata www-3, questa volta in europe-west1-b:

    gcloud compute instances create www-3 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --zone europe-west1-b \
        --tags http-tag \
        --network-interface=no-address \
        --metadata startup-script="#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>www-3</h1></body></html>' | tee /var/www/html/index.html
    EOF"
    
  5. Crea un'istanza denominata www-4, anche questa in europe-west1-b:

    gcloud compute instances create www-4 \
        --image-family debian-9 \
        --image-project debian-cloud \
        --zone europe-west1-b \
        --tags http-tag \
        --network-interface=no-address \
        --metadata startup-script="#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>www-4</h1></body></html>' | tee /var/www/html/index.html
    EOF"
    

Terraform

  1. Apri Cloud Shell:

    APRI Cloud Shell

  2. Clona il repository da GitHub:

    git clone https://github.com/GoogleCloudPlatform/gce-public-connectivity-terraform

  3. Cambia la directory di lavoro nella directory del repository:

    cd iap

  4. Installa Terraform.

  5. Sostituisci [YOUR-ORGANIZATION-NAME] nel file scripts/set_env_vars.sh con il nome della tua organizzazione Google Cloud.

  6. Imposta le variabili di ambiente:

    source scripts/set_env_vars.sh

  7. Applica la configurazione Terraform:

    terraform apply

Configurazione dei tunnel IAP per l'interazione con le istanze

Per accedere alle istanze VM, devi connetterti alle istanze utilizzando strumenti come SSH RDP. Nella configurazione che stai creando in questo tutorial, non puoi connettersi alle istanze. Tuttavia, puoi utilizzare Inoltro TCP nel IAP che consente l'accesso remoto per questi pattern interattivi.

Per questo tutorial utilizzerai SSH.

In questa sezione devi eseguire le seguenti operazioni:

  1. Connettiti a un'istanza Compute Engine utilizzando tunnel IAP.
  2. Aggiungi un secondo utente con autorizzazione di tunneling IAP in IAM.

Il seguente diagramma illustra l'architettura che crei in questo . Le aree grigie sono discusse in altre parti di questo tutorial.

Architettura di una soluzione che mostra IAP che fornisce l&#39;accesso per l&#39;accesso SSH tra un client e le istanze.

Limitazioni di IAP

  • Larghezza di banda: la funzionalità di inoltro TCP IAP non è prevista per il trasferimento collettivo dei dati. IAP si riserva il diritto di limiti di frequenza per gli utenti considerati come utenti che utilizzano in modo illecito questo servizio.
  • Durata della connessione: IAP non disconnette le sessioni attive a meno che non siano necessarie per la manutenzione.
  • Protocollo: IAP per TCP non supporta UDP.

Crea regole firewall per consentire il tunneling

Per connetterti alle tue istanze tramite SSH, devi aprire un la porta appropriata sul firewall. Le connessioni IAP provengono da un insieme specifico (35.235.240.0/20). Pertanto, puoi limitare la regola a questo CIDR intervallo.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall:

    VAI ALLA PAGINA NORME FIREWALL

  2. Fai clic su Crea regola firewall.

  3. Imposta Nome su allow-ssh-from-iap.

  4. Lascia Rete VPC impostata su default.

  5. In Target, seleziona Tag di destinazione specificati.

  6. Imposta Tag di destinazione su http-tag.

  7. Lascia il Filtro di origine impostato su Intervalli IP.

  8. Imposta Intervalli IP di origine su 35.235.240.0/20.

  9. Imposta Protocolli e porte consentiti su tcp:22.

  10. Fai clic su Crea.

    La visualizzazione della nuova regola firewall in la console.

gcloud

  • Crea una regola firewall denominata allow-ssh-from-iap:

    gcloud compute firewall-rules create allow-ssh-from-iap \
        --source-ranges 35.235.240.0/20 \
        --target-tags http-tag \
        --allow tcp:22
    

Terraform

  1. Copia il file Terraform delle regole firewall nella directory attuale:

    cp iap/vpc_firewall_rules.tf .

  2. Applica la configurazione Terraform:

    terraform apply

Testa il tunneling

  • In Cloud Shell, connettiti all'istanza www-1 utilizzando IAP:

    gcloud compute ssh www-1 \
        --zone us-central1-b \
        --tunnel-through-iap
    

Se la connessione ha esito positivo, viene visualizzata una sessione SSH con tunnel. tramite IAP direttamente alla VM privata.

Concedere l'accesso a utenti aggiuntivi

IAP utilizza i ruoli e le autorizzazioni di progetto esistenti quando e la connessione a istanze VM. Per impostazione predefinita, i proprietari delle istanze sono gli unici utenti che Dispongono del ruolo Utente del tunnel con protezione IAP. Se vuoi consentire ad altri utenti per accedere alle VM con il tunneling IAP, devi concedere questo ruolo utenti.

  1. Nella console Google Cloud, vai a Sicurezza > Identity-Aware Proxy:

    L&#39;opzione IAP nella pagina Sicurezza della console Google Cloud.

    Se viene visualizzato un messaggio che ti indica che è necessario configurare OAuth schermata per il consenso, ignora il messaggio; non è pertinente IAP per TCP.

  2. Seleziona la scheda Risorse SSH e TCP.

  3. Seleziona le VM che hai creato:

    Console che mostra tutte e 4 le istanze selezionate.

  4. Sul lato destro, fai clic su Aggiungi entità.

  5. Aggiungi gli utenti a cui vuoi concedere le autorizzazioni, seleziona l'icona Ruolo Utente del tunnel con protezione IAP, quindi fai clic su Salva.

Riepilogo

Ora puoi connetterti alle tue istanze tramite SSH per amministrare le istanze per risolvere il problema.

Molte applicazioni devono effettuare connessioni in uscita per scaricare patch, contattare i partner o scaricare risorse. Nei prossimi configuri Cloud NAT per consentire alle VM di raggiungere questi Google Cloud.

Deployment di Cloud NAT per il recupero

Il servizio Cloud NAT consente alle istanze VM di Google Cloud che non dispongono di indirizzi IP esterni per connettersi a internet. Cloud NAT implementa la NAT in uscita insieme percorso predefinito per consentire alle istanze di connettersi a internet. Non implementa la mappatura NAT in entrata. Gli host esterni alla tua rete VPC possono rispondere solo alle connessioni stabilite avviato dalle tue istanze; non possono avviare le proprie connessioni utilizzando Cloud NAT. NAT non viene utilizzato per il traffico all'interno di Google Cloud.

Cloud NAT è una risorsa di regione. Puoi configurarla per consentire il traffico da tutti intervalli di indirizzi IP principali e secondari di subnet in una regione oppure puoi configurarlo affinché si applichi solo ad alcune intervalli di tempo.

In questa sezione configurerai un gateway Cloud NAT in ogni regione che hai usato in precedenza. Il seguente diagramma illustra l'architettura in questa sezione. Le aree grigie verranno discusse in altre parti del modulo durante il tutorial.

Architettura della soluzione che mostra le istanze Cloud NAT tra le istanze e internet.

crea una configurazione NAT utilizzando il router Cloud

Devi creare l'istanza del router Cloud nella stessa regione del che richiedono l'uso di Cloud NAT. Cloud NAT viene utilizzato solo per inserire informazioni NAT nelle VM; non viene usato come parte del processo il gateway Cloud NAT.

Questa configurazione consente a tutte le istanze nella regione di utilizzare Cloud NAT per tutte le risorse IP alias intervalli di tempo. Inoltre, alloca automaticamente gli indirizzi IP esterni per il modulo NAT gateway VPN ad alta disponibilità. Per ulteriori opzioni, vedi gcloud compute routers documentazione.

Console

  1. Vai alla pagina Cloud NAT:

    VAI ALLA PAGINA CLOUD NAT

  2. Fai clic su Inizia o Crea gateway NAT.

  3. Imposta Nome gateway su nat-config.

  4. Imposta Rete VPC su default.

  5. Imposta Regione su us-central1.

  6. In Router Cloud, seleziona Crea nuovo router, quindi procedi seguenti:

    • Imposta Nome su nat-router-us-central1.
    • Fai clic su Crea.
  7. Fai clic su Crea.

  8. Ripeti la procedura, ma sostituisci questi valori:

    • Nome: nat-router-europe-west1
    • Regione: europe-west1

gcloud

  1. Crea istanze del router Cloud in ogni regione:

    gcloud compute routers create nat-router-us-central1 \
        --network default \
        --region us-central1
    
    gcloud compute routers create nat-router-europe-west1 \
        --network default \
        --region europe-west1
    
  2. Configura i router per Cloud NAT:

    gcloud compute routers nats create nat-config \
        --router-region us-central1 \
        --router nat-router-us-central1 \
        --nat-all-subnet-ip-ranges \
         --auto-allocate-nat-external-ips
    
    gcloud compute routers nats create nat-config \
        --router-region europe-west1 \
        --router nat-router-europe-west1 \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips
    

Terraform

  1. Copia il file di configurazione di Terraform NAT nella directory attuale:

    cp nat/vpc_nat_gateways.tf .

  2. Applica la configurazione Terraform:

    terraform apply

Testa la configurazione di Cloud NAT

Ora puoi verificare di essere in grado di effettuare richieste in uscita dalla tua VM di archiviazione a internet.

  1. Attendi fino a 3 minuti per la propagazione della configurazione NAT alla VM.
  2. In Cloud Shell, connettiti all'istanza utilizzando il tunnel creato:

    gcloud compute ssh www-1 --tunnel-through-iap
    
  3. Dopo aver eseguito l'accesso all'istanza, usa il comando curl per una richiesta in uscita:

    curl example.com
    

    Verrà visualizzato l'output seguente:

    <html>
    <head>
    <title>Example Domain</title>
    ...
    ...
    ...
    </head>
    
    <body>
    <div>
        <h1>Example Domain</h1>
        <p>This domain is established to be used for illustrative examples in documents.
            You may use this domain in examples without prior coordination or asking for
            permission.
        </p>
        <p><a href="http://www.iana.org/domains/example">More information...</a></p>
    </div>
    </body>
    </html>
    
    

Se il comando ha esito positivo, hai verificato che le VM possano connettersi internet con Cloud NAT.

Riepilogo

Ora le tue istanze possono effettuare connessioni in uscita per scaricare patch, contattare i partner o scaricare risorse.

Nella sezione successiva aggiungerai il bilanciamento del carico al deployment e configurerai per consentire ai client remoti di avviare richieste ai tuoi server.

Creazione di un servizio con bilanciamento del carico HTTP per la pubblicazione

Utilizzo Cloud Load Balancing per la tua applicazione presenta molti vantaggi. Può fornire un carico semplice e scalabile per oltre un milione di query al secondo. Può anche trasferire SSL dall'overhead delle tue VM, instrada le query alla regione migliore per gli utenti in base sia la posizione che la disponibilità e il supporto di protocolli moderni come HTTP/2 e QUIC.

Per questo tutorial, potrai sfruttare un'altra funzionalità chiave: IP anycast globale proxy delle connessioni. Questa funzionalità fornisce un singolo indirizzo IP pubblico terminati sul perimetro di Google distribuito a livello globale. I client possono quindi connettersi ospitate su indirizzi IP privati in qualsiasi punto di Google Cloud. Questo consente di proteggere le istanze DDoS e gli attacchi diretti. Attiva inoltre funzionalità come Google Cloud Armor per una sicurezza ancora maggiore.

In questa sezione del tutorial imparerai a:

  1. Reimposta le istanze VM per installare il server web Apache.
  2. Crea una regola firewall per consentire l'accesso dai bilanciatori del carico.
  3. Alloca indirizzi IPv4 e IPv6 globali statici per il bilanciatore del carico.
  4. Crea un gruppo di istanze per le tue istanze.
  5. Inizia a inviare traffico alle tue istanze.

Il seguente diagramma illustra l'architettura che crei in questo . Le aree grigie sono discusse in altre parti di questo tutorial.

Architettura che evidenzia 4 istanze in 2 gruppi di istanze.

Reimposta istanze VM

Quando hai creato le istanze VM in precedenza in questo tutorial, non avevano accesso a internet, perché non è stato assegnato alcun indirizzo IP esterno e Cloud NAT configurato. Di conseguenza, non è stato possibile completare lo script di avvio che installa Apache correttamente.

Il modo più semplice per eseguire nuovamente gli script di avvio è reimpostare le istanze in modo potrai installare e utilizzare il server web Apache nella prossima sezione.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

  2. Seleziona www-1, www-2, www-3 e www-4.

  3. Fai clic sul pulsante Reimposta nella parte superiore della pagina.

    Se non trovi il pulsante Reimposta, fai clic su Altre azioni e seleziona Reimposta.

  4. Conferma il ripristino delle quattro istanze facendo clic su Reimposta nel .

gcloud

  1. Reimposta le quattro istanze:

    gcloud compute instances reset www-1 \
        --zone us-central1-b
    
    gcloud compute instances reset www-2 \
        --zone us-central1-b
    
    gcloud compute instances reset www-3 \
        --zone europe-west1-b
    
    gcloud compute instances reset www-4 \
        --zone europe-west1-b
    

Apri il firewall

L'attività successiva è la creazione di una regola firewall per consentire il traffico proveniente dal carico alle tue istanze VM. Questa regola consente al traffico Intervallo di indirizzi di Google Cloud utilizzato sia dai bilanciatori del carico che dall'integrità controlli. La regola firewall utilizza il tag http-tag che hai creato in precedenza; il una regola firewall consente al traffico sulla porta designata di raggiungere le istanze che hanno il tag.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall:

    VAI ALLA PAGINA NORME FIREWALL

  2. Fai clic su Crea regola firewall.

  3. Imposta Nome su allow-lb-and-healthcheck.

  4. Lascia la rete VPC impostata su default.

  5. In Target, seleziona Tag di destinazione specificati.

  6. Imposta Tag di destinazione su http-tag.

  7. Lascia il Filtro di origine impostato su Intervalli IP.

  8. Imposta Intervalli IP di origine su 130.211.0.0/22 e 35.191.0.0/16.

  9. Imposta Protocolli e porte consentiti su tcp:80.

  10. Fai clic su Crea.

    La visualizzazione della nuova regola firewall in la console.

gcloud

  • Crea una regola firewall denominata allow-lb-and-healthcheck:

    gcloud compute firewall-rules create allow-lb-and-healthcheck \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --target-tags http-tag \
         --allow tcp:80
    

Terraform

  1. Copia i file di configurazione del bilanciamento del carico di Terraform nell'attuale directory:

    cp lb/* .

  2. Applica la configurazione Terraform:

    terraform apply

Alloca un indirizzo IP esterno per i bilanciatori del carico

Se invii traffico su internet, devi allocare un token esterno per il bilanciatore del carico. Puoi allocare un indirizzo IPv4, di destinazione, o entrambi. In questa sezione, prenoterai indirizzi IPv4 e IPv6 statici adatto per l'aggiunta al DNS.

Non sono previsti costi aggiuntivi per gli indirizzi IP pubblici, perché vengono utilizzati con un bilanciatore del carico.

Console

  1. Nella console Google Cloud, vai alla pagina Indirizzi IP esterni:

    VAI ALLA PAGINA INDIRIZZI IP ESTERNI

  2. Fai clic su Prenota indirizzo statico per prenotare un indirizzo IPv4.

  3. Imposta Nome su lb-ip-cr.

  4. Lascia Tipo impostato su Globale.

  5. Fai clic su Prenota.

  6. Fai di nuovo clic su Prenota indirizzo statico per prenotare un indirizzo IPv6.

  7. Imposta Nome su lb-ipv6-cr.

  8. Imposta Versione IP su IPv6.

  9. Lascia Tipo impostato su Globale.

  10. Fai clic su Prenota.

gcloud

  1. Crea un indirizzo IP statico denominato lb-ip-cr per IPv4:

    gcloud compute addresses create lb-ip-cr \
        --ip-version=IPV4 \
        --global
    
  2. Crea un indirizzo IP statico denominato lb-ipv6-cr per IPv6:

    gcloud compute addresses create lb-ipv6-cr \
        --ip-version=IPV6 \
        --global
    

Crea gruppi di istanze e aggiungi istanze

I bilanciatori del carico Google Cloud richiedono gruppi di istanze che fungono da backend per il traffico. In questo tutorial utilizzerai un'istanza non gestita gruppi di annunci per semplicità. Tuttavia, puoi anche utilizzare i gruppi di istanze gestite sfruttare funzionalità come scalabilità automatica, riparazione automatica, (multizona) e aggiornamento automatico.

In questa sezione creerai un gruppo di istanze per ciascuna delle zone in cui che utilizzano.

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze:

    VAI ALLA PAGINA GRUPPI DI ISTANZE

  2. Fai clic su Crea gruppo di istanze.

  3. Sul lato sinistro, fai clic su Nuovo gruppo di istanze non gestite.

  4. Imposta Nome su us-resources-w.

  5. Imposta Regione su us-central1

  6. Imposta Zona su us-central1-b.

  7. Seleziona Rete (impostazione predefinita) e Subnet (predefinita).

  8. In Istanze VM, segui questi passaggi:

    • Fai clic su Aggiungi un'istanza e seleziona www-1.
    • Fai di nuovo clic su Aggiungi un'istanza e seleziona www-2.
    • Fai clic su Crea.
  9. Ripeti questa procedura per creare un secondo gruppo di istanze, ma utilizza il metodo i seguenti valori:

    • Nome: europe-resources-w
    • Zona: europe-west1-b
    • Istanze: www-3 e www-4
  10. Nella pagina Gruppi di istanze, verifica di avere due istanze gruppi, ciascuno con due istanze.

gcloud

  1. Crea il gruppo di istanze us-resources-w:

    gcloud compute instance-groups unmanaged create us-resources-w \
        --zone us-central1-b
    
  2. Aggiungi le istanze www-1 e www-2:

    gcloud compute instance-groups unmanaged add-instances us-resources-w \
        --instances www-1,www-2 \
        --zone us-central1-b
    
  3. Crea il gruppo di istanze europe-resources-w:

    gcloud compute instance-groups unmanaged create europe-resources-w \
        --zone europe-west1-b
    
  4. Aggiungi le istanze www-3 e www-4:

    gcloud compute instance-groups unmanaged add-instances europe-resources-w \
        --instances www-3,www-4 \
        --zone europe-west1-b
    

configura il servizio di bilanciamento del carico

La funzionalità del bilanciatore del carico riguarda diversi servizi connessi. In questo configuri e colleghi i servizi. I servizi che creerai sono come segue:

  • Porte denominate che il bilanciatore del carico utilizza per indirizzare il traffico ai gruppi di istanze.
  • R controllo di integrità, che esegue il polling delle istanze per verificare se sono in stato integro. Il bilanciatore del carico invia il traffico solo alle istanze integre.
  • Servizi di backend, che monitorano l'utilizzo e l'integrità dell'istanza. I servizi di backend sanno se più istanze del gruppo possono ricevere traffico. Se le istanze non possono ricevono traffico, il bilanciatore del carico reindirizza il traffico, a condizione che in un'altra posizione hanno capacità sufficiente. Un backend definisce dei gruppi di istanze che contiene (utilizzo massimo della CPU o il numero massimo di query al secondo).
  • R Mappa URL, che analizza l'URL della richiesta e può inoltrare richieste a specifiche di backend basati sull'host e sul percorso dell'URL della richiesta. In questo perché non stai utilizzando l'inoltro basato sui contenuti, la mappa URL contiene solo il mapping predefinito.
  • R proxy di destinazione, che riceve la richiesta dall'utente e la inoltra alla mappa URL.
  • Due. regole di forwarding globali, uno per IPv4 e uno per IPv6, che contengono l'indirizzo IP esterno globale Google Cloud. Le regole di forwarding globali inoltrano la richiesta in entrata al proxy di destinazione.

crea il bilanciatore del carico

In questa sezione creerai il bilanciatore del carico e configurerai una configurazione predefinita servizio di backend per gestire il traffico. Puoi anche creare controllo di integrità.

Console

Avvia la configurazione

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

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni (HTTP/HTTPS) e fai clic su Avanti.
  4. Per Pubblico o interno, seleziona Rivolto al pubblico (esterno) e fai clic su Avanti.
  5. Per Deployment globale o in una regione singola, seleziona Ideale per carichi di lavoro e fai clic su Avanti.
  6. Per Generazione del bilanciatore del carico, seleziona Esterno globale Bilanciatore del carico delle applicazioni e fai clic su Avanti.
  7. Fai clic su Configura.

Configurazione di base

  1. Imposta Nome bilanciatore del carico su web-map.

Configura il bilanciatore del carico

  1. Nel riquadro sinistro della pagina Crea bilanciatore del carico delle applicazioni esterno globale, fai clic su Configurazione backend.
  2. Nel campo Creare o selezionare servizi di backend e bucket di backend, Seleziona Servizi di backend, quindi Crea un servizio di backend. Vedi la finestra di dialogo Crea servizio di backend.
  3. Imposta Nome su web-map-backend-service.
  4. Imposta il Protocollo. Per il protocollo HTTP, lascia i valori impostati sul i valori predefiniti.
  5. In Tipo di backend, seleziona Gruppi di istanze.
  6. In Backend, imposta Gruppo di istanze su us-resources-w.
  7. Fai clic su Aggiungi backend.
  8. Seleziona il gruppo di istanze europe-resources-w, quindi:
      .
    • Per il traffico HTTP tra il bilanciatore del carico e le istanze, assicurati che l'opzione Numeri di porta sia impostata su 80.
    • Lascia invariati i valori predefiniti negli altri campi.
  9. Fai clic su Fine.
  10. In Controllo di integrità, seleziona Crea un controllo di integrità o Crea un altro controllo di integrità.
  11. Imposta i seguenti parametri per il controllo di integrità:
    • Nome: http-basic-check
    • Protocollo: HTTP
    • Porta: 80
  12. Fai clic su Crea.

gcloud

  1. Per ogni gruppo di istanze, definisci un servizio HTTP e mappa il nome di una porta a la porta pertinente:

    gcloud compute instance-groups unmanaged set-named-ports us-resources-w \
        --named-ports http:80 \
        --zone us-central1-b
    
    gcloud compute instance-groups unmanaged set-named-ports europe-resources-w \
        --named-ports http:80 \
        --zone europe-west1-b
    
  2. Crea un controllo di integrità:

    gcloud compute health-checks create http http-basic-check \
        --port 80
    
  3. Crea un servizio di backend:

    gcloud compute backend-services create web-map-backend-service \
        --protocol HTTP \
        --health-checks http-basic-check \
        --global
    

    Hai impostato il flag --protocol su HTTP perché stai utilizzando HTTP per accedere le istanze. Per il controllo di integrità, utilizzi l'integrità http-basic-check creato in precedenza.

  4. Aggiungi i tuoi gruppi di istanze come backend ai servizi di backend:

    gcloud compute backend-services add-backend web-map-backend-service \
        --balancing-mode UTILIZATION \
        --max-utilization 0.8 \
        --capacity-scaler 1 \
        --instance-group us-resources-w \
        --instance-group-zone us-central1-b \
        --global
    
    gcloud compute backend-services add-backend web-map-backend-service \
        --balancing-mode UTILIZATION \
        --max-utilization 0.8 \
        --capacity-scaler 1 \
        --instance-group europe-resources-w \
        --instance-group-zone europe-west1-b \
        --global
    

Imposta regole per host e percorso

Console

  • Nel riquadro sinistro della pagina Crea bilanciatore del carico delle applicazioni esterno globale, fai clic su Regole host e percorso.

    Per questo tutorial non devi configurare regole host o percorso. perché tutto il traffico viene assegnato alla regola predefinita. Di conseguenza, puoi accettare i valori predefiniti precompilati.

gcloud

  1. Crea una mappa URL predefinita che indirizzi tutte le richieste in entrata a tutti le tue istanze:

    gcloud compute url-maps create web-map \
        --default-service web-map-backend-service
    
  2. Crea un proxy HTTP di destinazione per instradare le richieste alla mappa di URL:

    gcloud compute target-http-proxies create http-lb-proxy \
        --url-map web-map
    

Configura il frontend e finalizza la configurazione

Console

  1. Nel riquadro sinistro della pagina Crea bilanciatore del carico delle applicazioni esterno globale, fai clic su Configurazione frontend.
  2. Imposta Nome su http-cr-rule.
  3. Imposta Protocollo su HTTP.
  4. Imposta Versione IP su IPv4.
  5. Nell'elenco Indirizzi IP, seleziona lb-ip-cr, l'indirizzo creati in precedenza.
  6. Verifica che il campo Porta sia impostato su 80.
  7. Fai clic su Fine.
  8. Fai clic su Aggiungi IP e porta frontend.
  9. Imposta Nome su http-cr-ipv6-rule.
  10. In Protocollo, seleziona HTTP.
  11. Imposta Versione IP su IPv6.
  12. Nell'elenco Indirizzi IP, seleziona lb-ipv6-cr, l'altro indirizzo che hai creato in precedenza.
  13. Verifica che il campo Porta sia impostato su 80.
  14. Fai clic su Crea.
  15. Fai clic su Fine.
  16. Nel riquadro sinistro della pagina Crea bilanciatore del carico delle applicazioni esterno globale, fai clic su Esamina e finalizza.
  17. Confronta le tue impostazioni con ciò che intendevi creare.
  18. Se le impostazioni sono corrette, fai clic su Crea.

    Tornerai alle pagine Bilanciamento del carico. Dopo il caricamento bilanciatore del carico, un segno di spunta verde accanto indica che in esecuzione.

gcloud

  1. Recupera gli indirizzi IP statici che hai creato per il bilanciatore del carico. Prendine nota, perché li utilizzerai nel passaggio successivo.

    gcloud compute addresses list
    
  2. Creare due regole di forwarding globali per instradare le richieste in entrata uno per IPv4 e uno per IPv6. Sostituisci lb_ip_address nel comando con l'indirizzo IPv4 statico che hai creato e sostituisci lb_ipv6_address con l'indirizzo IPv6 che hai creato.

    gcloud compute forwarding-rules create http-cr-rule \
        --address lb_ip_address \
        --global \
        --target-http-proxy http-lb-proxy \
        --ports 80
    
    gcloud compute forwarding-rules create http-cr-ipv6-rule \
        --address lb_ipv6_address \
        --global \
        --target-http-proxy http-lb-proxy \
       --ports 80
    

    Dopo aver creato le regole di forwarding globali, potrebbero essere necessari diversi minuti la tua configurazione da propagare.

Testa la configurazione

In questa sezione, invierai una richiesta HTTP all'istanza per verificare che della configurazione del bilanciamento del carico sia in funzione.

Console

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

    VAI ALLA PAGINA Bilanciamento del carico

  2. Seleziona il bilanciatore del carico denominato web-map per visualizzare i dettagli sull' che hai appena creato.

  3. Nella sezione Backend della pagina, verifica che le istanze siano stato integro visualizzando la colonna Stato integro.

    Il display può impiegare qualche istante a indicare che sono in stato integro.

  4. Quando il display indica che le istanze sono in stato integro, copia IP:Port (IP:Porta) dalla sezione Frontend e incollalo nel browser.

    Nel browser viene visualizzata la pagina dei contenuti predefiniti.

gcloud

  1. Ottieni gli indirizzi IP delle regole di forwarding globali e prendi nota per il passaggio successivo:

    gcloud compute forwarding-rules list
    
  2. Utilizza il comando curl per testare la risposta di vari URL per il tuo i servizi di machine learning. Prova sia IPv4 sia IPv6. Per IPv6, devi racchiudere [] intorno alla classe indirizzo email, ad esempio http://[2001:DB8::]/.

    curl http://ipv4-address
    
    curl -g -6 "http://[ipv6-address]/"
    

Riepilogo

Ora le VM possono gestire il traffico verso internet e recuperare i dati internet. Puoi anche accedervi tramite SSH per eseguire l'amministrazione attività di machine learning. Tutte queste funzionalità si ottengono utilizzando solo indirizzi IP privati, che aiuta a proteggerli dagli attacchi diretti non esponendo gli indirizzi IP raggiungibili da internet.

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi