I bilanciatori del carico delle applicazioni esterni con Identity-Aware Proxy (IAP) sono supportati con i seguenti tipi di backend:
- Gruppi di istanze
- Gruppi di endpoint di rete (NEG) a livello di zona
- NEG serverless: uno o più servizi Cloud Run
- NEG internet, per endpoint esterni a Google Cloud (note anche come origini personalizzate)
- NEG di connettività ibrida, per gli endpoint che si estendono oltre Google Cloud, ad esempio data center on-premise e altri cloud pubblici che puoi utilizzare la connettività ibrida per raggiungere.
- NEG Private Service Connect,
endpoint che si risolve in uno dei seguenti:
- Un endpoint API regionale gestito da Google
- Un servizio gestito pubblicato utilizzando Private Service Connect
Per i concetti generali, consulta la panoramica del bilanciatore del carico delle applicazioni esterno.
Se sei un utente esistente del bilanciatore del carico delle applicazioni classico, assicurati di consultare la panoramica della migrazione quando pianifichi un nuovo deployment con il bilanciatore del carico delle applicazioni esterno globale.
Topologie del bilanciatore del carico
Per un bilanciatore del carico HTTPS, crei la configurazione mostrata nel diagramma seguente.
Per un bilanciatore del carico HTTP, crei la configurazione mostrata nel diagramma seguente.
La sequenza di eventi nei diagrammi è la seguente:
- Un client invia una richiesta di contenuti all'indirizzo IPv4 esterno definito nella regola di forwarding.
Per un bilanciatore del carico HTTPS, la regola di forwarding indirizza la richiesta al proxy HTTPS di destinazione.
Per un bilanciatore del carico HTTP, la regola di forwarding indirizza la richiesta al proxy HTTP di destinazione.
Il proxy di destinazione utilizza la regola nella mappa URL per determinare che un singolo servizio di backend riceve tutte le richieste.
Il bilanciatore del carico determina che il servizio di backend ha un solo gruppo di istanze e indirizza la richiesta a un'istanza di macchina virtuale (VM) in quel gruppo.
La VM fornisce i contenuti richiesti dall'utente.
Prima di iniziare
Completa i seguenti passaggi prima di creare il bilanciatore del carico.
Configura una risorsa del certificato SSL
Per creare il bilanciatore del carico, devi disporre di una risorsa del certificato SSL che può essere collegata al proxy di destinazione. La risorsa del certificato SSL può essere una mappa dei certificati o un certificato SSL di Compute Engine (certificato classico).
Mappa di certificati
Puoi creare una mappa dei certificati come descritto in uno dei seguenti documenti:
- Esegui il deployment di un certificato globale gestito da Google con l'autorizzazione del bilanciatore del carico
- Deployment di un certificato globale gestito da Google con autorizzazione DNS
- Deployment di un certificato globale gestito da Google con Certificate Authority Service
- Esegui il deployment di un certificato autogestito globale
Certificato SSL di Compute Engine
Per un bilanciatore del carico HTTPS, crea una risorsa certificato SSL di Compute Engine come descritto in uno dei seguenti documenti:
Ti consigliamo di utilizzare un certificato gestito da Google.
Configura le autorizzazioni
Per completare i passaggi di questa guida, devi disporre dell'autorizzazione per creare istanze Compute Engine, regole firewall e indirizzi IP prenotati in un progetto. Devi disporre del ruolo di proprietario o editor del progetto oppure dei seguenti ruoli IAM di Compute Engine.
| Attività | Ruolo richiesto |
|---|---|
| Creare istanze | Instance Admin |
| Aggiungere e rimuovere regole firewall | Security Admin |
| Creare i componenti del bilanciatore del carico | Network Admin |
| Creare un progetto (facoltativo) | Project Creator |
Per saperne di più, consulta le guide seguenti:
(Facoltativo) Utilizza indirizzi BYOIP
Con Bring Your Own IP (BYOIP), puoi importare i tuoi indirizzi pubblici inGoogle Cloud per utilizzarli con le risorse Google Cloud . Ad esempio, se importi i tuoi indirizzi IPv4, puoi assegnarne uno alla regola di forwarding quando configuri il bilanciatore del carico. Quando segui le istruzioni riportate in questo documento per configurare il bilanciatore del carico, fornisci l'indirizzo BYOIP come indirizzo IP.
Per saperne di più sull'utilizzo di BYOIP, consulta Bring Your Own IP.
Configura la rete e le subnet
Per creare la rete e la subnet di esempio, segui questi passaggi.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Inserisci un Nome per la rete.
In Modalità di creazione subnet, scegli Personalizzata.
Nella sezione Nuova subnet, configura i seguenti campi:
- Specifica un Nome per la subnet.
- Seleziona una Regione.
- In Tipo di stack IP, seleziona IPv4 (stack singolo).
- Inserisci un Intervallo di indirizzi IP. Questo è l'intervallo IPv4 principale per la subnet.
Fai clic su Fine.
Per aggiungere una subnet in una regione diversa, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.
Fai clic su Crea.
gcloud
Crea la rete VPC in modalità personalizzata:
gcloud compute networks create NETWORK \ --subnet-mode=customAll'interno della rete, crea una subnet per i backend:
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --stack-type=IPV4_ONLY \ --range=10.1.2.0/24 \ --region=REGIONSostituisci quanto segue:
NETWORK: un nome per la rete VPC.SUBNET: un nome per la subnet.REGION: il nome della regione
Crea un gruppo di istanze gestite
Per configurare un bilanciatore del carico con un backend di Compute Engine, le VM devono trovarsi in un gruppo di istanze. Questa guida descrive come creare un gruppo di istanze gestite con VM Linux su cui è in esecuzione Apache e poi configurare il bilanciamento del carico. Un gruppo di istanze gestite crea ciascuna delle sue istanze gestite in base ai modelli di istanza che specifichi.
Il gruppo di istanze gestite fornisce VM che utilizzano i server di backend di un bilanciatore del carico HTTP(S) esterno. A scopo dimostrativo, i backend gestiscono i propri nomi host.
Prima di creare un gruppo di istanze gestite, crea un modello di istanza.
Console
Per supportare il traffico IPv4, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Template di istanza.
Fai clic su Crea template di istanza.
In Nome, inserisci
lb-backend-template.Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio Debian GNU/Linux 10 (buster). Queste istruzioni utilizzano comandi disponibili solo su Debian, come
apt-get.Espandi Opzioni avanzate.
Espandi Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-health-check. - Nella sezione Interfacce di rete, fai clic su Modifica e apporta le seguenti modifiche:
- Rete:
NETWORK - Subnet:
SUBNET - Traffico IPv4: IPv4 (stack singolo)
- Rete:
- Fai clic su Fine.
- In Tag di rete, inserisci
Espandi Gestione. Nel campo Script di avvio, inserisci il seguente script:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Fai clic su Crea.
gcloud
Per supportare il traffico IPv4, esegui questo comando:
gcloud compute instance-templates create TEMPLATE_NAME \
--region=REGION \
--network=NETWORK \
--subnet=SUBNET \
--stack-type=IPV4_ONLY \
--tags=allow-health-check \
--image-family=debian-10 \
--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://metadata.google.internal/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
Terraform
Per creare il template di istanza, utilizza la risorsa google_compute_instance_template.
Crea il gruppo di istanze gestite e seleziona il modello di istanza.
Console
Nella console Google Cloud , vai alla pagina Gruppi di istanze.
Fai clic su Crea gruppo di istanze.
A sinistra, scegli Nuovo gruppo di istanze gestite (stateless).
In Nome, inserisci
lb-backend-example.In Località, seleziona Zona singola.
In Regione, seleziona la regione che preferisci.
In Zona, seleziona una zona.
In Template di istanza, seleziona il template di istanza
lb-backend-template.In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo.
Imposta Numero minimo di istanze su
2e Numero massimo di istanze su2o più.Per creare il nuovo gruppo di istanze, fai clic su Crea.
gcloud
Crea un gruppo di istanze gestite basato sul template.
gcloud compute instance-groups managed create lb-backend-example \ --template=TEMPLATE_NAME --size=2 --zone=ZONE_A
Terraform
Per creare il gruppo di istanze gestite, utilizza la risorsa google_compute_instance_group_manager.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi una porta denominata al gruppo di istanze
Per il gruppo di istanze, definisci un servizio HTTP e mappa un nome di porta alla porta pertinente. Il servizio di bilanciamento del carico inoltra il traffico alla porta denominata. Per saperne di più, consulta Porte denominate.
Console
Nella console Google Cloud , vai alla pagina Gruppi di istanze.
Fai clic su lb-backend-example.
Nella pagina Panoramica del gruppo di istanze, fai clic su Modifica.
Nella sezione Mappatura delle porte, fai clic su Aggiungi porta.
- Come nome della porta, inserisci
http. Come numero della porta, inserisci80.
- Come nome della porta, inserisci
Fai clic su Salva.
gcloud
Utilizza il comando gcloud compute instance-groups
set-named-ports.
gcloud compute instance-groups set-named-ports lb-backend-example \
--named-ports http:80 \
--zone ZONE_A
Terraform
L'attributo named_port è incluso nell'esempio del gruppo di istanze gestite.
Configura una regola firewall
In questo esempio, crei la regola firewall fw-allow-health-check.
Si tratta di una regola in entrata che consente il traffico dai sistemi di controllo di integrità Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Questo esempio utilizza il tag di destinazione allow-health-check per identificare le VM.
Console
Nella console Google Cloud , vai alla pagina Policy del firewall.
Fai clic su Crea regola firewall per creare la regola firewall.
In Nome, inserisci
fw-allow-health-check.Seleziona una Rete.
In Destinazioni, seleziona Tag di destinazione specificati.
Compila il campo Tag di destinazione con
allow-health-check.Imposta Filtro di origine su Intervalli IPv4.
Imposta Intervalli IPv4 di origine su
130.211.0.0/22e35.191.0.0/16.In Protocolli e porte, seleziona Protocolli e porte specificati.
Seleziona la casella di controllo TCP, quindi digita
80per i numeri di porta.Fai clic su Crea.
gcloud
gcloud compute firewall-rules create fw-allow-health-check \
--network=NETWORK \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-health-check \
--rules=tcp:80
Terraform
Per creare la regola firewall, utilizza la risorsa google_compute_firewall.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Prenota un indirizzo IP esterno
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:
Console
Nella console Google Cloud , vai alla pagina Indirizzi IP esterni.
Per prenotare un indirizzo IPv4, fai clic su Prenota indirizzo IP statico esterno.
In Nome, inserisci
lb-ipv4-1.Imposta Livello di servizio di rete su Premium.
Imposta Versione IP su IPv4.
Imposta Tipo su Globale.
Fai clic su Prenota.
gcloud
gcloud compute addresses create lb-ipv4-1 \
--ip-version=IPV4 \
--network-tier=PREMIUM \
--global
Prendi nota dell'indirizzo IPv4 prenotato:
gcloud compute addresses describe lb-ipv4-1 \
--format="get(address)" \
--global