API Compute Engine


Questo tutorial spiega come utilizzare la scalabilità automatica per regolare automaticamente il numero di istanze VM che ospitano la tua applicazione, consentendo all'applicazione di adattarsi a quantità variabili di traffico.

Per utilizzare la scalabilità automatica, ospita l'applicazione su un gruppo di istanze gestite. Un gruppo di istanze gestite è una raccolta di istanze che eseguono tutte la stessa applicazione e possono essere gestite come un'unica entità. Quando la scalabilità automatica è attivata per un gruppo di istanze gestite, il numero di VM nel gruppo aumenta (esegue la scalabilità esterna) o diminuisce (esegue la scalabilità interna) automaticamente in base al valore target specificato per il criterio di scalabilità automatica.

Questo tutorial include i passaggi dettagliati per il lancio di un'applicazione web su un gruppo di istanze gestite, la configurazione della scalabilità automatica, la configurazione dell'accesso alla rete e l'osservazione della scalabilità automatica simulando picchi e cali di carico. In base esperienza con queste funzioni, il tutorial richiede circa 20 minuti completato.

Obiettivi

  • Avvia un'applicazione web demo su un gruppo di istanze gestite.
  • Osserva gli effetti della scalabilità automatica simulando picchi e cali di traffico.

Costi

In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:

  • Compute Engine

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Architettura dell'applicazione

L'applicazione include i seguenti componenti di Compute Engine:

Avvio dell'applicazione web

Questo tutorial utilizza un'applicazione web archiviata su GitHub. Se vuoi approfondire l'implementazione dell'applicazione, consulta il repository GoogleCloudPlatform/python-docs-samples su GitHub.

Avvia l'applicazione web su ogni VM in un gruppo di istanze gestite includendo uno script di avvio in un modello di istanza. Consentire il traffico HTTP sul web creare una regola firewall.

Crea una regola firewall

Crea una regola firewall per consentire il traffico HTTP all'applicazione web:

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

    Vai a Firewall

  2. Fai clic su Crea regola firewall.

  3. In Nome, inserisci default-allow-http.

  4. Imposta Rete su default.

  5. Imposta Destinazioni su Specified target tags.

  6. In Tag di destinazione, inserisci http-server.

  7. Imposta Filtro di origine su IPv4 ranges.

  8. In Intervalli IPv4 di origine, inserisci 0.0.0.0/0

    per consentire l'accesso a tutti gli indirizzi IP.

  9. In Protocolli e porte, seleziona Protocolli e porte specificati. Quindi, seleziona TCP e inserisci 80 per consentire l'accesso per il traffico HTTP.

  10. Fai clic su Crea.

Crea un modello di istanza

Crea un modello di istanza che avvii l'applicazione web di demo all'avvio:

  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 autoscaling-web-app-template.

  4. In Configurazione macchina, imposta Tipo di macchina su e2-standard-2.

  5. In Firewall, seleziona la casella di controllo Consenti traffico HTTP. Applicabile il tag di networking http-server per ogni istanza creata da questo modello.

  6. Espandi la sezione Opzioni avanzate per visualizzare le opzioni avanzate. impostazioni.

  7. Espandi la sezione Gestione.

  8. Nella sezione Automazione, inserisci il seguente script di avvio:

    sudo apt update && sudo apt -y install git gunicorn3 python3-pip
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/compute/managed-instances/demo
    sudo pip3 install -r requirements.txt
    sudo gunicorn3 --bind 0.0.0.0:80 app:app --daemon
    

    Questo script fa sì che ogni VM esegua l'applicazione web durante l'avvio.

  9. Fai clic su Crea.

Creare un gruppo di istanze gestite

Crea un gruppo di istanze a livello di regione per iniziare a eseguire l'applicazione web:

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

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze per creare un nuovo gruppo di istanze.

  3. Seleziona Nuovo gruppo di istanze gestite (stateless)."

  4. In Nome, inserisci autoscaling-web-app-group.

  5. In Modello di istanza, seleziona autoscaling-web-app-template.

  6. In Località, seleziona Più zone.

  7. In Regione, seleziona us-central1.

  8. In Zone (Zone), seleziona le seguenti zone dall'elenco a discesa:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  9. Configura la scalabilità automatica per il gruppo di istanze:

    1. In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo.
    2. Imposta Numero minimo di istanze su 3.

    3. Imposta Numero massimo di istanze su 6.

    4. Imposta il periodo di inizializzazione su 120 secondi.

    5. In Metriche di scalabilità automatica, seleziona Utilizzo CPU come tipo di metrica. Per scoprire di più sulle metriche di scalabilità automatica, consulta Criterio di scalabilità automatica.

    6. Imposta Utilizzo CPU target su 60.

    7. Fai clic su Fine.

  10. In Riparazione automatica, seleziona Nessun controllo di integrità in Controllo di integrità. dall'elenco a discesa.

  11. Fai clic su Crea. Viene visualizzata la pagina Gruppi di istanze.

  12. Per verificare che le istanze siano in esecuzione:

    1. Nella pagina Gruppi di istanze della console Google Cloud, fai clic su autoscaling-web-app-group per visualizzare le istanze del gruppo.
    2. In IP esterno, fai clic su un indirizzo IP per connettere l'istanza. Si apre una nuova scheda del browser che mostra l'applicazione web di prova:

      Demo dell'applicazione web, che elenca informazioni sull'istanza e dispone di pulsanti di azione.

      Al termine, chiudi la scheda del browser per l'applicazione web di esempio.

Monitoraggio della scalabilità automatica

Per ulteriori informazioni sui comportamenti di scalabilità automatica, consulta Informazioni sulle decisioni relative alla scalabilità automatica.

Monitora la scalabilità automatica

Il gruppo di istanze che hai creato utilizza un criterio di scalabilità automatica basato sull'utilizzo della CPU. Ciò significa che il gestore della scalabilità automatica amplia o riduce il gruppo in base alle esigenze per mantenere l'utilizzo target della CPU del 60%.

Per monitorare le dimensioni e l'utilizzo della CPU da parte del gruppo di istanze, usa I grafici a scalabilità automatica nella console Google Cloud:

  1. Nella pagina Gruppi di istanze per autoscaling-web-app-group gruppo di istanze, fai clic sulla scheda Monitoring.
  2. Puoi monitorare la scalabilità automatica dal grafico Dimensione gruppo. Il grafico mostra le istanze, che rappresenta il di istanze VM nel gruppo nel tempo.
  3. (Facoltativo) Per monitorare la capacità scalata automaticamente rispetto all'utilizzo, consulta il grafico Utilizzo dell'autoscaler (CPU). Il grafico mostra Utilizzo, ovvero l'utilizzo totale della CPU delle istanze VM nel gruppo, e Capacità, ovvero l'utilizzo della CPU target cumulativo del gruppo (utilizzo della CPU target moltiplicato per il numero di istanze VM).

    La scalabilità automatica tenta di far corrispondere la Capacità all'Utilizzo modificando il numero di istanze, se possibile.

Tieni aperta questa finestra.

Simula scale out

Lo scale out si verifica quando l'utilizzo medio della CPU da parte del gruppo di istanze notevolmente superiore al valore target. Durante lo scale out, il gestore della scalabilità automatica aumenta gradualmente le dimensioni del gruppo di istanze fino a quando l'utilizzo della CPU non diminuisce fino al valore dell'utilizzo della CPU target o fino a quando le dimensioni del gruppo di istanze non equivalgono al Numero massimo di istanze, impostato su 6.

Per attivare lo scale out, aumenta l'utilizzo della CPU per le istanze:

  1. Nella console Google Cloud, apri Cloud Shell.

    Apri Cloud Shell

    Cloud Shell si aprirà nella parte inferiore nella console Google Cloud. Può richiede qualche secondo per l'inizializzazione della sessione.

  2. Crea una variabile bash locale per l'ID progetto:

    export PROJECT_ID=[PROJECT_ID]
    

    dove PROJECT_ID è l'ID del progetto attuale, che viene visualizzato su ogni nuova riga in Cloud Shell:

    user@cloudshell:~ ([PROJECT_ID])$
    
  3. Esegui il seguente script bash. Questo script fa sì che l'applicazione web demo aumentare il carico, aumentando così l'utilizzo della CPU. Dopo alcuni minuti, l'utilizzo della CPU supererà il valore target, che richiede alla scalabilità automatica di aumentare la dimensione del gruppo di istanze.

    export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group")
    for i in $MACHINES;
    do
      NAME=$(echo "$i" | cut -f1 -d,)
      IP=$(echo "$i" | cut -f2 -d,)
      echo "Simulating high load for instance $NAME"
      curl -q -s "http://$IP/startLoad" >/dev/null --retry 2
    done
    
  4. Apri la scheda Monitoring nella console Google Cloud.

    Dopo alcuni minuti, la scheda Monitoraggio indica che l'utilizzo della CPU è aumentato, il che attiva la scalabilità automatica per aumentare la capacità aumentando il numero di istanze.

    Potresti anche notare che ora nella scheda Panoramica sono elencate 6 istanze.

Tieni aperte entrambe le finestre.

Simula lo zoom in

Lo scale in si verifica quando l'utilizzo medio della CPU da parte del gruppo di istanze notevolmente inferiore al valore target. Durante fare lo scale in, il gestore della scalabilità automatica diminuisce gradualmente le dimensioni del gruppo di istanze fino a quando non viene utilizzata aumenta l'utilizzo della CPU target o fino a quando la dimensione del gruppo equivale al Numero minimo di istanze, che era impostato su 3.

Per attivare fare lo scale in, riduci l'utilizzo della CPU per le istanze:

  1. Esegui il seguente script bash. Questo script fa sì che l'applicazione web demo delle istanze VM per avere un carico ridotto, che a sua volta riduce l'utilizzo della CPU. Dopo alcuni minuti, l'utilizzo della CPU scenderà al di sotto del valore target, che chiede al gestore della scalabilità automatica di ridurre le dimensioni del gruppo di istanze.

    export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "autoscaling-web-app-group")
    for i in $MACHINES;
    do
      NAME=$(echo "$i" | cut -f1 -d,)
      IP=$(echo "$i" | cut -f2 -d,)
      echo "Simulating low load for instance $NAME"
      curl -q -s "http://$IP/stopLoad" >/dev/null --retry 2
    done
    
  2. Apri la scheda Monitoraggio nella console Google Cloud.

    Dopo alcuni minuti, nella scheda Monitoraggio viene visualizzato un calo dell'utilizzo della CPU. Dopo il periodo di stabilizzazione, che verifica che il carico sia costantemente inferiore, la scalabilità automatica riduce la capacità diminuendo il numero di istanze.

    Potresti anche notare che nella scheda Panoramica sono elencate solo 3 istanze.

Al termine, chiudi entrambe le finestre.

Esegui la pulizia

Al termine del tutorial, puoi eliminare le risorse che hai creato in modo che smettano di utilizzare la quota e di generare addebiti. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.

Se hai creato un progetto separato per questo tutorial, elimina l'intero progetto. In caso contrario, se il progetto contiene risorse che vuoi conservare, elimina solo le risorse create in questo tutorial.

Elimina il progetto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminazione di risorse specifiche

Eliminazione del gruppo di istanze

  1. In the Google Cloud console, go to the Instance groups page.

    Go to Instance groups

  2. Select the checkbox for your autoscaling-web-app-group instance group.
  3. To delete the instance group, click Delete.

Eliminazione del modello di istanza

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

    Vai a Modelli di istanza

  2. Fai clic sulla casella di controllo accanto a autoscaling-web-app-template.

  3. Fai clic su Elimina nella parte superiore della pagina. Nella nuova finestra, fai clic su Elimina per per confermare l'eliminazione.

Eliminazione della regola firewall in corso...

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

    Vai a Regole firewall

  2. Fai clic sulla casella di controllo accanto alla regola firewall denominata default-allow-http.

  3. Fai clic su Elimina. Nella nuova finestra, fai clic su Elimina per confermare l'eliminazione.

Passaggi successivi