Alta disponibilità per i bilanciatori del carico delle applicazioni esterni regionali

Questa pagina descrive come configurare un deployment ad alta disponibilità con bilanciatori del carico delle applicazioni esterni regionali. Per ottenere un'alta disponibilità, esegui il deployment di più bilanciatori del carico delle applicazioni esterni regionali nelle regioni che supportano al meglio il traffico della tua applicazione. Questo funziona perché i bilanciatori del carico delle applicazioni esterni regionali in diverse regioni non sono solo isolati l'uno dall'altro, ma anche da qualsiasi bilanciatore del carico delle applicazioni esterno globale o infrastruttura di bilanciatore del carico delle applicazioni classico in esecuzione nella stessa regione.

Utilizza un criterio di routing per la geolocalizzazione Cloud DNS per instradare il traffico verso due o più bilanciatori del carico in regioni diverse. Il criterio instrada il traffico alla regione disponibile più vicina in base all'origine della richiesta del client. Inoltre, ti consigliamo di utilizzare i controlli di integrità in modo che Google Cloud possa rilevare eventuali interruzioni regionali e instradare il traffico solo ai bilanciatori del carico integri.

Ecco una configurazione di esempio che mostra due bilanciatori del carico delle applicazioni esterni regionali in due regioni diverse.

Alta disponibilità con due bilanciatori del carico delle applicazioni esterni regionali.
Elevata disponibilità con due bilanciatori del carico delle applicazioni esterni regionali (fai clic per ingrandire).

Le sezioni seguenti descrivono un flusso di lavoro tipico con i diversi componenti coinvolti in questa configurazione.

  1. Utilizzare i controlli di integrità per rilevare i guasti a livello di regione

    Google Cloud utilizza i controlli di integrità per rilevare se i bilanciatori del carico sono integri. Configura questi controlli di integrità in modo da 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 da Nord America ed Europa, puoi avere sonde provenienti da due o più regioni in Nord America e da due o più regioni in 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 controlli di integrità provengono in realtà da un punto di presenza (PoP) su internet a breve distanza dalla regione di origine Google Cloud configurata.
  2. Indirizzare il traffico ai bilanciatori del carico in buono stato

    Google Cloud utilizza un criterio di routing per la geolocalizzazione di Cloud DNS per indirizzare il traffico ai bilanciatori del carico. Quando tutti i bilanciatori del carico sono operativi, Cloud DNS instrada il traffico al bilanciatore del carico geograficamente più vicino all'origine della richiesta del client.

    Quando un bilanciatore del carico in una determinata regione inizia a non superare i controlli di integrità, il traffico viene indirizzato ai bilanciatori del carico integri disponibili in altre regioni.

  3. Eseguire il failback all'utilizzo di tutti i bilanciatori del carico

    Il failback è automatico quando i controlli di integrità iniziano a essere superati di nuovo. Non è previsto alcun tempo di riposo durante il failback perché tutti i bilanciatori del carico disponibili gestiscono il traffico.

Configura il bilanciamento del carico tra regioni

Per configurare un deployment tra regioni che facilita l'alta disponibilità, svolgi i seguenti passaggi:

  1. Crea bilanciatori del carico delle applicazioni esterni regionali nelle regioni che ritieni supportino al meglio il traffico per la tua applicazione. Ciascuno di questi bilanciatori del carico deve avere la stessa configurazione di gestione del traffico e sicurezza.
  2. Crea il controllo di integrità e il criterio di routing DNS per indirizzare il traffico ai bilanciatori del carico in base alla posizione del client e per allontanare il traffico da un bilanciatore del carico non integro in caso di interruzione del servizio.

Crea bilanciatori del carico in più regioni

Tieni presente le seguenti considerazioni durante la configurazione dei bilanciatori del carico redundanti 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, devi assicurarti di utilizzare lo stesso tipo di certificato SSL, gli stessi criteri di Google Cloud Armor e le stesse impostazioni di gestione del traffico per tutti gli Application Load Balancer esterni regionali.

    Ti consigliamo di utilizzare un framework di automazione come Terraform per contribuire a ottenere e mantenere la coerenza delle configurazioni dei bilanciatori del carico nei diversi deployment regionali.

  • Ti consigliamo di configurare 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 aggiuntivi nel livello Premium per garantire una bassa latenza.

Per scoprire come configurare un bilanciatore del carico delle applicazioni esterno regionale, consulta Configurare un bilanciatore del carico delle applicazioni esterno regionale con backend di gruppi di istanze VM.

Configura Cloud DNS e i controlli di integrità

Questa sezione descrive come utilizzare Cloud DNS e i controlli di salute di Google Cloud per configurare l'ambiente di Cloud Load Balancing in modo da rilevare gli arresti anomali e instradare il traffico ai bilanciatori del carico in altre regioni.

Per configurare i criteri di routing e controllo di integrità richiesti:

  1. Crea un controllo di integrità per l'indirizzo IP della regola di forwarding del bilanciatore del carico principale.

    gcloud beta 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: le tre regioni Google Cloud da cui vengono inviati i controlli di salute. Devi specificare esattamente tre regioni di origine.
    • HEALTH_CHECK_INTERVAL: il 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_THRESHOLD e UNHEALTHY_THRESHOLD: specifica il numero di verifiche sequenziali che devono essere riuscite o non riuscite affinché l'istanza VM sia considerata sana o non sana. Se uno dei due valori viene omesso, Google Cloud utilizza una soglia predefinita di 2.
    • REQUEST_PATH: il percorso dell'URL a cui Google Cloud invia richieste di sonde di controllo di integrità dell'integrità. Se omesso, Google Cloud invia richieste di ispezione al percorso principale /. Se gli endpoint sottoposti a controllo di integrità sono privati, il che non è tipico per gli indirizzi IP regola di forwarding esterne, puoi impostare questo percorso su /afhealthz.
  2. In Cloud DNS, crea un insieme di record e applica un criterio di routing per la geolocalizzazione.

    gcloud beta 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 esempio test.example.com
    • TIME_TO_LIVE: il valore durata (TTL), in secondi, per il record. Per i valori consigliati, consulta le considerazioni sul DNS.
    • RECORD_TYPE: il tipo di record, ad esempio A
    • MANAGED_ZONE_NAME: il nome della zona gestita i cui set di record vuoi gestire, ad esempio my-zone-name
    • FORWARDING_RULE_NAME: i nomi delle regole di inoltro per il bilanciatore del carico in ogni REGION
    • REGION: le regioni in cui è dispiegato ogni bilanciatore del carico

Best practice

Ecco alcune best practice da tenere a mente quando configuri il record e i controlli di integrità di Cloud DNS:

  • Il tempo necessario per instradare il traffico dai bilanciatori del carico non integri a quelli integri (ovvero la durata dell'interruzione) dipende dal valore TTL DNS, dall'intervallo del controllo di integrità e dal parametro soglia di stato non integro del controllo di integrità.

    Con Cloud DNS di Google, il limite superiore per questo periodo può essere calcolato utilizzando la seguente formula:

    Duration of outage = DNS TTL + Health Check Interval * Unhealthy Threshold
    

    Ti consigliamo di impostare il TTL DNS su un valore compreso tra 30 e 60 secondi. TTL più elevati comportano tempi di riposo più lunghi perché i client su internet continuano ad accedere ai bilanciatori del carico non funzionanti anche dopo il passaggio del DNS ad altre regioni.

  • Configura i parametri di soglia di stato integro e non integro nei controlli di integrità in modo da evitare il reindirizzamento brusco e non necessario del traffico a causa di errori temporanei. Soglie più elevate aumentano il tempo necessario per il trasferimento del traffico ai bilanciatori del carico in altre regioni.