Créer une instance de VM personnalisée

Compute Engine propose des types de machines prédéfinis que vous pouvez utiliser lorsque vous créez une instance de VM. Un type de machine prédéfini dispose d'un nombre prédéfini de processeurs virtuels et d'une quantité prédéfinie de mémoire, et est facturé à un prix fixe.

Si les VM prédéfinies ne répondent pas à vos besoins, vous pouvez créer une instance de VM avec des paramètres matériels virtualisés personnalisés. Plus précisément, vous pouvez créer une instance de VM avec un nombre personnalisé de processeurs virtuels et la quantité de mémoire de votre choix. Vous disposez ainsi véritablement d'un type de machine personnalisé. Les types de machines personnalisés sont disponibles dans la famille de machines à usage général. Lorsque vous créez une VM personnalisée, vous la déployez à partir de la famille de machines E2, N2, N2D ou N1.

Les VM personnalisées sont idéales dans les scénarios suivants :

  • Charges de travail qui ne conviennent pas aux types de machines virtuelles prédéfinis.
  • Charges de travail qui nécessitent davantage de puissance de traitement ou de mémoire, sans pour autant nécessiter toutes les mises à niveau fournies par le type de machine de niveau supérieur.

Avant de commencer

Tarifs

Pour les VM personnalisées, Google facture en fonction du nombre de processeurs virtuels et des heures de mémoire utilisées par la VM. Il s'agit d'un mode de facturation différent de celui des types de machines prédéfinis. Pour en savoir plus, consultez la section Tarifs des VM.

Les VM personnalisées sont soumises à la même facturation minimale à la minute que toute autre instance, mais les remises automatiques proportionnelles à une utilisation soutenue sont calculées différemment pour les types de machines personnalisés. Pour en savoir plus, consultez la page Remises automatiques proportionnelles à une utilisation soutenue pour les VM personnalisées.

Exprimer la mémoire en Go ou en Mo

Pour les outils et la documentation de Google Cloud, la mémoire du type de machine est calculée en gigaoctets (Go), 1 Go correspondant à 230 octets. Cette unité de mesure est parfois appelée gibioctet (Gio). Lors de la conversion de la mémoire du Go au Mo, 1 Go = 1024 Mo.

Dans l'API, vous devez toujours indiquer la mémoire en mégaoctets. Si vous utilisez l'outil de ligne de commande gcloud, vous pouvez indiquer la mémoire totale d'une VM en gigaoctets ou en mégaoctets. Cependant, l'outil gcloud s'attend à ce que la valeur de la mémoire soit un entier. Vous ne pouvez donc pas spécifier de valeur flottante. Par exemple, pour exprimer 5,75 Go, convertissez plutôt 5,75 Go en Mo. Dans ce cas, 5,75 Go équivalent à 5 888 Mo.

Créer une instance de VM avec un type de machine personnalisé

Avant de créer une instance de VM, veillez à lire et à bien comprendre les spécifications personnalisées qui s'appliquent à la création de ce type de machine.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Dans la liste Zone, sélectionnez la zone dans laquelle vous souhaitez héberger cette VM. La liste Série est filtrée pour n'inclure que les familles de types de machines disponibles dans la zone sélectionnée.

  3. Dans la section Configuration de la machine, sélectionnez Usage général.

    1. Dans la liste Série, cliquez sur N1 dans Première génération pour les types de machines personnalisés N1, ou E2, N2 ou N2D pour des types de machines personnalisés de Deuxième génération.
    2. Dans la liste Type de machine, sélectionnez Personnalisé.
    3. Pour spécifier le nombre de processeurs virtuels et la quantité de mémoire de l'instance de VM, faites glisser les curseurs ou saisissez les valeurs souhaitées dans les zones de texte. La console indique une estimation du coût de la vVM lorsque vous modifiez le nombre de processeurs virtuels et la mémoire.
  4. Poursuivez la création de la VM.

gcloud

La commande gcloud pour les types de machines personnalisés diffère légèrement en fonction de la famille de types de machines.

Pour les types de machines N1, exécutez la commande gcloud compute instances create et incluez l'une des options suivantes :

  • Les options --custom-cpu et --custom-memory
  • L'option --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

Par exemple, la commande suivante crée une instance exécutant un type de machine N1 doté de 4 processeurs virtuels et de 5 Go de mémoire totale :

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

Pour les types de machines N2, exécutez la commande gcloud compute instances create et incluez l'une des options suivantes :

  • Les options --custom-cpu, --custom-memory et --custom-vm-type
  • L'option --machine-type=n2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

Lorsque vous utilisez l'option --custom-memory, spécifiez la quantité totale de mémoire en Go ou en Mo. La propriété doit être un entier. Par conséquent, si vous souhaitez spécifier la quantité de mémoire par incréments de 0,25 Go, convertissez cette valeur en Mo.

Pour spécifier une valeur incrémentielle, telle que 2,5 Go de mémoire, convertissez la valeur en Mo et indiquez la valeur suivie du suffixe Mo. L'exemple suivant crée une instance exécutant un type de machine N2 :

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

Vous pouvez également spécifier un type de machine personnalisé en utilisant le format suivant :

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

Remplacez l'élément suivant :

  • NUMBER_OF_CPUS : nombre de processeurs souhaités.
  • NUMBER_OF_MB : quantité de mémoire, exprimée en Mo.

Exemple :

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

Pour les types de machines N2D ou E2, utilisez la commande gcloud compute instances create et incluez l'une des options suivantes :

  • Les options --custom-cpu, --custom-memory et --custom-vm-type
  • L'option --machine-type=n2d-custom-NUMBER_OF_CPUS-NUMBER_OF_MB
  • L'option --machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB

Pour les types de machines personnalisés à cœur partagé E2, utilisez la même commande gcloud compute instances create en spécifiant la taille de la machine à cœur partagé : micro, small ou medium.

  • L'option --machine-type=e2-custom SHARED_CORE_MACHINE_SIZE-NUMBER_OF_MB

Exemple :

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

Lorsque vous utilisez l'option --custom-memory, spécifiez la quantité totale de mémoire en Go ou en Mo. La propriété doit être un nombre entier. Par conséquent, si vous souhaitez spécifier la quantité de mémoire par incréments de 0,25 Go, convertissez la valeur en Mo.

Pour spécifier une valeur incrémentielle, telle que 2,5 Go de mémoire, convertissez la valeur en Mo et indiquez la valeur suivie du suffixe Mo. L'exemple suivant crée une instance exécutant un type de machine E2 :

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

Vous pouvez également spécifier un type de machine personnalisé en utilisant le format suivant :

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

Remplacez l'élément suivant :

  • NUMBER_OF_CPUS : nombre de processeurs souhaités.
  • NUMBER_OF_MB : quantité de mémoire, exprimée en Mo.

Exemple :

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

API

Dans l'API, créez votre requête de création d'instance normalement, mais utilisez l'un des formats suivants lorsque vous indiquez la valeur machineType. Remplacez NUMBER_OF_CPUS par le nombre de processeurs et AMOUNT_OF_MEMORY_MB par la quantité de mémoire de votre choix. Indiquez la mémoire en Mo.

  • Pour les types de machines N1, utilisez :

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Pour les types de machines N2, utilisez :

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Pour les types de machines N2D, utilisez :

    zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Pour les types de machines E2, utilisez :

    zones/ZONE/machineTypes/e2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
    
  • Pour les types de machines personnalisés à cœur partagé E2, utilisez :

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

Par exemple, l'URL suivante crée une instance avec 4 processeurs virtuels et 5 Go (5 120 Mo) de mémoire :

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

Vous pouvez également créer des instances préemptives et des groupes d'instances avec des types de machines personnalisés.

Ajouter une extension de mémoire à un type de machine

Chaque type de machine dispose d'une quantité de mémoire spécifique par défaut. Par exemple, si vous créez une VM personnalisée N1, elle peut disposer de 6,5 Go de mémoire maximum par processeur virtuel. Pour les VM personnalisées N2, ce nombre augmente jusqu'à 8 Go de mémoire par processeur virtuel.

Pour certaines charges de travail, cette quantité de mémoire peut ne pas être suffisante. Moyennant un coût supplémentaire, vous pouvez obtenir plus de mémoire par processeur virtuel au-delà de la limite par défaut. C'est ce que l'on appelle une extension de mémoire.

Avec une extension de mémoire, vous pouvez ajouter de la mémoire à un type de machine sans limitation par processeur virtuel. Vous pouvez ajouter une extension de mémoire jusqu'à certaines limites en fonction du type de machine :

  • Pour les types de machines N1, vous pouvez ajouter au total jusqu'à 624 Go de mémoire par VM.
  • Pour les types de machines N2, vous pouvez ajouter au total jusqu'à 768 Go de mémoire par VM.
  • Pour les types de machines N2D, vous pouvez ajouter au total jusqu'à 768 Go de mémoire par VM.
  • L'extension de mémoire n'est pas disponible pour les types de machines E2.

Si vous avez besoin de plus de mémoire, vous devez utiliser l'un des types de machines à méga-mémoire, ce qui vous permet de créer des instances totalisant 1,4 To par instance de VM.

Déterminer si vous avez besoin d'une extension de mémoire

Certaines charges de travail nécessitent plus que la quantité de mémoire par défaut par processeur virtuel pour que des résultats optimaux puissent être obtenus. Les charges de travail basées sur des bases de données d'analyse hautes performances en mémoire, y compris les bases de données relationnelles et NoSQL telles que MS SQL Server, MongoDB et MemcacheD/Redis, entrent dans cette catégorie. Avec l'octroi de licences de systèmes d'exploitation et de piles logicielles basé sur les processeurs virtuels, il est également plus difficile de sélectionner une configuration de mémoire de VM optimale avec les types de machines prédéfinis. Avec une extension de mémoire, vous pouvez ajouter autant de mémoire que nécessaire à vos VM afin d'obtenir le meilleur rapport prix/performances.

Tarifs

Pour les types de machines personnalisés, les tarifs des types de machines personnalisés N1 ou les tarifs des types de machines personnalisés N2 s'appliquent jusqu'à la quantité de mémoire par défaut par processeur virtuel. Les types de machines personnalisés E2 et les types de machines personnalisés à cœur partagé E2 partagent le même plan tarifaire.

Pour une quantité de mémoire supérieure à celle par défaut, Compute Engine facture l'extension de mémoire en fonction des tarifs d'extension de mémoire personnalisée N1 ou des tarifs d'extension de mémoire personnalisée N2. Le prix de l'extension de mémoire est différent du prix appliqué pour la mémoire au-dessous du seuil par défaut.

Les prix de l'extension de mémoire varient selon les régions. Les instances exécutées à l'aide d'une extension de mémoire sont soumises à la même facturation minimale à la minute que toutes les autres instances. L'extension de mémoire est également éligible à des remises automatiques proportionnelles à une utilisation soutenue.

Pour en savoir plus, consultez les sections remises automatiques proportionnelles à une utilisation soutenue pour les types de machines personnalisés et tarifs d'extension de mémoire personnalisée.

Limites

  • Vous ne pouvez ajouter une extension de mémoire qu'aux types de machines personnalisés. Les types de machines prédéfinis ne sont pas pris en charge.
  • Vous pouvez ajouter autant de mémoire par processeur virtuel que vous le souhaitez, mais en respectant une quantité maximale par instance de VM. Pour les types de machines N1, vous pouvez ajouter jusqu'à 624 Go de mémoire. Pour les types de machines N2, vous pouvez ajouter jusqu'à 768 Go de mémoire. Pour les types de machines N2D, vous pouvez ajouter jusqu'à 768 Go de mémoire.
  • Les types de machines N2 et N2D ne sont disponibles que dans certaines régions et zones.
  • Vous devez spécifier la mémoire par incréments de 256 Mo.
  • L'extension de mémoire n'est pas éligible aux remises sur engagement d'utilisation.

Ajouter une extension de mémoire lors de la création de l'instance

Pour créer une instance de VM avec une extension de mémoire, suivez les instructions ci-dessous.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

  2. Dans la liste Zone, sélectionnez la zone dans laquelle vous souhaitez héberger cette VM. La liste Série est filtrée pour n'inclure que les familles de types de machines disponibles dans la zone sélectionnée.

  3. Dans la section Configuration de la machine, sélectionnez Usage général.

    1. Dans la liste Série, cliquez sur N1 dans Première génération pour les types de machines personnalisés N1, ou N2 ou N2D pour des types de machines personnalisés de Deuxième génération.
    2. Dans la liste Type de machine, sélectionnez Personnalisé.
    3. Pour spécifier le nombre de processeurs virtuels, faites glisser le curseur Cœurs ou saisissez la valeur souhaitée dans la zone de texte.
    4. Pour ajouter une extension de mémoire, sélectionnez Plus de mémoire, puis procédez comme suit :

      1. Pour spécifier la quantité de mémoire de l'instance de VM, faites glisser le curseur Mémoire ou saisissez la valeur souhaitée dans la zone de texte.

      La console indique une estimation du coût de la vVM lorsque vous modifiez le nombre de processeurs virtuels et la mémoire.

  4. Poursuivez la création de la VM.

gcloud

Pour les types de machines N1, utilisez la commande gcloud avec la sous-commande instances create, suivies de l'option --custom-extensions permettant d'activer l'extension de mémoire. Ensuite, spécifiez la mémoire totale de votre choix avec le paramètre --custom- memory.

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

Pour les types de machines N2, exécutez la commande gcloud avec la sous-commande instances create. Définissez les options --custom-extensions, --custom-cpu et --custom-memory, suivies de l'option --custom-vm-type, pour spécifier le type de machine N2 :

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

Pour les types de machines N2D, exécutez la commande gcloud avec la sous-commande instances create. Définissez les options --custom-extensions, --custom-cpu et --custom-memory, suivies de l'option --custom-vm-type, pour spécifier le type de machine N2D :

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

API

Dans l'API, créez votre requête de création d'instance normalement, mais utilisez l'un des formats suivants lorsque vous indiquez la valeur machineType :

  • Pour les types de machines N1, utilisez :

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Pour les types de machines N2, utilisez :

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Pour les types de machines N2D, utilisez :

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

Remplacez l'élément suivant :

  • NUMBER_OF_CPUS : nombre de processeurs virtuels.
  • AMOUNT_OF_MEMORY : quantité de mémoire, exprimée en Mo.

Par exemple, ce qui suit spécifie un type de machine N2 doté de 2 processeurs virtuels et de 20 Go de mémoire :

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

Ajouter une extension de mémoire à une instance de VM existante

Pour ajouter de la mémoire à une instance existante, commencez par arrêter l'instance. Une fois l'instance arrêtée, suivez les instructions ci-dessous pour ajouter de la mémoire à la VM.

Console

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Choisissez la VM arrêtée que vous souhaitez modifier dans la liste des VM.

  3. Cliquez sur Modifier en haut de la page.

  4. Dans Configuration de la machine, sélectionnez Usage général.

  5. Dans la liste Type de machine, sélectionnez Personnalisé.

  6. Sélectionnez le nombre de processeurs virtuels souhaité.

  7. Pour ajouter une extension de mémoire, sélectionnez Plus de mémoire, puis spécifiez la quantité de mémoire qui vous convient.

  8. Enregistrez les modifications.

gcloud

À l'aide de l'outil de ligne de commande gcloud, utilisez la sous-commande instances set-machine-type, suivie de l'option --custom-extensions associée au paramètre --custom-memory existant.

Par exemple, pour ajouter 2 Go de mémoire à une instance de VM nommée example-instance, qui possède actuellement un type de machine N1 doté de 2 processeurs virtuels et 13 Go de mémoire, dans la zone us-central1-b, utilisez la commande suivante :

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

API

Dans l'API, envoyez une requête POST à la méthode setMachineType en indiquant le type de machine de votre choix dans le corps de la requête. Utilisez l'un des formats suivants :

  • Pour les types de machines N1, utilisez :

    zones/ZONE/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Pour les types de machines N2, utilisez :

    zones/ZONE/machineTypes/n2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY-ext
    
  • Pour les types de machines N2D, utilisez :

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

Remplacez l'élément suivant :

  • NUMBER_OF_CPUS : nombre de processeurs virtuels.
  • AMOUNT_OF_MEMORY : quantité de mémoire, exprimée en Mo.

Par exemple, la requête suivante utilise un type de machine doté de 2 processeurs virtuels et de 15 Go de mémoire :

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

Exemple :

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"
}

Étape suivante