Scalabilità automatica dei gruppi di istanze


I gruppi di istanze gestite (MIG) offrono funzionalità di scalabilità automatica che consentono di aggiungere o eliminare automaticamente le istanze di macchine virtuali (VM) da un MIG in base agli incrementi o alle diminuzioni del carico. La scalabilità automatica consente alle app di gestire agevolmente l'aumento del traffico e di ridurre i costi quando il fabbisogno di risorse è inferiore. Se definisci la policy di scalabilità automatica, il gestore della scalabilità automatica eseguirà il ridimensionamento in base al carico misurato e alle opzioni configurate.

La scalabilità automatica funziona aggiungendo più VM al MIG quando il carico è maggiore (scale out) ed eliminando le VM quando il fabbisogno di VM è ridotto (scale in).

Prerequisiti

Il gestore della scalabilità automatica utilizza l'agente di servizio Compute Engine per aggiungere e rimuovere istanze nel gruppo. Google Cloud genera automaticamente questo service account, nonché la relativa policy IAM associata al ruolo Compute Engine Service Agent, quando l'API Compute Engine è abilitata.

Se nel progetto manca questo account, ad esempio se lo hai rimosso, puoi aggiungerlo manualmente:

Console

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

    Vai a IAM

  2. Fai clic su Concedi l'accesso.

  3. Nel campo Nuove entità, inserisci service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  4. Seleziona il ruolo Compute Engine Service Agent.

  5. Fai clic su Salva.

gcloud

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
   --role roles/compute.serviceAgent

Concetti fondamentali

La scalabilità automatica utilizza i seguenti concetti e servizi fondamentali.

Gruppi di istanze gestite

La scalabilità automatica è una funzionalità dei gruppi di istanze gestite (MIG). Un gruppo di istanze gestite è una raccolta di istanze di macchine virtuali (VM) che vengono create da un template di istanza comune. Un gestore della scalabilità automatica aggiunge o elimina istanze da un gruppo di istanze gestite in base alla relativa policy di scalabilità automatica. Sebbene Compute Engine disponga sia di gruppi di istanze gestite sia di gruppi di istanze non gestite, solo i gruppi di istanze gestite possono essere utilizzati con un gestore della scalabilità automatica.

Per comprendere la differenza tra un gruppo di istanze gestite e un gruppo di istanze non gestite, consulta Gruppi di istanze.

Per scoprire come creare un gruppo di istanze gestite, consulta Creazione di MIG.

Policy di scalabilità automatica

Quando definisci una policy di scalabilità automatica per il gruppo, specifichi uno o più indicatori utilizzati dal gestore della scalabilità automatica per scalare il gruppo. Quando imposti più indicatori in una policy, il gestore della scalabilità automatica calcola il numero consigliato di VM per ogni indicatore e imposta la dimensione consigliata del gruppo sul numero più grande.

Una policy di scalabilità automatica deve sempre avere almeno un indicatore di scalabilità. Quando attivi la scalabilità automatica in un MIG, per impostazione predefinita il gestore della scalabilità automatica aggiunge un indicatore di utilizzo della CPU. Puoi modificare questo indicatore predefinito o rimuovere e aggiungere altri indicatori nella policy.

Le sezioni seguenti forniscono una panoramica degli indicatori basati sulle metriche di utilizzo target e sugli indicatori basati sulle pianificazioni.

Metriche di utilizzo target

Puoi usare la scalabilità automatica in base a una o più delle seguenti metriche che riflettono il carico del gruppo di istanze:

  • Utilizzo CPU medio
  • Capacità di gestione del bilanciamento del carico HTTP
  • Metriche di Cloud Monitoring

Il gestore della scalabilità automatica raccoglie costantemente le informazioni sull'utilizzo in base alla metrica di utilizzo selezionata, confronta l'utilizzo effettivo con l'utilizzo target desiderato e utilizza queste informazioni per determinare se il gruppo deve rimuovere istanze (fare lo scale in) o aggiungerne (fare lo scale out).

Il livello di utilizzo target è il livello a cui vuoi mantenere le tue istanze di macchine virtuali (VM). Ad esempio, se applichi la scalabilità in base all'utilizzo della CPU, puoi impostare il livello di utilizzo target sul 75% e il gestore della scalabilità automatica manterrà l'utilizzo della CPU del gruppo di istanze specificato al 75% o a un valore vicino. Il livello di utilizzo per ogni metrica viene interpretato in modo diverso in base alla policy di scalabilità automatica.

Per ulteriori informazioni sulla scalabilità in base alle metriche di utilizzo target, consulta le seguenti pagine:

Pianificazioni

Puoi utilizzare la scalabilità automatica basata sulla pianificazione per distribuire la capacità in base ai carichi previsti. Puoi avere fino a 128 pianificazioni della scalabilità per gruppo di istanze. Per ogni pianificazione della scalabilità, specifica quanto segue:

  • Capacità: istanze VM minime richieste
  • Pianificazione: ora di inizio, durata e ricorrenza (ad esempio una volta, ogni giorno, ogni settimana o ogni mese)

Ogni pianificazione della scalabilità è attiva dall'ora di inizio e per la durata configurata. Durante questo periodo, il gestore della scalabilità automatica esegue la scalabilità del gruppo in modo da avere almeno il numero di istanze definito dalla pianificazione della scalabilità.

Per ulteriori informazioni, consulta Scalabilità basata sulle pianificazioni.

Periodo di inizializzazione

Il periodo di inizializzazione, precedentemente noto come periodo di attesa, è la durata necessaria per l'inizializzazione delle applicazioni sulle istanze VM. Durante l'inizializzazione di un'applicazione in un'istanza, i dati sull'utilizzo dell'istanza potrebbero non riflettere circostanze normali. Di conseguenza, il gestore della scalabilità automatica utilizza il periodo di inizializzazione per le decisioni di scalabilità nei seguenti modi:

  • Per le decisioni di scale in, il gestore della scalabilità automatica prende in considerazione i dati sull'utilizzo di tutte le istanze, anche di quelle che si trovano ancora nel periodo di inizializzazione. Il gestore della scalabilità automatica consiglia di rimuovere le istanze se l'utilizzo medio di tutte le istanze è inferiore all'utilizzo target.
  • Per le decisioni di scale out, il gestore della scalabilità automatica ignora i dati sull'utilizzo delle istanze che sono ancora nel periodo di inizializzazione.
  • Se attivi la modalità predittiva, il periodo di inizializzazione informa il gestore della scalabilità automatica predittiva di fare un ulteriore scale out prima del carico previsto, in modo che le applicazioni vengano inizializzate quando arriva il carico. Ad esempio, se imposti il periodo di inizializzazione su 300 secondi, il gestore della scalabilità automatica predittiva crea le VM 5 minuti prima del carico previsto.

Per impostazione predefinita, il periodo di inizializzazione è di 60 secondi. I tempi di inizializzazione effettivi variano a causa di numerosi fattori. Ti consigliamo di verificare il tempo necessario per l'inizializzazione dell'applicazione. Per farlo, crea un'istanza e misura il tempo del processo di avvio dal momento in cui l'istanza diventa RUNNING fino a quando l'applicazione è pronta.

Se imposti un valore del periodo di inizializzazione molto più lungo del tempo necessario per l'inizializzazione di un'istanza, il gestore della scalabilità automatica potrebbe ignorare i dati di utilizzo legittimi e sottostimare le dimensioni richieste del gruppo, causando un ritardo nello scale out.

Periodo di stabilizzazione

Gli indicatori di scalabilità automatica come l'utilizzo della CPU non sono molto stabili e possono cambiare rapidamente. Quando il carico aumenta e diminuisce, il gestore della scalabilità automatica deve stabilizzare l'indicatore per evitare l'eliminazione e la creazione continua di VM. Il gestore della scalabilità automatica stabilizza un indicatore mantenendo una capacità sufficiente delle VM per gestire il picco di carico osservato durante il periodo di stabilizzazione.

Il periodo di stabilizzazione è uguale a 10 minuti o al periodo di inizializzazione impostato, a seconda del periodo più lungo. Il periodo di stabilizzazione viene utilizzato solo per le decisioni di scale in quando il gestore della scalabilità automatica deve eliminare le VM.

Quando il carico diminuisce, il gestore della scalabilità automatica non elimina immediatamente le VM. Il gestore della scalabilità automatica continua a monitorare la capacità necessaria per la durata del periodo di stabilizzazione ed elimina le VM solo quando è disponibile una capacità sufficiente per soddisfare il picco di carico. Ciò potrebbe sembrare un ritardo nello scale in, ma è una funzionalità integrata della scalabilità automatica.

Se l'inizializzazione dell'applicazione su una nuova VM richiede più di 10 minuti, il gestore della scalabilità automatica utilizza il periodo di inizializzazione anziché i 10 minuti predefiniti di stabilizzazione per attendere che la VM possa essere eliminata. In questo modo, la decisione di eliminare la VM da parte del gestore della scalabilità automatica tiene conto del tempo necessario per recuperare la capacità di pubblicazione.

Quando il carico aumenta, il gestore della scalabilità automatica non utilizza il periodo di stabilizzazione e crea immediatamente tutte le VM necessarie per soddisfare la domanda.

Modalità di scalabilità automatica

Se devi esaminare o configurare il gruppo senza interferenze da parte delle operazioni del gestore della scalabilità automatica, puoi disattivare o limitare temporaneamente le attività di scalabilità automatica. La configurazione del gestore della scalabilità automatica persiste quando è disattivato o limitato e tutte le attività di scalabilità automatica riprendono quando lo riattivi o rimuovi la limitazione.

Scalabilità automatica predittiva

Se attivi la scalabilità automatica predittiva per ottimizzare il MIG in base alla disponibilità, il gestore della scalabilità automatica prevede il carico futuro in base ai dati storici e fa lo scale out di un MIG in anticipo rispetto al carico previsto, in modo che le nuove istanze siano pronte all'uso quando si verifica il carico.

La scalabilità automatica predittiva funziona al meglio se il workload soddisfa i seguenti criteri:

  • L'inizializzazione dell'applicazione richiede molto tempo, ad esempio se configuri un periodo di inizializzazione di più di 2 minuti.
  • Il workload varia in modo prevedibile a cicli giornalieri o settimanali.

Per ulteriori informazioni, consulta la sezione Scalabilità basata sulle previsioni.

Controlli di scale in

Se sono necessari molti minuti per l'inizializzazione dei tuoi workload (ad esempio a causa di attività di installazione lunghe), puoi ridurre il rischio di latenza nella risposta causata da eventi di scale in improvvisi configurando i controlli di scale in. Nello specifico, se prevedi picchi di carico subito dopo i cali, puoi limitare la frequenza di scale in per impedire alla scalabilità automatica di ridurre le dimensioni di un MIG di un numero di istanze VM superiore a quello tollerato dal tuo workload.

Non è necessario configurare i controlli di scale in se l'applicazione si inizializza abbastanza rapidamente da rilevare i picchi di carico durante lo scale out.

Per configurare i controlli di scale in, imposta le seguenti proprietà nella policy di scalabilità automatica.

  • Riduzione massima consentita. Il numero di istanze VM che il tuo workload può permettersi di perdere (rispetto alle sue dimensioni massime) entro la finestra temporale finale specificata. Utilizza questo parametro per limitare lo scale in del gruppo in modo da poter gestire un probabile picco di carico finché non vengono avviate altre istanze. Più piccola è la riduzione massima consentita, più tempo occorre al gruppo per fare lo scale in.

  • Finestra temporale finale. La cronologia entro cui il gestore della scalabilità automatica monitora le dimensioni massime richieste dal tuo workload. Il gestore della scalabilità automatica non eseguirà il ridimensionamento al di sotto della riduzione massima consentita sottratta dalla dimensione massima osservata in questo intervallo. Puoi utilizzare questo parametro per definire il tempo che deve attendere il gestore della scalabilità automatica prima di rimuovere le istanze, come definito dalla riduzione massima consentita. Con una finestra temporale finale più lunga, il gestore della scalabilità automatica prende in considerazione più picchi storici, rendendo lo scale in più conservativo e stabile.

Per ulteriori informazioni, consulta Configurazione dei controlli di scale in e Informazioni sulle decisioni del gestore della scalabilità automatica.

La dimensione consigliata del gruppo è il numero consigliato di VM del gestore della scalabilità automatica che il gruppo di istanze gestite deve mantenere, in base al picco di carico osservato negli ultimi 10 minuti. Questi ultimi 10 minuti sono definiti periodo di stabilizzazione. Le dimensioni consigliate vengono ricalcolate costantemente. Se imposti una policy di scalabilità automatica con controlli di scale in, le dimensioni consigliate sono vincolate dai controlli di scale in.

Limitazioni

Cosa succede durante la riparazione automatica

La scalabilità automatica funziona indipendentemente dalla riparazione automatica. Se configuri la riparazione automatica per il gruppo e un'istanza non supera il controllo di integrità, il MIG tenta di ricrearla. Mentre un'istanza viene ricreata dal MIG, il numero di istanze in esecuzione nel gruppo potrebbe essere inferiore al numero minimo di istanze specificato per il gruppo (autoscalingPolicy.minNumReplicas).

Prezzi

Non è previsto alcun costo aggiuntivo per la configurazione di una policy di scalabilità automatica. Il gestore della scalabilità automatica aggiunge o elimina dinamicamente le istanze VM, pertanto ti vengono addebitate solo le risorse utilizzate dal tuo MIG. Puoi controllare il costo delle risorse configurando il numero minimo e massimo di istanze nella policy di scalabilità automatica. Per informazioni sui prezzi di Compute Engine, consulta Prezzi.

Passaggi successivi

  1. Scopri come funziona la scalabilità automatica in un MIG a livello di regione.
  2. Se non hai un MIG esistente, consulta la sezione su come creare un gruppo di istanze gestite.
  3. Crea un gestore della scalabilità automatica che esegue la scalabilità in base a:

  4. Gestisci il gestore della scalabilità automatica, ad esempio per ottenere informazioni, configurare i controlli di scale in o limitarlo temporaneamente.