Configura il backend di un gruppo di istanze gestite

Cloud CDN sfrutta i bilanciatori del carico delle applicazioni esterni globali di Google Cloud per fornire routing, controllo di integrità e supporto per gli indirizzi IP anycast. I bilanciatori del carico delle applicazioni esterni globali avere più istanza di backend backend, e puoi scegliere quali backend (o origini) abilitare di Cloud CDN.

Questa guida alla configurazione mostra come creare un bilanciatore del carico delle applicazioni esterno globale con un gruppo di istanze gestite Compute Engine con Cloud CDN abilitato.

Se questo esempio non corrisponde al tuo caso d'uso, consulta una delle seguenti pagine:

Per i concetti generali, consulta Panoramica del bilanciatore del carico delle applicazioni esterno

Se sei un utente esistente del bilanciatore del carico delle applicazioni classico, assicurati di consulta Pianifica la tua migrazione al bilanciatore del carico delle applicazioni esterno globale 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, crea la configurazione mostrata nel seguente diagramma.

Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite
Figura 1. Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite (fai clic per ingrandire).

Per un bilanciatore del carico HTTP, crea la configurazione mostrata nel seguente diagramma.

Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite
Figura 2. Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite (fai clic per ingrandire).

La sequenza degli eventi nei diagrammi è la seguente:

  1. Un client invia una richiesta di contenuti all'indirizzo IPv4 esterno definito nel regola di inoltro.
  2. Il bilanciatore del carico controlla se la richiesta può essere soddisfatta dalla cache. In questo caso, il bilanciatore del carico pubblica i contenuti richiesti al di fuori della cache. In caso contrario, l'elaborazione continua.

  3. 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.

  4. Il proxy di destinazione utilizza la regola nell'URL per determinare che un singolo servizio di backend riceve tutte le richieste.

  5. Il bilanciatore del carico determina che il backend ha una sola istanza gruppo e indirizza la richiesta a un'istanza di macchina virtuale (VM) in gruppo.

  6. La VM pubblica i contenuti richiesti dall'utente.

Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite e Cloud CDN abilitato.
Bilanciatore del carico delle applicazioni esterno con backend di un gruppo di istanze gestite e Cloud CDN abilitato (fai clic per ingrandire).

Prima di iniziare

Completa i seguenti passaggi prima di creare il bilanciatore del carico.

Configura una risorsa del certificato SSL

Per un bilanciatore del carico HTTPS, crea una risorsa del certificato SSL come descritto in seguenti:

Ti consigliamo di utilizzare un certificato gestito da Google.

In questo esempio si presuppone che tu abbia già una risorsa del certificato SSL denominata www-ssl-cert.

Configurare le autorizzazioni

Per completare i passaggi di questa guida, devi disporre dell'autorizzazione per creare di istanze Compute Engine, regole firewall e indirizzi IP riservati progetto. Devi avere un proprietario o un editor del progetto ruolo oppure devi disporre dei seguenti Ruoli IAM di Compute Engine.

Attività Ruolo richiesto
Creazione delle istanze Amministratore istanze
Aggiungi e rimuovi regole firewall Amministratore della sicurezza
Crea componenti del bilanciatore del carico Amministratore rete
Crea un progetto (facoltativo) Project Creator

Per ulteriori informazioni, consulta le seguenti guide:

Configura la rete e le subnet

Per creare la rete e la subnet di esempio, segui questi passaggi.

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alle reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci un nome per la rete.

  4. In Modalità di creazione subnet, scegli Personalizzata.

  5. Nella sezione Nuova subnet, configura i seguenti campi:

    1. Specifica un nome per la subnet.
    2. Seleziona una Regione.
    3. Per Tipo di stack IP, seleziona IPv4 (stack singolo).
    4. Inserisci un intervallo di indirizzi IP. Questo è l'indirizzo IPv4 principale per la subnet.
  6. Fai clic su Fine.

  7. Per aggiungere una subnet in un'altra regione, fai clic su Aggiungi subnet e ripeti i passaggi precedenti.

  8. Fai clic su Crea.

gcloud

gcloud compute networks subnets update SUBNET \
    --network=NETWORK \
    --stack-type=IPV4_ONLY \
    --range=10.1.2.0/24 \
    --region=REGION

Sostituisci quanto segue:

  • NETWORK: un nome per la rete VPC.

  • SUBNET: un nome per la subnet.

  • REGION: il nome della regione.

Creare un gruppo di istanze gestite

Per configurare un bilanciatore del carico con un backend di Compute Engine, le VM devono in un gruppo di istanze. Questa guida descrive come creare un account gruppo di istanze VM con VM Linux su cui è in esecuzione Apache, quindi configura il carico e del bilanciamento del carico. Un gruppo di istanze gestite crea le rispettive istanze gestite in base sui modelli di istanza da te specificati.

Il gruppo di istanze gestite fornisce VM che eseguono i server di backend su un bilanciatore del carico HTTP(S) esterno. A scopo dimostrativo, i backend e pubblicano 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:

  1. Nella console Google Cloud, vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza.

  3. In Nome, inserisci lb-backend-template.

  4. Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio Debian GNU/Linux 10 (buster). Queste istruzioni utilizzano comandi sono disponibili solo su Debian, come apt-get.

  5. Espandi Opzioni avanzate.

  6. Espandi Networking e configura i seguenti campi:

    1. In Tag di rete, inserisci allow-health-check.
    2. Nella sezione Interfacce di rete, fai clic su Modifica e fai in modo che le seguenti modifiche:
      • Rete: NETWORK
      • Subnet: SUBNET
      • Traffico IPv4: IPv4 (stack singolo)
    3. Fai clic su Fine.
  7. 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
    
  8. 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 modello di istanza, utilizza la google_compute_instance_template risorsa.

resource "google_compute_instance_template" "default" {
  name = "lb-backend-template"
  disk {
    auto_delete  = true
    boot         = true
    device_name  = "persistent-disk-0"
    mode         = "READ_WRITE"
    source_image = "projects/debian-cloud/global/images/family/debian-11"
    type         = "PERSISTENT"
  }
  labels = {
    managed-by-cnrm = "true"
  }
  machine_type = "n1-standard-1"
  metadata = {
    startup-script = "#! /bin/bash\n     sudo apt-get update\n     sudo apt-get install apache2 -y\n     sudo a2ensite default-ssl\n     sudo a2enmod ssl\n     vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\n   http://169.254.169.254/computeMetadata/v1/instance/name)\"\n   sudo echo \"Page served from: $vm_hostname\" | \\\n   tee /var/www/html/index.html\n   sudo systemctl restart apache2"
  }
  network_interface {
    access_config {
      network_tier = "PREMIUM"
    }
    network    = "global/networks/default"
    subnetwork = "regions/us-east1/subnetworks/default"
  }
  region = "us-east1"
  scheduling {
    automatic_restart   = true
    on_host_maintenance = "MIGRATE"
    provisioning_model  = "STANDARD"
  }
  service_account {
    email  = "default"
    scopes = ["https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring.write", "https://www.googleapis.com/auth/pubsub", "https://www.googleapis.com/auth/service.management.readonly", "https://www.googleapis.com/auth/servicecontrol", "https://www.googleapis.com/auth/trace.append"]
  }
  tags = ["allow-health-check"]
}

Crea il gruppo di istanze gestite e seleziona il modello di istanza.

Console

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

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.

  3. A sinistra, scegli Nuovo gruppo di istanze gestite (stateless).

  4. In Nome, inserisci lb-backend-example.

  5. In Località, seleziona Zona singola.

  6. In Regione, seleziona la regione che preferisci.

  7. In Zona, seleziona una zona.

  8. In Modello di istanza, seleziona il modello di istanza lb-backend-template.

  9. In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo.

    Imposta Numero minimo di istanze su 2 e Numero massimo di istanze su 2 o più.

  10. Per creare il nuovo gruppo di istanze, fai clic su Crea.

gcloud

  1. Crea il gruppo di istanze gestite in base al modello.

    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.

resource "google_compute_instance_group_manager" "default" {
  name = "lb-backend-example"
  zone = "us-east1-b"
  named_port {
    name = "http"
    port = 80
  }
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  base_instance_name = "vm"
  target_size        = 2
}

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 verso la porta denominata. Per ulteriori informazioni, vedi Porte denominate.

Console

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

    Vai a Gruppi di istanze

  2. Fai clic su lb-backend-example.

  3. Nella pagina Panoramica del gruppo di istanze, fai clic su Modifica.

  4. Nella sezione Mappatura delle porte, fai clic su Aggiungi porta.

    1. Come nome della porta, inserisci http. Per il numero di porta, inserisci 80.
  5. 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 in esempio di gruppo di istanze gestite.

Configurare una regola firewall

In questo esempio, viene creata la regola firewall fw-allow-health-check. Questa è una regola in entrata che consente il traffico dall'integrità di Google Cloud sistemi di controllo (130.211.0.0/22 e 35.191.0.0/16). Questo esempio utilizza la classe il tag di destinazione allow-health-check per identificare le VM.

Console

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

    Vai a Criteri firewall

  2. Fai clic su Crea regola firewall per creare la regola firewall.

  3. In Nome, inserisci fw-allow-health-check.

  4. Seleziona una Rete.

  5. In Target, seleziona Tag di destinazione specificati.

  6. Compila il campo Tag di destinazione con allow-health-check.

  7. Imposta Filtro di origine su Intervalli IPv4.

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

  9. In Protocolli e porte, seleziona Protocolli e porte specificati.

  10. Seleziona la casella di controllo TCP, quindi digita 80 per i numeri di porta.

  11. 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 google_compute_firewall risorsa.

resource "google_compute_firewall" "default" {
  name          = "fw-allow-health-check"
  direction     = "INGRESS"
  network       = "global/networks/default"
  priority      = 1000
  source_ranges = ["130.211.0.0/22", "35.191.0.0/16"]
  target_tags   = ["allow-health-check"]
  allow {
    ports    = ["80"]
    protocol = "tcp"
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.

Prenotare 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

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

    Vai a Indirizzi IP esterni

  2. Per prenotare un indirizzo IPv4, fai clic su Prenota indirizzo IP statico esterno.

  3. In Nome, inserisci lb-ipv4-1.

  4. Imposta Network Service Tier su Premium.

  5. Imposta Versione IP su IPv4.

  6. Imposta Tipo su Globale.

  7. Fai clic su Prenota.

gcloud

gcloud compute addresses create lb-ipv4-1 \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global

Prendi nota dell'indirizzo IPv4 riservato:

gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global

Terraform

Per prenotare l'indirizzo IP, utilizza il google_compute_global_address risorsa.

resource "google_compute_global_address" "default" {
  name       = "lb-ipv4-1"
  ip_version = "IPV4"
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.

configura il bilanciatore del carico

In questo esempio, utilizzi HTTPS (frontend) tra il client e il carico con il bilanciatore del carico di rete passthrough esterno regionale. Per HTTPS, sono necessarie una o più risorse del certificato SSL per configurare il proxy. Ti consigliamo di utilizzare un certificato gestito da Google.

Anche se utilizzi HTTPS sul frontend, puoi utilizzare HTTP sul backend. Google cripta automaticamente il traffico tra i Google Front End (GFE) e i tuoi backend che risiedono all'interno delle reti VPC di Google Cloud.

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. In Deployment globale o in una regione singola, seleziona Ideale per carichi di lavoro globali e fai clic su Avanti.
  6. Per Generazione del bilanciatore del carico, seleziona Classica Bilanciatore del carico delle applicazioni e fai clic su Avanti.
  7. Fai clic su Configura.

Configurazione di base

Per Nome del bilanciatore del carico, inserisci ad esempio web-map-https o web-map-http.

Configurazione frontend

  1. Fai clic su Configurazione frontend.
  2. Imposta Protocollo su HTTPS.
  3. Seleziona IPv4 per il traffico IPv4. Imposta Indirizzo IP su lb-ipv4-1, che hai creato in precedenza.
  4. Imposta Porta su 443.
  5. Fai clic su Certificato e seleziona il tuo certificato SSL principale.
  6. (Facoltativo) Crea un criterio SSL:
    1. Nell'elenco Criterio SSL, seleziona Crea un .
    2. Imposta il nome del criterio SSL su my-ssl-policy.
    3. Per Versione TLS minima, seleziona TLS 1.0.
    4. In Profilo, seleziona Moderno. Vengono visualizzate le opzioni Funzionalità abilitate e Funzionalità disattivate.
    5. Fai clic su Salva.
    Se non hai creato criteri SSL, viene applicato un criterio SSL predefinito.
  7. (Facoltativo) Seleziona la casella di controllo Attiva il reindirizzamento da HTTP a HTTPS per attivare i reindirizzamenti.

    L'attivazione di questa casella di controllo crea un carico HTTP parziale aggiuntivo che utilizza lo stesso indirizzo IP del carico HTTPS e reindirizza le richieste HTTP in entrata al tuo carico del bilanciatore del carico tramite il frontend HTTPS del bilanciatore.

    Questa casella di controllo può essere selezionata solo quando il protocollo HTTPS e viene utilizzato un indirizzo IP riservato.

  8. Fai clic su Fine.

Configurazione backend

  1. Fai clic su Configurazione backend.
  2. In Crea o seleziona servizi di backend e backend bucket, seleziona Servizi di backend > Crea un backend Google Cloud.
  3. Aggiungi un nome per il servizio di backend, ad esempio web-backend-service.
  4. In Protocollo, seleziona HTTP.
  5. In Porta denominata, inserisci http.
  6. In Backend > Nuovo backend > Gruppo di istanze, seleziona il gruppo di istanze lb-backend-example.
  7. In Numeri di porta, inserisci 80.
  8. Mantieni le altre impostazioni predefinite.
  9. In Controllo di integrità, seleziona Crea uno stato di integrità. controllo di integrità, quindi aggiungi un nome per il controllo di integrità, ad esempio http-basic-check.
  10. Imposta il protocollo su HTTP e poi fai clic su Salva.
  11. (Facoltativo) Configura un criterio di sicurezza di backend predefinito. Il livello di sicurezza predefinito il criterio limita il traffico al di sopra di una soglia configurata dall'utente. Per ulteriori informazioni informazioni sui criteri di sicurezza predefiniti, consulta Panoramica sulla limitazione di frequenza.

    1. Per disattivare il criterio di sicurezza predefinito di Google Cloud Armor, seleziona None nel menu elenco dei criteri di sicurezza del backend.
    2. Nella sezione Sicurezza, seleziona Criterio di sicurezza predefinito.
    3. Nel campo Nome norma, accetta i Termini e condizioni d'uso generato o inserisci un nome per il criterio di sicurezza.
    4. Nel campo Conteggio richieste, accetta la richiesta predefinita conteggio o inserisci un numero intero compreso tra 1 e 10,000.
    5. Nel campo Intervallo, seleziona un intervallo.
    6. Nel campo Chiave di applicazione forzata, scegli una delle seguenti opzioni valori: Tutti, Indirizzo IP o Indirizzo IP X-Forwarded-For. Per ulteriori informazioni per queste opzioni, consulta Identificazione dei clienti per la limitazione di frequenza.
  12. Seleziona Attiva Cloud CDN.
  13. (Facoltativo) Modifica il campo modalità cache e Impostazioni TTL.
  14. Conserva le altre impostazioni predefinite.
  15. Fai clic su Crea.

Regole host e percorso

Per Regole host e percorso, mantieni le impostazioni predefinite.

Esamina e finalizza

  1. Fai clic su Esamina e finalizza.
  2. Rivedi le impostazioni di configurazione del bilanciatore del carico.
  3. (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta API REST. che verrà utilizzato per creare il bilanciatore del carico.
  4. Fai clic su Crea.

Attendi che la creazione del bilanciatore del carico sia completa.

Se hai creato un bilanciatore del carico HTTPS e hai selezionato la casella di controllo Abilita il reindirizzamento da HTTP a HTTPS, vedrai anche un bilanciatore del carico HTTP creato con un suffisso -redirect.

  1. Fai clic sul nome del bilanciatore del carico.
  2. Nella schermata Dettagli bilanciatore del carico, tieni presente IP:Port per il bilanciatore del carico.

gcloud

  1. Creare un controllo di integrità.
     gcloud compute health-checks create http http-basic-check \
         --port 80
     
  2. Crea un servizio di backend.
    gcloud compute backend-services create web-backend-service \
        --load-balancing-scheme=EXTERNAL \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
  3. Aggiungi il tuo gruppo di istanze come backend del servizio di backend.
    gcloud beta compute backend-services add-backend web-backend-service \
      --instance-group=lb-backend-example \
      --instance-group-zone=ZONE_A \
      --global
    
  4. Per HTTP, crea una mappa URL per instradare le richieste in entrata al backend predefinito completamente gestito di Google Cloud.
    gcloud beta compute url-maps create web-map-http \
      --default-service web-backend-service
    
  5. Per HTTPS, crea una mappa URL per instradare le richieste in arrivo al o un servizio di backend predefinito.
    gcloud beta compute url-maps create web-map-https \
      --default-service web-backend-service
    

Configurare un frontend HTTPS

Salta questa sezione per i bilanciatori del carico HTTP.

  1. Per HTTPS, se non lo hai già fatto, crea il protocollo SSL globale di certificazione, come illustrato nelle sezioni seguenti:
  2. Per HTTPS, crea un proxy HTTPS di destinazione per instradare le richieste al tuo URL mappa. Il proxy è la parte del bilanciatore del carico che contiene il certificato SSL per un bilanciatore del carico HTTPS, quindi in questo passaggio carichi anche il certificato.

    gcloud compute target-https-proxies create https-lb-proxy \
      --url-map=web-map-https \
      --ssl-certificates=www-ssl-cert
    
  3. Per HTTPS, crea una regola di forwarding globale per instradare le richieste in entrata a il proxy.
    gcloud compute forwarding-rules create https-content-rule \
      --load-balancing-scheme=EXTERNAL \
      --network-tier=PREMIUM \
      --address=lb-ipv4-1 \
      --global \
      --target-https-proxy=https-lb-proxy \
      --ports=443
    
  4. (Facoltativo) Per HTTPS, crea un criterio SSL globale e collegalo al proxy HTTPS.
    Per creare un criterio SSL globale:
    gcloud compute ssl-policies create my-ssl-policy \
      --profile MODERN \
      --min-tls-version 1.0
    
    Per collegare il criterio SSL al proxy HTTPS di destinazione globale:
    gcloud compute target-https-proxies update https-lb-proxy \
      --ssl-policy my-ssl-policy
    

Configura un frontend HTTP

Salta questa sezione per i bilanciatori del carico HTTPS.

  1. Per HTTP, 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-http
    
  2. Per HTTP, crea una regola di forwarding globale per instradare le richieste in entrata a il proxy.
    gcloud compute forwarding-rules create http-content-rule \
      --load-balancing-scheme=EXTERNAL \
      --address=lb-ipv4-1 \
      --global \
      --target-http-proxy=http-lb-proxy \
      --ports=80
    

Terraform

  1. Per creare il controllo di integrità, utilizza la risorsa google_compute_health_check.

    resource "google_compute_health_check" "default" {
      name               = "http-basic-check"
      check_interval_sec = 5
      healthy_threshold  = 2
      http_health_check {
        port               = 80
        port_specification = "USE_FIXED_PORT"
        proxy_header       = "NONE"
        request_path       = "/"
      }
      timeout_sec         = 5
      unhealthy_threshold = 2
    }
  2. Per creare il servizio di backend, utilizza la risorsa google_compute_backend_service.

    In questo esempio vengono utilizzati load_balancing_scheme="EXTERNAL_MANAGED", che configura un bilanciatore del carico delle applicazioni esterno globale avanzate funzionalità di gestione del traffico. Per creare un bilanciatore del carico delle applicazioni classico, assicurati di modificare load_balancing_scheme in EXTERNAL prima di eseguire lo script.

    resource "google_compute_backend_service" "default" {
      name                            = "web-backend-service"
      connection_draining_timeout_sec = 0
      health_checks                   = [google_compute_health_check.default.id]
      load_balancing_scheme           = "EXTERNAL_MANAGED"
      port_name                       = "http"
      protocol                        = "HTTP"
      session_affinity                = "NONE"
      timeout_sec                     = 30
      backend {
        group           = google_compute_instance_group_manager.default.instance_group
        balancing_mode  = "UTILIZATION"
        capacity_scaler = 1.0
      }
    }
  3. Per creare la mappa URL, utilizza la risorsa google_compute_url_map.

    resource "google_compute_url_map" "default" {
      name            = "web-map-http"
      default_service = google_compute_backend_service.default.id
    }
  4. Per creare il proxy HTTP di destinazione, utilizza la risorsa google_compute_target_http_proxy.

    resource "google_compute_target_http_proxy" "default" {
      name    = "http-lb-proxy"
      url_map = google_compute_url_map.default.id
    }
  5. Per creare la regola di forwarding, utilizza la risorsa google_compute_global_forwarding_rule.

    In questo esempio vengono utilizzati load_balancing_scheme="EXTERNAL_MANAGED", che configura un bilanciatore del carico delle applicazioni esterno globale avanzate funzionalità di gestione del traffico. Per creare un bilanciatore del carico delle applicazioni classico, assicurati di modificare Da load_balancing_scheme a EXTERNAL prima eseguendo lo script.

    resource "google_compute_global_forwarding_rule" "default" {
      name                  = "http-content-rule"
      ip_protocol           = "TCP"
      load_balancing_scheme = "EXTERNAL_MANAGED"
      port_range            = "80-80"
      target                = google_compute_target_http_proxy.default.id
      ip_address            = google_compute_global_address.default.id
    }

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Abilita Cloud CDN

Se non hai già abilitato Cloud CDN al momento della creazione del backend puoi farlo ora aggiornando il servizio di backend.

gcloud compute backend-services update web-backend-service \
    --enable-cdn \
    --cache-mode=CACHE_MODE

Imposta la modalità cache sostituendo CACHE_MODE con uno dei seguenti:

  • CACHE_All_STATIC: memorizza automaticamente nella cache i contenuti statici.

  • USE_ORIGIN_HEADERS (predefinito): richiede l'origine per impostare una memorizzazione nella cache valida da intestazioni a della cache.

  • FORCE_CACHE_ALL: memorizza nella cache tutti i contenuti, ignorando eventuali direttive private, no-store o no-cache negli intestazioni di risposta Cache-Control.

Connetti il tuo dominio al bilanciatore del carico

Dopo aver creato il bilanciatore del carico, prendi nota dell'indirizzo IP associato dal bilanciatore del carico, ad esempio 30.90.80.100. Per indirizzare il tuo dominio al bilanciatore del carico, crea un record A utilizzando il servizio di registrazione del dominio. Se hai aggiunto più domini al tuo certificato SSL, devi aggiungere un record A per ciascuno, puntando tutti all'indirizzo IP del bilanciatore del carico. Ad esempio, per crea record A per www.example.com e example.com, usa quanto segue:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Se utilizzi Cloud DNS come provider DNS, consulta Aggiungere, modificare ed eliminare record.

Testa il traffico inviato alle istanze

Ora che il servizio di bilanciamento del carico è in esecuzione, puoi inviare il traffico alla regola di inoltro e osservare la distribuzione del traffico su diverse istanze.

Console

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

    Vai a Bilanciamento del carico

  2. Fai clic sul bilanciatore del carico che hai appena creato.
  3. Nella sezione Backend, verifica che le VM siano integre. La La colonna Integro deve essere compilata, a indicare che entrambe le VM sono integri (2/2). Se la risposta è diversa, prova innanzitutto a ricaricare della pagina. Potrebbero essere necessari alcuni istanti prima che la console Google Cloud annunci che le VM sono in esecuzione correttamente. Se i backend non sembrano essere operativi dopo alcuni minuti, controlla la configurazione del firewall e il tag di rete assegnato alle VM di backend.

  4. Per HTTPS, se utilizzi un certificato gestito da Google, verifica che le tue lo stato della risorsa di certificato è ATTIVO. Per ulteriori informazioni, vedi Stato della risorsa del certificato SSL gestito da Google.
  5. Dopo che la console Google Cloud mostra che le istanze di backend sono è in stato integro, puoi testare il bilanciatore del carico usando un browser web https://IP_ADDRESS (o http://IP_ADDRESS). Sostituisci IP_ADDRESS con indirizzo IP del bilanciatore del carico.
  6. Se hai utilizzato un certificato autofirmato per il test del protocollo HTTPS, il browser mostra un avviso. Devi indicare esplicitamente al browser di accettare un certificato autofirmato.
  7. Il browser dovrebbe visualizzare una pagina con contenuti che mostrano il nome del che ha pubblicato la pagina, insieme alla sua zona (ad esempio, Page served from: lb-backend-example-xxxx). Se il browser non supporta visualizzare questa pagina, rivedi le impostazioni di configurazione in questa guida.

gcloud

gcloud compute addresses describe lb-ipv4-1 \
   --format="get(address)" \
   --global

Dopo alcuni minuti, puoi testare la configurazione eseguendo questo Comando curl.

curl http://IP_ADDRESS

-o-

curl https://HOSTNAME

Disattivare Cloud CDN

Console

Disabilita Cloud CDN per un singolo servizio di backend

  1. Nella console Google Cloud, vai alla pagina Cloud CDN.

    Vai a Cloud CDN

  2. Sul lato destro della riga dell'origine, fai clic su Menu e poi seleziona Modifica.

  3. Deseleziona le caselle di controllo dei servizi di backend che non vuoi più utilizzare Cloud CDN.

  4. Fai clic su Aggiorna.

Rimuovi Cloud CDN per tutti i servizi di backend per un'origine

  1. Nella console Google Cloud, vai alla pagina Cloud CDN.

    Vai a Cloud CDN

  2. Sul lato destro della riga dell'origine, fai clic su Menu e seleziona Rimuovi.

  3. Fai clic su Rimuovi per confermare.

gcloud

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --no-enable-cdn

La disabilitazione di Cloud CDN non annulla o elimina definitivamente le cache. Se disattivare e riattivare Cloud CDN, la maggior parte o tutti i dati potrebbero comunque essere memorizzati nella cache. Per impedire la pubblicazione dei contenuti dalla cache, devi invalidare i contenuti in questione.

Passaggi successivi