Un gruppo di istanze è una raccolta di istanze di macchine virtuali (VM) che puoi gestire come una singola entità.
Compute Engine offre due tipi di gruppi di istanze VM, gestiti e non gestiti:
- I gruppi di istanze gestite (MIG) ti consentono di utilizzare le app su più VM identiche. Puoi rendere i tuoi carichi di lavoro scalabili e ad alta disponibilità sfruttando i servizi MIG automatizzati, tra cui: scalabilità automatica, riparazione automatica, deployment regionale (più zone) e aggiornamento automatico.
- I gruppi di istanze non gestite ti consentono di bilanciare il carico tra un parco risorse VM gestito da te.
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di Compute Engine in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova Compute Engine gratuitamenteGruppi di istanze gestite (MIG)
Utilizza un gruppo di istanze gestite per scenari come questi:
- Carichi di lavoro stateless di pubblicazione, ad esempio un frontend di un sito web
- Carichi di lavoro stateless batch, ad alte prestazioni o ad alta velocità effettiva, come l'elaborazione di immagini da una coda
- Applicazioni stateful, come database, applicazioni legacy e calcoli batch a lunga esecuzione con checkpoint
Compute Engine mantiene tutte le istanze gestite del gruppo di istanze gestite in base alla configurazione specificata in un modello di istanza e, in caso contrario, alla configurazione stateful facoltativa.
Per informazioni su come creare un gruppo di istanze gestite, consulta Creazione di gruppi di istanze gestite.
Vantaggi
I gruppi di istanze gestite offrono i seguenti vantaggi:
- Disponibilità elevata.
- Riparazione automatica delle VM non riuscite. Se una VM nel gruppo si arresta, si arresta in modo anomalo, viene prerilasciata (VM spot) o viene eliminata da un'azione diversa da un comando di gestione del gruppo di istanze (ad esempio, una scalabilità intenzionale), il gruppo di istanze gestite ricrea automaticamente la VM in conformità con le specifiche dell'istanza originale (stesso nome della VM, stesso modello) in modo che la VM possa riprendere il suo lavoro.
- Riparazione automatica basata sull'applicazione. Puoi anche configurare un controllo di integrità basato sull'applicazione, che verifica periodicamente che la tua applicazione risponda come previsto su ciascuna istanza del MIG. Se un'applicazione non risponde su una VM, il gruppo di istanze gestite ricrea automaticamente quella VM. Verificare che un'applicazione risponda è più preciso che verificare semplicemente che una VM sia in esecuzione.
- Copertura a livello di area geografica (più zone). I gruppi di istanze gestite a livello di area geografica consentono di distribuire il carico delle app in più zone. Questa replica protegge dagli errori a livello di zona. In tal caso, la tua app può continuare a gestire il traffico proveniente dalle istanze in esecuzione nelle zone disponibili rimanenti nella stessa regione.
- Bilanciamento del carico. I gruppi di istanze gestite lavorano con i servizi di bilanciamento del carico per distribuire il traffico tra tutte le istanze del gruppo.
- Scalabilità. Quando le tue app richiedono risorse di calcolo aggiuntive, i MIG a scalabilità automatica possono far aumentare automaticamente il numero di istanze nel gruppo per soddisfare la domanda. Se la domanda diminuisce, i gruppi di istanze gestite con scalabilità automatica possono ridursi automaticamente per ridurre i costi.
- Aggiornamenti automatici. Il programma di aggiornamento automatico del gruppo di istanze gestite consente di eseguire in sicurezza il deployment di nuove versioni del software nelle istanze del gruppo di istanze gestite e supporta una gamma flessibile di scenari di implementazione, come gli aggiornamenti in sequenza e gli aggiornamenti canary. Puoi controllare la velocità e l'ambito del deployment, nonché il livello di interruzione del servizio.
- Supporto per carichi di lavoro stateful. Puoi utilizzare i gruppi di istanze gestite per creare deployment ad alta disponibilità e automatizzare il funzionamento delle applicazioni con configurazione o dati stateful, ad esempio database, server DNS, applicazioni monolite legacy o calcoli batch a lunga esecuzione con checkpoint. I MIG stateful mantengono lo stato univoco di ogni istanza (nome dell'istanza, dischi permanenti collegati e metadati) durante gli eventi di riavvio, ricreazione, riparazione automatica e aggiornamento delle macchine.
Riparazione automatica e riparazione automatica
I gruppi di istanze gestite preservano l'alta disponibilità delle tue applicazioni, mantenendo proattivamente disponibili le istanze. Un gruppo di istanze gestite ripara automaticamente le istanze non riuscite ricreandole.
Potresti anche dover riparare le istanze quando un'applicazione si blocca, si arresta in modo anomalo o esaurisce la memoria. La riparazione automatica basata sull'applicazione migliora la disponibilità dell'applicazione affidandosi a un indicatore di controllo di integrità che rileva i problemi specifici dell'applicazione, come il blocco, l'arresto anomalo o il sovraccarico. Se un controllo di integrità determina che un'applicazione non ha avuto esito positivo su una VM, il gruppo ricrea automaticamente questa istanza VM.
Per saperne di più, consulta Informazioni sulla riparazione delle VM in un gruppo di istanze gestite.
Controllo di integrità
I controlli di integrità utilizzati per monitorare i gruppi di istanze gestite sono simili ai controlli di integrità utilizzati per il bilanciamento del carico, con alcune differenze di comportamento. Il bilanciamento del carico dei controlli di integrità consente di indirizzare il traffico dalle istanze che non rispondono e a istanze integre; questi controlli di integrità non causano la ricreazione delle istanze da parte di Compute Engine. D'altra parte, i controlli di integrità dei gruppi di istanze gestite segnalano in modo proattivo l'eliminazione e la creazione di nuove istanze che diventano UNHEALTHY
.
Nella maggior parte degli scenari, utilizza controlli di integrità separati per il bilanciamento del carico e la riparazione automatica. Il controllo di integrità per il bilanciamento del carico può e deve essere più aggressivo perché determina se un'istanza riceve traffico degli utenti. Poiché i clienti potrebbero fare affidamento sui tuoi servizi, puoi individuare rapidamente le istanze che non rispondono in modo da poter reindirizzare il traffico se necessario. Invece, il controllo di integrità per la riparazione automatica causa la sostituzione proattiva dei gruppi di istanze non riuscite, pertanto questo controllo di integrità dovrebbe essere più conservativo di un controllo di integrità del bilanciamento del carico.
Per ulteriori informazioni, consulta la pagina Configurare il controllo di integrità e la riparazione automatica dell'applicazione.
Gruppi a livello di zona o di regione
Puoi creare due tipi di gruppi di istanze gestite:
- Un MIG di zona, che esegue il deployment di istanze in una singola zona.
- Un MIG a livello di regione, che esegue il deployment di istanze in più zone nella stessa regione.
Entrambi i tipi offrono tutti i vantaggi dei gruppi di istanze gestite. I gruppi di istanze gestite a livello di area geografica offrono una disponibilità più elevata distribuindo il carico delle applicazioni su più zone, che proteggono il carico di lavoro contro i guasti a livello di zona, mentre i gruppi di istanze gestite a livello di area geografica offrono più capacità, con un massimo di 2000 istanze per gruppo a livello di area geografica.
Bilanciamento del carico
Il bilanciamento del carico di Google Cloud può utilizzare i gruppi di istanze per gestire il traffico. A seconda del tipo di bilanciatore del carico che scegli, puoi aggiungere gruppi di istanze a un pool di destinazione o a un servizio di backend.
Per ulteriori informazioni, consulta la pagina relativa all'aggiunta di un gruppo di istanze a un bilanciatore del carico.
Scalabilità automatica
I gruppi di istanze gestite supportano la scalabilità automatica, che aggiunge o rimuove dinamicamente istanze di VM dal gruppo in risposta agli incrementi o alle riduzioni del carico. Puoi configurare un criterio di scalabilità automatica per specificare come vuoi scalare il gruppo. Nel tuo criterio di scalabilità automatica, puoi impostare uno o più indicatori per scalare il gruppo in base all'utilizzo della CPU, alla capacità di bilanciamento del carico, alle metriche, alle pianificazioni o ai MIG di zona di Cloud Monitoring utilizzando un carico di lavoro basato su code come Pub/Sub.
Per ulteriori informazioni, consulta Scalabilità automatica dei gruppi di istanze.
Aggiornamento automatico
Puoi eseguire in modo facile e sicuro il deployment di nuove versioni del software nelle istanze di un gruppo di istanze gestite. L'implementazione di un aggiornamento avviene automaticamente in base alle tue specifiche: puoi controllare la velocità e l'ambito dell'implementazione dell'aggiornamento per ridurre al minimo le interruzioni dell'applicazione. Facoltativamente, puoi eseguire implementazioni parziali, che consentono test canary.
Consulta Aggiornamento dei gruppi di istanze gestite.
Supporto per carichi di lavoro stateful
Puoi creare deployment a disponibilità elevata di carichi di lavoro stateful sulle VM utilizzando i gruppi di istanze gestite stateful (MIG stateful). I carichi di lavoro stateful includono applicazioni con configurazione o dati stateful, come database, applicazioni monolitiche legacy e calcoli batch a lunga esecuzione con checkpoint.
Puoi migliorare uptime e resilienza di queste applicazioni con la riparazione automatica, gli aggiornamenti controllati e i deployment multizona, mantenendo lo stato univoco di ogni istanza, inclusi nome dell'istanza personalizzabile, dischi permanenti e metadati.
Per ulteriori informazioni, consulta la pagina MiG stateful.
Gruppi di istanze prerilasciabili
Per i carichi di lavoro in cui i costi minimi sono più importanti della velocità di esecuzione, puoi ridurre il costo del carico di lavoro utilizzando le istanze VM prerilasciabili nel tuo gruppo di istanze. Le istanze prerilasciabili durano fino a 24 ore e vengono prerilasciate correttamente: l'applicazione ha 30 secondi di uscita correttamente. Le istanze prerilasciabili possono essere eliminate in qualsiasi momento, ma la riparazione automatica riporterà le istanze quando la capacità prerilasciabile tornerà disponibile.
Container
Puoi semplificare il deployment delle applicazioni eseguendo il deployment dei container nelle istanze nei gruppi di istanze gestite. Quando specifichi un'immagine container in un modello di istanza e poi lo utilizzi per creare un gruppo di istanze gestite, ogni VM viene creata con un sistema operativo ottimizzato per i container che include Docker e il tuo container si avvia automaticamente su ogni VM nel gruppo. Consulta la pagina relativa al deployment di container su VM e gruppi di istanze gestite.
Rete e subnet
Quando crei un gruppo di istanze gestite, devi fare riferimento a un modello di istanza esistente. Il modello di istanza definisce la rete VPC e la subnet utilizzate dalle istanze membri. Per le reti VPC in modalità automatica, puoi omettere la subnet; questo indica a Google Cloud di selezionare la subnet creata automaticamente nella regione specificata nel modello. Se ometti una rete VPC, Google Cloud tenta di utilizzare la rete VPC denominata default
.
Per saperne di più, consulta Reti e subnet.
Demo di funzionalità MIG
La seguente presentazione video di 45 minuti, registrata in Google Cloud NEXT '18, contiene demo e best practice per configurare, eseguire e aggiornare deployment scalabili e ad alta disponibilità utilizzando i MIG di Compute Engine.
Il video mostra come eseguire il deployment di un container in un gruppo di istanze gestite, impostare un criterio di riparazione automatica, utilizzare un gruppo a livello di regione per proteggersi da errori di zona, configurare la scalabilità automatica per soddisfare i target di CPU e le domande basate sulla coda e gestire gli aggiornamenti canary e in sequenza.
Gruppi di istanze non gestite
I gruppi di istanze non gestite possono contenere istanze eterogenee che puoi aggiungere e rimuovere arbitrariamente dal gruppo. I gruppi di istanze non gestite non offrono scalabilità automatica, riparazione automatica, supporto degli aggiornamenti in sequenza, supporto multizona o uso di modelli di istanza e non sono adatti per il deployment di carichi di lavoro a disponibilità elevata e scalabili. Utilizza i gruppi di istanze non gestite se devi applicare il bilanciamento del carico a gruppi di istanze eterogenee o se hai bisogno di gestire le istanze autonomamente.
Se devi creare gruppi di istanze non gestite, consulta Gruppi di istanze non gestite.
Prezzi
Non sono previsti costi aggiuntivi per l'utilizzo di gruppi di istanze gestite o non gestite. L'addebito è basato sulle risorse utilizzate dal tuo gruppo. Per informazioni sui prezzi di Compute Engine, consulta Prezzi.
Passaggi successivi
- Scopri di più sui modelli di istanza o crea un modello di istanza da utilizzare per configurare le VM in un gruppo di istanze gestite.
- Crea un gruppo di istanze gestite in una zona o in più zone di un'area geografica.
- Scopri di più sull'aggiornamento dei gruppi di istanze gestite per utilizzare una nuova configurazione.
- Prova un tutorial: