Questa pagina descrive come configurare un deployment multiregionale ad alta affidabilità con bilanciatori del carico delle applicazioni esterni regionali. Per ottenere un'alta affidabilità, esegui il deployment di più bilanciatori del carico delle applicazioni esterni regionali singoli nelle regioni che supportano meglio il traffico della tua applicazione. Questo è possibile perché i bilanciatori del carico delle applicazioni esterni regionali in regioni diverse non solo sono isolati l'uno dall'altro, ma sono anche isolati da qualsiasi infrastruttura di bilanciatore del carico delle applicazioni esterno globale o bilanciatore del carico delle applicazioni classico in esecuzione nella stessa regione.
Strategie di alta affidabilità
Puoi implementare la resilienza tra regioni per i bilanciatori del carico delle applicazioni esterni regionali utilizzando una delle seguenti strategie:
Attivo-passivo (failover tra regioni): esegui il deployment di un bilanciatore del carico delle applicazioni esterno regionale principale nella regione principale e di uno o più bilanciatori del carico delle applicazioni esterni regionali di backup nelle regioni secondarie. In stato stabile, Cloud DNS instrada tutto il traffico al bilanciatore del carico principale. Se il bilanciatore del carico principale non supera i controlli di integrità, Cloud DNS utilizza una policy di routing di failover per instradare il traffico ai bilanciatori del carico regionali di backup.
Ecco un esempio di configurazione attiva/passiva che mostra due bilanciatori del carico delle applicazioni esterni regionali in due regioni diverse.
Attivo-attivo (routing di prossimità): esegui il deployment di più bilanciatori del carico delle applicazioni esterni regionali in regioni diverse che gestiscono il traffico contemporaneamente. Utilizza una policy di routing di geolocalizzazione di Cloud DNS per indirizzare i client alla regione più vicina in stato integro. Se un bilanciatore del carico in una regione subisce un'interruzione, Cloud DNS indirizza automaticamente il traffico lontano dalla regione non integra verso i bilanciatori del carico integri in altre regioni.
Ecco un esempio di configurazione attivo-attivo che mostra due bilanciatori del carico delle applicazioni esterni regionali in due regioni diverse.
Alta affidabilità con due bilanciatori del carico delle applicazioni esterni regionali (fai clic per ingrandire).
Le sezioni seguenti descrivono il funzionamento del controllo di integrità e dell'indirizzamento del traffico tra regioni in un flusso di lavoro tipico:
Utilizza i controlli di integrità per rilevare gli errori a livello di regione
Google Cloud utilizza i controlli di integrità per rilevare se i bilanciatori del carico a livello di regione sono integri. Puoi configurare questi controlli di integrità in modo che inviino probe da tre regioni di origine. Queste tre regioni di origine devono essere rappresentative delle regioni da cui i client accedono ai bilanciatori del carico. Ad esempio, se hai un bilanciatore del carico delle applicazioni esterno regionale con la maggior parte del traffico client proveniente dal Nord America e dall'Europa, puoi avere probe provenienti da due o più regioni del Nord America e probe provenienti da due o più regioni d'Europa.
Note aggiuntive:
- Devi specificare esattamente tre regioni di origine quando crei il controllo di integrità. Solo i controlli di integrità globali possono specificare le regioni di origine.
- Sono supportati i controlli di integrità HTTP, HTTPS e TCP.
- I probe di controllo di integrità provengono da un punto di presenza (PoP) su internet a breve distanza dalla regione di origine Google Cloudconfigurata.
Instrada il traffico in base alle policy di routing
- Attivo-passivo: Cloud DNS utilizza una policy di routing di failover per indirizzare il 100% del traffico client al bilanciatore del carico regionale principale durante lo stato stabile. Quando il bilanciatore del carico regionale principale non supera i controlli di integrità, Cloud DNS indirizza il traffico ai bilanciatori del carico regionali di backup.
- Attivo-attivo: Cloud DNS utilizza una policy di routing di geolocalizzazione per indirizzare il traffico ai bilanciatori del carico. Quando tutti i bilanciatori del carico sono integri, Cloud DNS instrada il traffico al bilanciatore del carico geograficamente più vicino al client. Quando un bilanciatore del carico in una regione inizia a non superare i controlli di integrità, il traffico viene indirizzato automaticamente ai bilanciatori del carico integri disponibili in altre regioni.
Failback al bilanciatore del carico principale
Il failback è automatico quando i controlli di integrità iniziano a essere superati di nuovo. Il traffico viene ripristinato senza tempi di inattività perché i bilanciatori del carico gestiscono il traffico.
Configura il bilanciamento del carico multiregionale
Per configurare un deployment multiregionale che faciliti l'alta affidabilità, segui questi passaggi:
- Crea bilanciatori del carico delle applicazioni esterni regionali nelle regioni che ritieni supportino meglio il traffico per la tua applicazione. Ognuno di questi bilanciatori del carico deve avere le stesse configurazioni di gestione del traffico e di sicurezza.
- Crea controlli di integrità per monitorare gli indirizzi IP delle regola di forwarding dei bilanciatori del carico regionali.
- Configura la policy di routing DNS in Cloud DNS:
- Per i deployment attivo-passivo, crea una policy di routing di failover.
- Per i deployment attivo-attivo, crea una policy di routing di geolocalizzazione.
Crea bilanciatori del carico in più regioni
Tieni presente quanto segue quando configuri i bilanciatori del carico ridondanti aggiuntivi:
Configura tutti i bilanciatori del carico delle applicazioni esterni regionali con funzionalità simili in modo che il traffico venga elaborato in modo coerente, indipendentemente dal bilanciatore del carico che gestisce la richiesta. Ad esempio, assicurati di utilizzare lo stesso tipo di certificato SSL, le stesse policy di sicurezza regionali di Cloud Armor e le stesse impostazioni di routing della mappa URL per tutti i bilanciatori del carico delle applicazioni esterni regionali.
Ti consigliamo di utilizzare un framework di automazione come Terraform per ottenere e mantenere la coerenza nelle configurazioni dei bilanciatori del carico nei diversi deployment regionali.
Ti consigliamo di configurare i bilanciatori del carico delle applicazioni esterni regionali in ogni regione che ritieni possa supportare al meglio il traffico per la tua applicazione.
I bilanciatori del carico delle applicazioni esterni regionali supportano sia il livello Premium che Standard di Network Service Tiers. Ti consigliamo di configurare i bilanciatori del carico delle applicazioni esterni regionali nel livello Premium per garantire una bassa latenza.
Per scoprire come configurare un bilanciatore del carico delle applicazioni esterno regionale, consulta Configura un bilanciatore del carico delle applicazioni esterno regionale con backend di gruppi di istanze VM.
Crea il controllo di integrità
Crea un controllo di integrità globale per monitorare l'indirizzo IP esterno della regola di forwarding di ogni bilanciatore del carico regionale:
gcloud compute health-checks create http HEALTH_CHECK_NAME \
--global \
--source-regions=SOURCE_REGION_1,SOURCE_REGION_2,SOURCE_REGION_3 \
--use-serving-port \
--check-interval=HEALTH_CHECK_INTERVAL \
--healthy-threshold=HEALTHY_THRESHOLD \
--unhealthy-threshold=UNHEALTHY_THRESHOLD \
--request-path=REQUEST_PATH
Sostituisci quanto segue:
HEALTH_CHECK_NAME: il nome del controllo di integritàSOURCE_REGION_1,SOURCE_REGION_2eSOURCE_REGION_3: le tre regioni Google Cloud da cui vengono inviati i probe di controllo di integrità. Devi specificare esattamente tre regioni di origine.HEALTH_CHECK_INTERVAL: l'intervallo di tempo in secondi dall'inizio di un probe emesso da un prober all'inizio del probe successivo emesso dallo stesso prober. Il valore minimo supportato è 30 secondi. Per i valori consigliati, consulta le best practice.HEALTHY_THRESHOLDeUNHEALTHY_THRESHOLD: specifica il numero di probe sequenziali che devono riuscire o non riuscire affinché il bilanciatore del carico sia considerato integro o non integro. Se uno dei due viene omesso, Google Cloud utilizza una soglia predefinita di 2.REQUEST_PATH: il percorso dell'URL a cui Google Cloud invia le richieste di probe del controllo di integrità. Se omesso, Google Cloud invia richieste di probe al percorso root,/. Se gli endpoint sottoposti a controllo di integrità sono privati, il che non è tipico per gli indirizzi IP regola di forwarding esterno, puoi impostare questo percorso su/afhealthz.
Configura il failover regionale attivo-passivo
In Cloud DNS, crea un set di record e applica una policy di routing FAILOVER per inviare il traffico in stato stabile al bilanciatore del carico regionale principale ed eseguire il failover al bilanciatore del carico regionale di backup durante un'interruzione:
gcloud dns record-sets create DNS_RECORD_SET_NAME \
--ttl=TIME_TO_LIVE \
--type=RECORD_TYPE \
--zone="MANAGED_ZONE_NAME" \
--routing-policy-type=FAILOVER \
--routing-policy-primary-data=PRIMARY_REGIONAL_FORWARDING_RULE \
--routing-policy-backup-data_type=GEO \
--routing-policy-backup-data="BACKUP_REGION_1=BACKUP_LOAD_BALANCER_1_IP[;BACKUP_REGION_2=BACKUP_LOAD_BALANCER_2_IP]" \
--health-check=HEALTH_CHECK_NAME \
--backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO
Sostituisci quanto segue:
DNS_RECORD_SET_NAME: il nome DNS o di dominio del set di record da aggiungere, ad esempiotest.example.comTIME_TO_LIVE: il TTL in secondi per il record. Per i valori consigliati, consulta le best practice.RECORD_TYPE: il tipo di record, ad esempioAMANAGED_ZONE_NAME: il nome della tua zona gestita Cloud DNS, ad esempiomy-zone-namePRIMARY_REGIONAL_FORWARDING_RULE: il nome della regola di forwarding del bilanciatore del carico delle applicazioni esterno regionale principaleBACKUP_REGION_1eBACKUP_REGION_2: le regioni in cui viene eseguito il deployment dei bilanciatori del carico delle applicazioni esterni regionali di backupBACKUP_LOAD_BALANCER_1_IPeBACKUP_LOAD_BALANCER_2_IP: gli indirizzi IP esterni della regola di forwarding dei bilanciatori del carico delle applicazioni esterni regionali di backupHEALTH_CHECK_NAME: il nome del controllo di integritàBACKUP_DATA_TRICKLE_RATIO: la frazione di traffico (da 0 a 1, ad esempio0.1) da inviare al bilanciatore del carico regionale di backup durante lo stato stabile per garantire che il backup sia pronto. Il valore predefinito è 0.
Configura il routing delle regioni attivo-attivo
In Cloud DNS, crea un set di record e applica una policy di routing di geolocalizzazione per indirizzare il traffico contemporaneamente tra i bilanciatori del carico regionali integri:
gcloud dns record-sets create DNS_RECORD_SET_NAME \
--ttl=TIME_TO_LIVE \
--type=RECORD_TYPE \
--zone="MANAGED_ZONE_NAME" \
--routing-policy-type="GEO" \
--routing-policy-data="FORWARDING_RULE_NAME_A@REGION_A;FORWARDING_RULE_NAME_B@REGION_B[,;FORWARDING_RULE_NAME_C@REGION_C]" \
--health-check=HEALTH_CHECK_NAME
Sostituisci quanto segue:
DNS_RECORD_SET_NAME: il nome DNS o di dominio del set di record da aggiungere, ad esempiotest.example.comTIME_TO_LIVE: la durata (TTL), in secondi, del record. Per i valori consigliati, consulta le best practice.RECORD_TYPE: il tipo di record, ad esempioAMANAGED_ZONE_NAME: il nome della zona gestita di cui vuoi gestire i set di record, ad esempiomy-zone-nameFORWARDING_RULE_NAME_A,FORWARDING_RULE_NAME_BeFORWARDING_RULE_NAME_C: i nomi delle regole di forwarding per i bilanciatori del carico in ogni regione corrispondenteREGION_A,REGION_BeREGION_C: le regioni in cui viene eseguito il deployment di ciascun bilanciatore del caricoHEALTH_CHECK_NAME: il nome del controllo di integrità
Best practice
Ecco alcune best practice da tenere presente quando configuri i record Cloud DNS e i controlli di integrità:
Calcola la durata dell'interruzione: il tempo necessario per instradare il traffico dai bilanciatori del carico non integri a quelli integri (la durata dell'interruzione) dipende dal valore TTL del DNS, dall'intervallo del controllo di integrità e dal parametro della soglia di stato non integro del controllo di integrità:
Duration of outage = DNS TTL + Health Check Interval * Unhealthy ThresholdTi consigliamo di impostare il TTL DNS su un valore compreso tra 30 e 60 secondi. TTL più elevati comportano tempi di inattività più lunghi perché i client su internet continuano ad accedere ai bilanciatori del carico non integri anche dopo che il DNS ha eseguito il failover in altre regioni.
Configura le controllo di integrità integrità: configura i parametri delle soglie di integrità e non integrità per evitare un cambio percorso del traffico non necessario e improvviso a causa di errori temporanei. Soglie più elevate aumentano il tempo necessario per lo spostamento del traffico verso i bilanciatori del carico in altre regioni.
Utilizza il flusso limitato di traffico per la convalida attiva/passiva: nelle configurazioni attive/passive, configura il flag
--backup-data-trickle-ratioper inviare continuamente una piccola percentuale di traffico (ad esempio,0.1) al bilanciatore del carico regionale di backup durante lo stato stabile. In questo modo, si verifica che l'infrastruttura di backup sia attiva e pronta a gestire il traffico durante un evento di failover.