Questo tutorial spiega come utilizzare la scalabilità automatica. per regolare automaticamente il numero di istanze VM che ospitano consentendo alla tua applicazione di adattarsi a quantità variabili di traffico.
Per utilizzare la scalabilità automatica, ospita la tua applicazione su un'istanza gestita gruppo. R gruppo di istanze gestite è una raccolta di istanze che eseguono tutte la stessa applicazione e possono essere gestite come una singola entità. Quando un gruppo di istanze gestite ha abilitata, il numero di VM nel gruppo di istanze aumenta (Scale out) o diminuisce (scale in) in base al valore target da te specificato per i criteri di scalabilità automatica.
Questo tutorial include la procedura dettagliata per avviare un'applicazione web su un gruppo di istanze gestite, configurando la scalabilità automatica, configurando l'accesso alla rete e osservando la 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 vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
- Compute Engine
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
Architettura dell'applicazione
L'applicazione include i seguenti componenti di Compute Engine:
- Regola firewall: di Google Cloud che consente o nega il traffico verso le istanze.
- Modello di istanza: un modello utilizzato per creare ogni istanza VM nel gruppo di istanze gestite.
- Gruppo di istanze gestite a livello di regione: un gruppo di istanze VM che esegue la stessa applicazione in più zone.
Avvio dell'applicazione web
Questo tutorial utilizza un'applicazione web archiviata su GitHub. Se desideri ad esempio per scoprire di più su come è stata implementata l'applicazione, vedi il 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 verso l'applicazione web:
Nella console Google Cloud, vai alla pagina Firewall.
Fai clic su Crea regola firewall.
In Nome, inserisci
default-allow-http
.Imposta Rete su
default
.Imposta Destinazioni per selezionare
Specified target tags
.In Tag di destinazione, inserisci
http-server
.Imposta Filtro di origine su
IPv4 ranges
.In Intervalli IPv4 di origine, inserisci
0.0.0.0/0
per consentire l'accesso a tutti gli indirizzi IP.
In Protocolli e porte, seleziona Protocolli e porte specificati. Quindi, seleziona TCP e inserisci
80
per consentire l'accesso al traffico HTTP.Fai clic su Crea.
Crea un modello di istanza
Crea un modello di istanza che avvii l'applicazione web demo all'avvio:
Nella console Google Cloud, vai alla pagina Modelli di istanza.
Fai clic su Crea modello istanza.
In Nome, inserisci
autoscaling-web-app-template
.In Configurazione macchina, imposta Tipo di macchina su
e2-standard-2
.In Firewall, seleziona la casella di controllo Consenti traffico HTTP. Applicabile il tag di networking
http-server
per ogni istanza creata da questo modello.Espandi la sezione Opzioni avanzate per visualizzare le opzioni avanzate. impostazioni.
Espandi la sezione Gestione.
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.
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:
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic su Crea gruppo di istanze per creare un nuovo gruppo di istanze.
Seleziona Nuovo gruppo di istanze gestite (stateless)".
In Nome, inserisci
autoscaling-web-app-group
.In Modello di istanza, seleziona
autoscaling-web-app-template
.In Località, seleziona Più zone.
In Regione, seleziona us-central1.
Per Zone, seleziona le zone seguenti dall'elenco a discesa:
- us-central1-b
- us-central1-c
- us-central1-f
Configura la scalabilità automatica per il gruppo di istanze:
- Per Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze a gruppo.
Imposta il Numero minimo di istanze su
3
.Imposta Numero massimo di istanze su
6
.Imposta il Periodo di inizializzazione su
120
secondi.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.
Imposta Utilizzo CPU target su
60
.Fai clic su Fine.
In Riparazione automatica, seleziona Nessun controllo di integrità in Controllo di integrità. dall'elenco a discesa.
Fai clic su Crea. Questo ti reindirizza alla pagina Gruppi di istanze.
Per verificare che le istanze siano in esecuzione:
- Nella pagina Gruppi di istanze della console Google Cloud, fai clic su
autoscaling-web-app-group
per visualizzare le istanze nel gruppo. 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 demo:
Al termine, chiudi la scheda del browser dell'applicazione web demo.
- Nella pagina Gruppi di istanze della console Google Cloud, fai clic su
Osservazione 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 su
Utilizzo 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:
- Nella pagina Gruppi di istanze per
autoscaling-web-app-group
gruppo di istanze, fai clic sulla scheda Monitoring. - Puoi monitorare la scalabilità automatica dal grafico Dimensioni gruppo. Il grafico mostra le istanze, che rappresenta il di istanze VM nel gruppo nel tempo.
(Facoltativo) Per monitorare la capacità con scalabilità automatica rispetto all'utilizzo, consulta Grafico sull'utilizzo del gestore della scalabilità automatica (CPU). Il grafico mostra Utilizzo, ovvero l'utilizzo totale della CPU da parte delle istanze VM e Capacità, che corrisponde all'utilizzo cumulativo della CPU target del gruppo (utilizzo 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 la dimensione del gruppo di istanze fino a quando non viene utilizzata
diminuisce al valore di utilizzo target della CPU o finché la dimensione del gruppo di istanze
equivale al Numero massimo di istanze, che era impostato su 6
.
Per attivare lo scale out, aumenta l'utilizzo della CPU per le istanze:
Nella console Google Cloud, apri Cloud Shell.
Cloud Shell si aprirà nella parte inferiore nella console Google Cloud. Può richiede qualche secondo per l'inizializzazione della sessione.
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])$
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
Apri la scheda Monitoring nella console Google Cloud.
Dopo alcuni minuti, la scheda Monitoring mostra che la CPU Utilizzo aumentato, il che attiva la scalabilità automatica in modo da aumentare Capacità aumentando il numero di istanze.
Potresti anche notare che ora sono elencate sei istanze Scheda Panoramica.
Tieni entrambe le finestre aperte.
Simula fare lo scale 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:
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
Apri la scheda Monitoring nella console Google Cloud.
Dopo alcuni minuti, la scheda Monitoring mostra che la CPU Utilizzo diminuito. Dopo il periodo di stabilizzazione, che verifica che il carico sia costantemente inferiore, la scalabilità automatica diminuisce la Capacità diminuendo il numero Istanze.
Puoi anche notare che nella sezione sono elencate solo tre istanze Scheda Panoramica.
Al termine, chiudi entrambe le finestre.
Esegui la pulizia
Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettono di usare la quota e comportano 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 risorse create in questo tutorial.
Elimina il progetto
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Eliminazione di risorse specifiche
Eliminazione del gruppo di istanze
- Nella console Google Cloud, vai alla pagina Gruppi di istanze.
-
Seleziona la casella di controllo per
il tuo gruppo di istanze
autoscaling-web-app-group
. - Per eliminare il gruppo di istanze, fai clic su Elimina.
Eliminazione del modello di istanza
Nella console Google Cloud, vai alla pagina Modelli di istanza.
Fai clic sulla casella di controllo accanto a
autoscaling-web-app-template
.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...
Nella console Google Cloud, vai alla pagina Regole firewall.
Fai clic sulla casella di controllo accanto alla regola firewall denominata
default-allow-http
.Fai clic su
Elimina. Nel nuovo fai clic su Elimina per confermare l'eliminazione.
Passaggi successivi
- Prova un altro tutorial:
- Scopri di più su Gruppi di istanze gestite.
- Scopri di più su Scalabilità automatica.
- Scopri di più su Progettazione di sistemi solidi.
- Scopri di più su Building Scalable and Resilient Web Applications on Google Cloud.