Questa pagina descrive come configurare un deployment multiregionale ad alta disponibilità 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 individuali nelle regioni che supportano meglio il traffico della tua applicazione. Ciò funziona perché i bilanciatori del carico delle applicazioni esterni a livello di regione in regioni diverse non sono solo isolati l'uno dall'altro, ma anche da qualsiasi 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:
Active-passive (region failover): esegui il deployment di un bilanciatore del carico delle applicazioni esterno regionale primario nella regione primaria e di uno o più bilanciatori del carico delle applicazioni esterni regionali di backup nelle regioni secondarie. In stato stazionario, 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 una configurazione attivo-passiva di esempio che mostra due bilanciatori del carico delle applicazioni esterni regionali in due regioni diverse.
Active-active (routing di prossimità): esegui il deployment di più bilanciatori del carico delle applicazioni esterni regionali in diverse regioni che gestiscono il traffico contemporaneamente. Utilizza una policy di routing basata sulla geolocalizzazione di Cloud DNS per indirizzare i client alla regione integra più vicina. Se un bilanciatore del carico in una regione subisce un'interruzione del servizio, Cloud DNS instrada automaticamente il traffico dalla regione non integra ai bilanciatori del carico integri in altre regioni.
Ecco un esempio di configurazione active-active 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 come funzionano il controllo di integrità e la gestione del traffico nelle regioni in un flusso di lavoro tipico:
Utilizzare i controlli di integrità per rilevare errori a livello di regione
Google Cloud utilizza i controlli di integrità per rilevare se i bilanciatori del carico regionali sono integri. Configuri questi controlli di integrità per inviare probe da tre regioni di origine. Queste tre regioni di origine devono essere rappresentative delle regioni da cui i tuoi clienti 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 dell'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 una piccola distanza dalla regione di origine Google Cloudconfigurata.
Instradare 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 stazionario. 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 basata sulla 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 di nuovo a essere superati. 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. Ciascuno 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 basata sulla geolocalizzazione.
Crea bilanciatori del carico in più regioni
Tieni presente le seguenti considerazioni durante la configurazione dei 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 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 del bilanciatore del carico nei diversi deployment regionali.
Ti consigliamo di configurare i bilanciatori del carico delle applicazioni esterni regionali in ogni regione che ritieni supporti 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 di ogni regola di forwarding del 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 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 di controllo di integrità. Se omesso, Google Cloud invia richieste di probe al percorso principale,/. 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.
Configurare 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 stazionario al bilanciatore del carico regionale primario 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 Best practice.RECORD_TYPE: il tipo di record, ad esempioAMANAGED_ZONE_NAME: il nome della 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 vengono implementati i bilanciatori del carico delle applicazioni esterni regionali di backupBACKUP_LOAD_BALANCER_1_IPeBACKUP_LOAD_BALANCER_2_IP: gli indirizzi IP esterni delle 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 stazionario per garantire che il backup sia pronto e inizializzato. Il valore predefinito è 0.
Configurare il routing attivo/attivo delle regioni
In Cloud DNS, crea un set di record e applica una policy di routing basata sulla 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 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 è stato eseguito il deployment di ciascun bilanciatore del caricoHEALTH_CHECK_NAME: il nome del controllo di integrità
Best practice
Ecco alcune best practice da tenere a mente quando configuri i record Cloud DNS e i controlli di integrità:
Calcola la durata dell'interruzione: il tempo necessario per indirizzare il traffico dai bilanciatori del carico non integri a quelli integri (la durata dell'interruzione) dipende dal valore TTL DNS, dall'intervallo del controllo di integrità e dal parametro soglia non integra 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 il failover del DNS in altre regioni.
Configura le soglie del controllo di integrità: configura i parametri di soglia di integrità e non integrità per evitare il reindirizzamento non necessario e improvviso del traffico a causa di errori temporanei. Soglie più alte aumentano il tempo necessario per spostare il traffico sui bilanciatori del carico in altre regioni.
Utilizza il flusso limitato di traffico per la convalida attiva/passiva: nelle configurazioni attiva/passiva, 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 stazionario. In questo modo, viene verificato che l'infrastruttura di backup sia attiva e pronta a gestire il traffico durante un evento di failover.