Scalare un'istanza

Puoi scalare un'istanza AlloyDB per regolare la capacità e le prestazioni del cluster in modo da soddisfare le mutevoli esigenze del workload. La scalabilità aiuta a gestire i costi e facilita la gestione dei picchi di traffico.

Puoi scalare verticalmente (modificando vCPU e RAM) cambiando il tipo di macchina di un'istanza principale o di un'istanza del pool di lettura. Puoi eseguire lo scale out modificando il numero di nodi in un'istanza del pool di lettura. Puoi gestire lo scale up e lo scale out utilizzando processi manuali. Puoi anche gestire la scalabilità orizzontale automaticamente attivando la scalabilità automatica del pool di lettura.

Puoi scalare le istanze AlloyDB nei seguenti modi.

Tipo di scalabilità Metodo Automazione Istanze principali Istanze del pool di lettura
Verticale Modifica del tipo di macchina Manuale Supportato Supportato
Orizzontale Modifica del numero di nodi Manuale e automatica Non supportata Supportato

Prima di iniziare

  • Il progetto Google Cloud che stai utilizzando deve essere stato abilitato per accedere ad AlloyDB.
  • Devi disporre di uno di questi ruoli IAM nel progetto Google Cloud che stai utilizzando:
    • roles/alloydb.admin (il ruolo IAM predefinito AlloyDB Admin)
    • roles/owner (il ruolo IAM di base Proprietario)
    • roles/editor (il ruolo IAM di base Editor)

    Se non disponi di nessuno di questi ruoli, contatta l'Amministratore organizzazione per richiedere l'accesso.

Scala un'istanza manualmente

Questa sezione descrive i metodi manuali per scalare le istanze AlloyDB. Ad esempio, puoi scalare verticalmente un'istanza modificandone il tipo di macchina e scalare orizzontalmente un'istanza del pool di lettura modificandone il numero di nodi.

Scala il tipo di macchina di un'istanza

Puoi scalare verticalmente le istanze principali e quelle del pool di lettura modificando il tipo di macchina dell'istanza, il che modifica la vCPU e la RAM.

Console

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

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Modifica istanza principale o Modifica pool di lettura.

  4. Seleziona una delle seguenti serie di macchine:

    • C4A (serie di macchine basate su Google Axion)
    • N2 (serie di macchine basate su x86). Questa è la serie di macchine predefinita.
    • C4 (serie di macchine basate su x86)
    • Z3 (serie di macchine basate su Intel Xeon)
  5. Seleziona un tipo di macchina.

    • C4A supporta 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPU.
    • N2 supporta 2, 4, 8, 16, 32, 64, 96 e 128 vCPU.
    • C4 supporta 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPU.
    • Z3 supporta 8, 14, 16, 22, 32, 44 e 88 vCPU.

    Per ulteriori informazioni sull'utilizzo della serie di macchine basate su Axion C4A, incluso il tipo di macchina con 1 vCPU, consulta Considerazioni sull'utilizzo della serie di macchine basate su Axion C4A.

  6. Fai clic su Aggiorna istanza o Aggiorna pool di lettura.

gcloud

Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.

Utilizza il comando gcloud alloydb instances update per modificare il tipo di macchina dell'istanza principale.

gcloud alloydb instances update INSTANCE_ID \
     --cpu-count=CPU_COUNT \
     --machine-type=MACHINE_TYPE \
     --region=REGION_ID \
     --cluster=CLUSTER_ID \
     --project=PROJECT_ID

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza che stai aggiornando.

  • CPU_COUNT: il numero di vCPU N2 che vuoi per l'istanza. N2 è l'impostazione predefinita. I valori validi includono:

    • 2: 2 vCPU, 16 GB di RAM
    • 4: 4 vCPU, 32 GB di RAM
    • 8: 8 vCPU, 64 GB di RAM
    • 16: 16 vCPU, 128 GB di RAM
    • 32: 32 vCPU, 256 GB di RAM
    • 64: 64 vCPU, 512 GB di RAM
    • 96: 96 vCPU, 768 GB di RAM
    • 128: 128 vCPU, 864 GB di RAM

  • MACHINE_TYPE: (Facoltativo) Seleziona un tipo di macchina supportato da un elenco, ad esempio n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Per saperne di più, consulta Scegli un tipo di macchina AlloyDB.

    Quando utilizzi MACHINE_TYPE e CPU_COUNT insieme, i valori in CPU_COUNT e MACHINE_TYPE devono corrispondere, altrimenti viene visualizzato un errore.

  • REGION_ID: la regione in cui si trova l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.

  • PROJECT_ID: l'ID del progetto in cui si trova il cluster.

Se il comando restituisce un messaggio di errore che include la frase invalid cluster state MAINTENANCE, significa che il cluster è in fase di manutenzione di routine. In questo modo, la riconfigurazione dell'istanza viene temporaneamente disattivata. Esegui di nuovo il comando dopo che il cluster è tornato allo stato READY. Per controllare lo stato del cluster, consulta Visualizza i dettagli del cluster.

Accelera gli aggiornamenti del tipo di macchina

Per aggiornare più velocemente il tipo di macchina, utilizza l'opzione FORCE_APPLY con il comando gcloud beta alloydb instances update.

 gcloud beta alloydb instances update INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --update-mode=FORCE_APPLY
  • L'istanza subisce un tempo di inattività di circa un minuto.

  • Il tipo di macchina di un'istanza cambia dopo 10-15 minuti.

Terraform

Per modificare il tipo di macchina di un'istanza, aggiorna il blocco machine_config nella risorsa google_alloydb_instance.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY" # or "READ_POOL"

  machine_config {
    cpu_count = 4
  }
}

Scala il numero di nodi di un'istanza del pool di lettura

AlloyDB ti consente di scalare il numero di nodi in un'istanza del pool di lettura senza tempi di inattività a livello di istanza. Quando aumenti il numero di nodi, le connessioni client non vengono interessate.

Quando riduci il numero di nodi, tutti i client connessi a un nodo in fase di arresto possono riconnettersi agli altri nodi utilizzando l'endpoint dell'istanza.

Console

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

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Modifica pool di lettura.

  4. Nel campo Numero di nodi, inserisci un numero di nodi.

  5. Fai clic su Aggiorna pool di lettura.

gcloud

Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.

Utilizza il comando gcloud alloydb instances update per modificare il numero di nodi in un'istanza del pool di lettura.

gcloud alloydb instances update INSTANCE_ID \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: l'ID dell'istanza del pool di lettura.

  • NODE_COUNT: il numero di nodi nell'istanza del pool di lettura. Specifica un numero compreso tra 1 e 20 inclusi. Tieni presente che non puoi avere più di 20 nodi in tutte le istanze del pool di lettura di un cluster.

  • REGION_ID: la regione in cui si trova l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.

  • PROJECT_ID: l'ID del progetto in cui si trova il cluster.

Se il comando restituisce un messaggio di errore che include la frase invalid cluster state MAINTENANCE, significa che il cluster è in fase di manutenzione di routine. In questo modo, la riconfigurazione dell'istanza viene temporaneamente disattivata. Esegui di nuovo il comando dopo che il cluster è tornato allo stato READY. Per controllare lo stato del cluster, consulta Visualizza i dettagli del cluster.

Terraform

Per modificare il numero di nodi in un'istanza del pool di lettura, aggiorna il campo node_count nel blocco read_pool_config della risorsa google_alloydb_instance.

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-read-pool-instance"
  instance_type = "READ_POOL"

  read_pool_config {
    node_count = 3
  }
}

Configura la scalabilità automatica del pool di lettura

La scalabilità automatica del pool di lettura di AlloyDB ti consente di modificare automaticamente e in modo adattivo il numero di nodi di lettura in base all'utilizzo delle risorse in tempo reale. In questo modo, puoi gestire le variazioni di utilizzo e ridurre le spese.

Puoi configurare la scalabilità automatica utilizzando le seguenti policy:

  • Basata sull'utilizzo della CPU: scala il numero di nodi in base a un utilizzo della CPU target.
  • Basata sulla pianificazione: scala il numero di nodi a un numero minimo durante un intervallo di tempo specificato.

Puoi utilizzare queste policy insieme. Quando sono attive più policy, il gestore della scalabilità automatica seleziona quella che consiglia il numero più elevato di nodi.

Limitazioni

Il gestore della scalabilità automatica del pool di lettura presenta le seguenti limitazioni:

  • Distribuzione del carico per le connessioni di lunga durata: per stabilire una distribuzione uniforme del traffico e utilizzare appieno la capacità aggiuntiva derivante dalla scalabilità automatica, ti consigliamo di creare nuove connessioni client. Il gestore della scalabilità automatica non chiude le connessioni di lunga durata esistenti quando aggiunge nuovi nodi, quindi il traffico proveniente da queste connessioni non viene instradato ai nodi appena aggiunti.
  • Riscaldamento della cache per i nuovi nodi: quando il gestore della scalabilità automatica aggiunge nuovi nodi, potrebbero essere necessari alcuni minuti per riscaldare le cache e raggiungere le prestazioni massime delle query.

Abilita la scalabilità automatica del pool di lettura su una nuova istanza del pool di lettura

Puoi attivare e configurare la scalabilità automatica quando crei un'istanza di pool di lettura utilizzando una policy basata sulla CPU, una policy basata sulla pianificazione o entrambe.

Crea un'istanza del pool di lettura con una policy basata sulla CPU

Per creare un'istanza del pool di lettura con una policy di scalabilità automatica basata su un utilizzo della CPU target, esegui questo comando:

gcloud beta alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza del pool di lettura.

  • NODE_COUNT: il numero minimo di nodi che il gestore della scalabilità automatica può creare nell'istanza del pool di lettura. Specifica un numero compreso tra 1 e 20 inclusi. Non puoi avere più di 20 nodi in tutte le istanze del pool di lettura di un cluster.

  • REGION_ID: la regione in cui si trova l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.

  • PROJECT_ID: l'ID del progetto in cui si trova il cluster.

  • MAX_NODE_COUNT: il numero massimo di nodi che il gestore della scalabilità automatica può creare nell'istanza del pool di lettura. Il numero totale di nodi in tutte le istanze del pool di lettura in un singolo cluster non può superare 20.

  • COOLDOWN_PERIOD: il periodo di tempo in secondi che AlloyDB attende prima di considerare l'utilizzo delle risorse dell'istanza del pool di lettura nell'algoritmo di scalabilità automatica. Il valore predefinito è 300 secondi.

  • TARGET_CPU_USAGE: l'utilizzo della CPU target per l'istanza del pool di lettura, espresso come valore decimale compreso tra 0,0 e 1,0. Ad esempio, 0,7 per il 70%.

  • CPU_COUNT: il numero di vCPU N2 che vuoi per l'istanza. È necessario specificare --cpu-count o --machine-type.

  • MACHINE_TYPE: seleziona da un elenco di tipi di macchine supportati, ad esempio n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Per saperne di più, consulta Scegli un tipo di macchina AlloyDB.

Crea un'istanza del pool di lettura con una policy basata sulla pianificazione

Per creare un'istanza del pool di lettura con una policy di scalabilità automatica basata sulla pianificazione che definisce un numero minimo di nodi per un periodo di tempo specifico, esegui questo comando:

gcloud beta alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION" \
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Sostituisci quanto segue:

  • MAX_NODE_COUNT: il numero massimo di nodi che il gestore della scalabilità automatica può creare nell'istanza del pool di lettura. Il numero totale di nodi in tutte le istanze del pool di lettura in un singolo cluster non può superare 20.

  • COOLDOWN_PERIOD: il periodo di tempo in secondi che AlloyDB attende prima di considerare l'utilizzo delle risorse dell'istanza del pool di lettura nell'algoritmo di scalabilità automatica. Il valore predefinito è 300 secondi.

  • SCHEDULE_NAME: un nome univoco per la pianificazione di scalabilità.

  • CRON_EXPRESSION: la pianificazione in formato cron che specifica l'ora di inizio dell'evento di scalabilità.

  • DURATION_SECONDS: la durata in secondi per cui la pianificazione rimane attiva dopo l'avvio. Dopo questo periodo, l'istanza esegue lo scale down al numero di nodi determinato da altre policy o dalla configurazione originale.

  • TIME_ZONE: un fuso orario facoltativo per la pianificazione. Ad esempio, America/Los_Angeles.

  • MIN_NODE_COUNT: il numero minimo di nodi in base ai quali il gestore della scalabilità automatica scala l'istanza del pool di lettura mentre la pianificazione è attiva.

  • DESCRIPTION: una descrizione testuale facoltativa della pianificazione.

  • CPU_COUNT: il numero di vCPU N2 che vuoi per l'istanza. È necessario specificare --cpu-count o --machine-type.

  • MACHINE_TYPE: seleziona da un elenco di tipi di macchine supportati, ad esempio n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Per saperne di più, consulta Scegli un tipo di macchina AlloyDB.

Crea un'istanza del pool di lettura con policy basate su CPU e pianificazione

Per creare un'istanza del pool di lettura con policy di scalabilità automatica basate sia sulla CPU sia sulla pianificazione, esegui questo comando:

gcloud beta alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-cool-down-period-seconds=COOLDOWN_PERIOD \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION" \
    {--cpu-count=CPU_COUNT | --machine-type=MACHINE_TYPE}

Per una descrizione dei segnaposto utilizzati in questo comando, consulta Crea un'istanza del pool di lettura con una policy basata sulla CPU e Crea un'istanza del pool di lettura con una policy basata sulla pianificazione.

Abilita o aggiorna la scalabilità automatica su un'istanza del pool di lettura esistente

Puoi attivare, disattivare o modificare le impostazioni di scalabilità automatica in un'istanza del pool di lettura esistente.

Per abilitare la scalabilità automatica per la prima volta su un'istanza esistente o per aggiornare una policy esistente, utilizza il comando gcloud beta alloydb instances update. Ad esempio, per aggiornare l'utilizzo della CPU target, esegui:

gcloud beta alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

Sostituisci NEW_TARGET_CPU_USAGE con il nuovo utilizzo della CPU target che vuoi impostare per l'istanza del pool di lettura, espresso come valore decimale compreso tra 0,0 e 1,0.

Per aggiungere una seconda pianificazione a una configurazione esistente, esegui il comando update con un nuovo nome di pianificazione. Se il nome della pianificazione esiste già, il comando aggiorna la pianificazione esistente. In caso contrario, crea una nuova pianificazione.

gcloud beta alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-set-schedule=NEW_SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT

Sostituisci NEW_SCHEDULE_NAME con il nome univoco della pianificazione di scalabilità nuova o aggiornata. Se il nome fornito corrisponde a una pianificazione esistente, il comando aggiorna le impostazioni della pianificazione. Se il nome non esiste, il comando crea una nuova pianificazione con questo nome.

Come vengono valutate le policy di scalabilità automatica

Quando sono attive più policy di scalabilità automatica, il gestore della scalabilità automatica valuta ogni policy e sceglie quella che consiglia il numero più elevato di nodi.

Ad esempio, considera una configurazione con due policy:

  • Una policy basata sulla CPU con un target di utilizzo del 60%.
  • Una policy basata sulla pianificazione che richiede un minimo di tre nodi nei giorni feriali tra le 08:00 e le 17:00.

Se è un giorno feriale a mezzogiorno e l'utilizzo della CPU è all'80%, la policy basata sulla CPU potrebbe consigliare lo scale up a quattro nodi, mentre la policy basata sulla pianificazione ne consiglia tre. Il gestore della scalabilità automatica scala l'istanza a quattro nodi.

Scalabilità automatica in

Oltre alla scalabilità automatica dell'istanza del pool di lettura, AlloyDB esegue anche lo scale in dell'istanza quando non hai bisogno di un numero elevato di nodi di lettura per supportare il tuo workflow. Quando si verifica lo scale in con scalabilità automatica, AlloyDB riduce il numero di nodi al valore impostato per il campo --read-pool-node-count.

Per determinare quando eseguire lo scale in dell'istanza del pool di lettura, AlloyDB attende che la pianificazione della scalabilità automatica sia inattiva o che l'utilizzo della CPU sia inferiore al target di utilizzo per 10 minuti.

Per saperne di più sulla scalabilità automatica, consulta Informazioni sulle decisioni del gestore della scalabilità automatica.

Disattiva la scalabilità automatica

Per disattivare la scalabilità automatica, utilizza il flag --no-enable-autoscaler. In questo modo, il pool di lettura viene reimpostato sul numero di nodi originale prima dell'attivazione della scalabilità automatica.

gcloud beta alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler

Visualizza il numero di nodi con scalabilità automatica

Puoi visualizzare il numero di nodi a cui il gestore della scalabilità automatica ha applicato la scalabilità in un'istanza.

Console

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

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nel menu di navigazione, fai clic su Insight di sistema.

  4. Seleziona un'istanza dall'elenco a discesa Istanza.

  5. Visualizza il numero di nodi in Conteggio nodi attivi.

gcloud

Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.

Utilizza il comando gcloud alloydb instances describe per visualizzare l'elenco dei nodi nell'istanza.

gcloud alloydb instances describe INSTANCE_ID \
     --region=REGION_ID \
     --cluster=CLUSTER_ID \
     --project=PROJECT_ID \
     --view=FULL \
     --format="yaml(nodes)"

Sostituisci quanto segue:

  • INSTANCE_ID: l'ID dell'istanza che stai aggiornando.

  • REGION_ID: la regione in cui si trova l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.

  • PROJECT_ID: l'ID del progetto in cui si trova il cluster.