Crea una VM con un tipo di macchina personalizzata

Compute Engine offre i tipi di macchine predefinite che puoi utilizzare quando crei un'istanza VM. Un tipo di macchina predefinito ha un numero di vCPU e una quantità di memoria preimpostati e viene addebitato a un prezzo predefinito.

Se le VM predefinite non soddisfano le tue esigenze, puoi creare un'istanza VM con impostazioni hardware virtualizzate personalizzate. In particolare, puoi creare un'istanza VM con un numero personalizzato di vCPU e una quantità di memoria, effettivamente utilizzando un tipo di macchina personalizzata. I tipi di macchine personalizzate sono disponibili nella famiglia di macchine per uso generico. Quando crei una VM personalizzata, esegui il deployment di una VM personalizzata dalla famiglia di macchine E2, N2, N2D o N1.

Le VM personalizzate sono la soluzione ideale nei seguenti scenari:

  • Carichi di lavoro che non sono adatti ai tipi di macchine virtuali predefinite.
  • I carichi di lavoro che richiedono più potenza di elaborazione o più memoria ma non richiedono tutti gli upgrade forniti dal tipo di macchina di livello successivo.

Prima di iniziare

Prezzi

Google addebita costi per le VM personalizzate in base al numero di vCPU e ore di memoria utilizzate dalla VM. Si tratta di un metodo diverso rispetto a come vengono addebitati i tipi di macchine predefinite. Consulta i prezzi delle VM per i dettagli.

Le VM personalizzate sono soggette allo stesso costo minimo di 1 minuto di qualsiasi altra istanza, ma gli sconti per utilizzo sostenuto per i tipi di macchine personalizzate vengono calcolati in modo diverso. Per ulteriori informazioni, consulta la pagina relativa agli sconti per utilizzo sostenuto per le VM personalizzate.

Espressioni di memoria in GB o MB

Per gli strumenti e la documentazione di Google Cloud, la memoria del tipo di macchina viene calcolata in gigabyte (GB), dove 1 GB è pari a 230 byte. Questa unità di misura è nota anche come gibibyte (GiB). Quando converti la memoria da GB a MB, 1 GB = 1024 MB.

Nell'API, devi sempre fornire la memoria in megabyte. Se utilizzi l'interfaccia a riga di comando di Google Cloud, puoi fornire la memoria totale per una VM in gigabyte o megabyte. Tuttavia, l'interfaccia a riga di comando gcloud prevede che il valore della memoria sia un numero intero, quindi non puoi fornire un valore in virgola mobile. Ad esempio, per esprimere 5,75 GB, converti 5,75 GB in MB. In questo caso, 5,75 GB sono 5888 MB.

Crea un'istanza VM con un tipo di macchina personalizzata

Prima di creare un'istanza VM, assicurati di leggere e comprendere le specifiche personalizzate per la creazione di questo tipo di macchina.

Console

  1. In Google Cloud Console, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nell'elenco Zona, seleziona la zona in cui vuoi ospitare questa VM. L'elenco Serie viene filtrato per includere solo le famiglie di tipi di macchine disponibili nella zona selezionata.

  3. Nella sezione Configurazione macchina, seleziona Uso generico.

    1. Nell'elenco Serie, fai clic su N1 in Prima generazione per i tipi di macchine personalizzate N1 o E2, N2 o N2D per i tipi di macchine personalizzate Seconda generazione.
    2. Dall'elenco Tipo di macchina, seleziona Personalizzato.
    3. Per specificare il numero di vCPU e la quantità di memoria per l'istanza VM, trascina i dispositivi di scorrimento o inserisci i valori nelle caselle di testo. La console visualizza un costo stimato per la VM quando cambi il numero di vCPU e memoria.
  4. Continua a creare la VM.

gcloud

Il comando gcloud per i tipi di macchine personalizzate è leggermente diverso a seconda della famiglia di tipi di macchine.

Per i tipi di macchina N1, utilizza il comando gcloud compute instances create e includi una delle seguenti opzioni:

  • I flag --custom-cpu e --custom-memory.
  • Il flag --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB].

Ad esempio, il comando seguente creerebbe un'istanza che esegue un tipo di macchina N1 con 4 vCPU e 5 GB di memoria totale:

gcloud compute instances create example-instance \
    --custom-cpu=4 --custom-memory=5

Per i tipi di macchine N2, utilizza il comando gcloud compute instances create e includi una delle seguenti opzioni:

  • I flag --custom-cpu, --custom-memory e --custom-vm-type.
  • Il flag --machine-type=n2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB.

Quando utilizzi il flag --custom-memory, specifica la quantità totale di memoria in GB o MB. La proprietà deve essere un numero intero, quindi se vuoi specificare incrementi di 0,25 GB per la memoria, converti il valore in MB.

Per specificare un valore incrementale, ad esempio 2,5 GB di memoria, converti il valore in MB e fornisci il valore seguito dal suffisso MB. L'esempio seguente crea un'istanza che esegue un tipo di macchina N2:

gcloud compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=n2

In alternativa, puoi specificare un tipo di macchina personalizzata utilizzando il seguente formato:

gcloud compute instances create example-instance \
    --machine-type n2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

Sostituisci quanto segue:

  • NUMBER_OF_CPUS: il numero di CPU che vuoi.
  • NUMBER_OF_MB: la quantità di memoria, in MB.

Ad esempio:

gcloud compute instances create example-instance --machine-type=n2-custom-6-3072

Per i tipi di macchine N2D o E2, utilizza il comando gcloud compute instances create e includi una delle seguenti opzioni:

  • I flag --custom-cpu, --custom-memory e --custom-vm-type.
  • Il flag --machine-type=n2d-custom-NUMBER_OF_CPUS-NUMBER_OF_MB.
  • Il flag --machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB.

Per i tipi di macchine con core condiviso E2, utilizza lo stesso comando gcloud compute instances create e includi le dimensioni della macchina con core condiviso: micro, small o medium.

  • Il flag --machine-type=e2-custom SHARED_CORE_MACHINE_SIZE-NUMBER_OF_MB.

Ad esempio:

gcloud compute instances create example-instance \
    --machine-type=e2-custom-medium-NUMBER_OF_MB

Quando utilizzi il flag --custom-memory, specifica la quantità totale di memoria in GB o MB. La proprietà deve essere un numero intero. Pertanto, se vuoi specificare incrementi di 0,25 GB per la memoria, converti il valore in MB.

Per specificare un valore incrementale, ad esempio 2,5 GB di memoria, converti il valore in MB e fornisci il valore seguito dal suffisso MB. L'esempio seguente crea un'istanza che esegue un tipo di macchina E2:

gcloud compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=e2

In alternativa, puoi specificare un tipo di macchina personalizzata utilizzando il seguente formato:

gcloud compute instances create example-instance \
    --machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

Sostituisci quanto segue:

  • NUMBER_OF_CPUS: il numero di CPU che vuoi.
  • NUMBER_OF_MB: la quantità di memoria, in MB.

Ad esempio:

gcloud compute instances create example-instance --machine-type=e2-custom-6-3072

API

Nell'API, crea la richiesta di creazione dell'istanza come faresti normalmente, ma quando specifichi un valore machineType, utilizza uno dei seguenti formati. Sostituisci NUMBER_OF_CPUS con il numero di CPU e AMOUNT_OF_MEMORY_MB con la quantità di memoria che preferisci. Fornisci la memoria in unità MB.

  • Per i tipi di macchina N1, utilizza:

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Per i tipi di macchina N2, utilizza:

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Per i tipi di macchine N2D, utilizza:

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Per i tipi di macchina E2, utilizza:

    zones/ZONE/machineTypes/e2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Per i tipi di macchine personalizzate con core condiviso E2, utilizza:

    zones/ZONE/machineTypes/e2-custom-SHARED_CORE_MACHINE_SIZE-AMOUNT_OF_MEMORY_MB
    

Ad esempio, il seguente URL creerebbe un'istanza con 4 vCPU e 5 GB (5120 MB) di memoria:

zones/us-central1-f/machineTypes/custom-4-5120

Analogamente, puoi creare istanze prerilasciabili e gruppi di istanze con tipi di macchine personalizzate.

Aggiungi memoria estesa a un tipo di macchina

A seconda della macchina, ciascun tipo ha una quantità specifica di memoria per impostazione predefinita. Ad esempio, se crei una VM N1 personalizzata, può avere fino a 6,5 GB di memoria per vCPU. Per le VM N2 personalizzate, questo numero aumenta fino a 8 GB di memoria per vCPU.

Per alcuni carichi di lavoro, la memoria potrebbe non essere sufficiente. A un costo aggiuntivo, puoi ottenere più memoria per vCPU oltre il limite predefinito. Questa operazione è nota come memoria estesa.

Con la memoria estesa, puoi aggiungere memoria a un tipo di macchina senza limitazioni per vCPU. Puoi aggiungere una memoria estesa fino a determinati limiti in base al tipo di macchina:

  • Per i tipi di macchina N1, puoi aggiungere fino a un totale di 624 GB di memoria per VM.
  • Per i tipi di macchine N2, puoi aggiungere fino a un totale di 640 GB di memoria per VM.
  • Per i tipi di macchine N2D, puoi aggiungere fino a un totale di 768 GB di memoria per VM.
  • La memoria estesa non è disponibile per i tipi di macchine E2.

Se hai bisogno di più memoria, devi utilizzare uno dei tipi di macchine con mega memoria, che ti consente di creare istanze con un totale di 1,4 TB per istanza VM.

Stabilire se è necessaria una memoria estesa

Per garantire risultati ottimali, alcuni carichi di lavoro richiedono una quantità di memoria superiore a quella predefinita per vCPU. I carichi di lavoro basati su database di analisi delle prestazioni ad alta memoria, inclusi database relazionali e NoSQL come MS SQL Server, MongoDB e MemcacheD/Redis, rientrano in questa categoria. Le licenze basate su vCPU di sistemi operativi e stack software rendono anche più difficile selezionare una configurazione ottimale della memoria VM con i tipi di macchine predefinite. Utilizzando la memoria estesa, puoi aggiungere tutta la memoria di cui le VM hanno bisogno per il miglior rapporto prezzo/prestazioni.

Prezzi

Quando utilizzi un tipo di macchina personalizzata, qualsiasi memoria fino alla quantità predefinita per vCPU viene addebitata al prezzo del tipo di macchina personalizzata N1 o al prezzo del tipo di macchina personalizzata N2. I tipi di macchina personalizzata E2 e il core condiviso E2 condividono lo stesso schema dei prezzi.

Per la memoria superiore a quella predefinita, Compute Engine addebita il costo della memoria estesa in base ai prezzi della memoria personalizzata estesa N1 o ai prezzi della memoria personalizzata estesa N2. Il prezzo per la memoria estesa è diverso dal prezzo per la memoria sotto la soglia predefinita.

I prezzi della memoria estesa variano in base all'area geografica. Le istanze in esecuzione con memoria estesa sono soggette allo stesso addebito minimo di 1 minuto di qualsiasi altra istanza. La memoria estesa è idonea anche agli sconti per utilizzo sostenuto.

Per ulteriori informazioni, consulta gli sconti per utilizzo sostenuto per i tipi di macchine personalizzate e i prezzi estesi per la memoria personalizzata.

Limitazioni

  • Puoi aggiungere la memoria estesa solo ai tipi di macchine personalizzate. I tipi di macchine predefinite non sono supportati.
  • Non esiste un limite alla memoria per vCPU che puoi aggiungere, ma è possibile aggiungere una quantità massima di memoria a ogni istanza VM. Per i tipi di macchine N1, puoi aggiungere fino a 624 GB di memoria. Per i tipi di macchine N2, puoi aggiungere fino a 640 GB di memoria. Per i tipi di macchine N2D, puoi aggiungere fino a 768 GB di memoria.
  • I tipi di macchine N2 e N2D sono disponibili solo in aree geografiche e zone selezionate.
  • Devi specificare la memoria con incrementi di 256 MB.
  • La memoria estesa non è idonea per gli sconti per impegno di utilizzo.

Aggiungi memoria estesa durante la creazione dell'istanza

Per creare un'istanza VM con memoria estesa, segui le istruzioni riportate di seguito.

Console

  1. In Google Cloud Console, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nell'elenco Zona, seleziona la zona in cui vuoi ospitare questa VM. L'elenco Serie viene filtrato per includere solo le famiglie di tipi di macchine disponibili nella zona selezionata.

  3. Nella sezione Configurazione macchina, seleziona Uso generico.

    1. Nell'elenco Serie, fai clic su N1 in Prima generazione per i tipi di macchine personalizzate N1 o N2 o N2D per i tipi di macchine personalizzate Seconda generazione.
    2. Nell'elenco Tipo di macchina, seleziona Personalizzato.
    3. Per specificare il numero di vCPU, trascina il dispositivo di scorrimento Core o inserisci il valore nella casella di testo.
    4. Per aggiungere memoria estesa, seleziona Estendi la memoria e procedi nel seguente modo:

      1. Per specificare la quantità di memoria per l'istanza VM, trascina il dispositivo di scorrimento Memoria o inserisci il valore nella casella di testo.

      La console visualizza un costo stimato per la VM quando cambi il numero di vCPU e memoria.

  4. Continua a creare la VM.

gcloud

Per i tipi di macchina N1, utilizza il comando gcloud e il sottocomando instances create, seguito dal flag --custom-extensions per abilitare la memoria estesa. Quindi, specifica la memoria totale che vuoi con il parametro --custom- memory.

gcloud compute instances create example-instance  \
    --custom-extensions --custom-cpu=2 --custom-memory=15

Per i tipi di macchine N2, utilizza il comando gcloud con il sottocomando instances create. Imposta i flag --custom-extensions, --custom-cpu e --custom-memory seguiti dal flag --custom-vm-type per specificare il tipo di macchina N2:

gcloud compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2

Per i tipi di macchine N2D, utilizza il comando gcloud con il comando secondario instances create. Imposta i flag --custom-extensions, --custom-cpu e --custom-memory seguiti dal flag --custom-vm-type per specificare il tipo di macchina N2D:

gcloud compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2d

API

Nell'API, crea la richiesta di creazione dell'istanza come faresti normalmente, ma quando specifichi un valore machineType, utilizza uno dei seguenti formati:

  • Per i tipi di macchina N1, utilizza:

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Per i tipi di macchina N2, utilizza:

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Per i tipi di macchine N2D, utilizza:

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    

Sostituisci quanto segue:

  • NUMBER_OF_CPUS: il numero di vCPU.
  • AMOUNT_OF_MEMORY: la memoria, in MB.

Ad esempio, quanto segue specifica un tipo di macchina N2 con 2 vCPU e 20 GB di memoria:

zones/ZONE/machineTypes/n2-custom-2-20480-ext

Aggiungi memoria estesa a un'istanza VM esistente

Per aggiungere più memoria a un'istanza esistente, devi prima interrompere l'istanza. Dopo l'arresto dell'istanza, segui le istruzioni riportate di seguito per aggiungere altro memoria alla VM.

Console

  1. In Google Cloud Console, vai alla pagina Istanze VM.

    Vai alle istanze VM

  2. Scegli nell'elenco delle VM le VM arrestate che vuoi modificare.

  3. Fai clic su Modifica nella parte superiore della pagina.

  4. In Configurazione macchina, seleziona Uso generico.

  5. Dall'elenco Tipo di macchina, seleziona Personalizzato.

  6. Seleziona il numero di vCPU che vuoi.

  7. Per aggiungere memoria estesa, seleziona Estendi la memoria, quindi specifica la quantità di memoria che vuoi.

  8. Salva le modifiche.

gcloud

Utilizzando l'interfaccia a riga di comando di Google Cloud, utilizza il sottocomando instances set-machine-type, seguito dal flag --custom-extensions accoppiato al parametro --custom-memory esistente.

Ad esempio, per aggiungere 2 GB di memoria a un'istanza VM denominata example-instance, che attualmente ha un tipo di macchina N1 con 2 vCPU, 13 GB, nella zona us-central1-b, utilizza il comando seguente:

gcloud compute instances set-machine-type example-instance \
   --zone=us-central1-b --custom-cpu=2 \
   --custom-memory=15 --custom-extensions

API

Nell'API, effettua una richiesta POST al metodo setMachineType con il tipo di macchina desiderato nel corpo della richiesta. Utilizza uno dei seguenti formati:

  • Per i tipi di macchina N1, utilizza:

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Per i tipi di macchina N2, utilizza:

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Per i tipi di macchine N2D, utilizza:

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    

Sostituisci quanto segue:

  • NUMBER_OF_CPUS: il numero di vCPU.
  • AMOUNT_OF_MEMORY: la memoria, in MB.

Ad esempio, la richiesta seguente utilizza un tipo di macchina con 2 vCPU e 15 GB di memoria:

zones/ZONE/machineTypes/custom-2-15360-ext

Ad esempio:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setMachineType

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}

Passaggi successivi