Utiliser et gérer des réservations

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document explique comment utiliser et gérer les réservations pour les ressources zonales Compute Engine. Les réservations offrent un niveau très élevé d'assurance pour l'obtention de la capacité des ressources zonales Compute Engine. Chaque réservation fournit une garantie pour une ou plusieurs instances de machine virtuelle (VM) ayant les mêmes propriétés. Pour en savoir plus, consultez la section Réservations de ressources zonales Compute Engine. Pour savoir comment créer une réservation, consultez la section Créer une réservation pour un seul projet ou Créer une réservation partagée.

Avant de commencer

Consommer des instances réservées

Lorsque vous créez une instance de machine virtuelle (VM), définissez la propriété d'affinité de réservation de l'instance pour choisir si celle-ci utilise n'importe quelle réservation correspondante disponible (par défaut), si elle utilise une réservation spécifique ou si elle n'utilise aucune réservation. La propriété d'affinité de réservation apparaît comme suit :

  • Section Utiliser avec une instance de VM dans la console Google Cloud
  • Option --reservation-affinity dans la CLI gcloud
  • Champ "reservationAffinity" dans l'API Compute Engine

Dans tous les cas, une VM ne peut utiliser une réservation que si toutes les propriétés suivantes de la VM et de la réservation correspondent exactement :

  • Projet
  • Zone
  • Type de machine
  • Configuration minimale de la plate-forme du CPU
  • Type et nombre de GPU
  • Type et nombre de disques SSD locaux

Pour qu'une instance soit utilisée à partir d'une réservation spécifique, cette réservation doit être créée avec la propriété de réservation spécifique requise correspondante.

Pour en savoir plus, consultez la section Fonctionnement des réservations.

Consommer des instances de toute réservation correspondante

Dans ce modèle de consommation, les instances existantes et nouvelles sont automatiquement comptabilisées dans la réservation si leurs propriétés correspondent à celles de l'instance réservée. Ce modèle est utile si vous créez et supprimez un grand nombre de VM et que vous souhaitez utiliser les réservations autant que possible.

Lorsque vous utilisez ce modèle de consommation, toutes les réservations à projet unique sont consommées avant les réservations partagées, car les plus récentes sont plus largement disponibles. Pour en savoir plus sur la consommation automatique des instances, consultez la page Ordre de consommation.

Pour utiliser ce modèle, excluez l'option --require-specific-reservation lors de la création de vos réservations, afin que les instances correspondantes puissent utiliser ces réservations automatiquement.

Console

  1. Créez une réservation avec des ressources qui peuvent être utilisées par les instances de VM ayant une propriété d'affinité de réservation configurée pour utiliser toutes les réservations (par défaut). Vous pouvez créer une réservation autonome ou associée à un engagement.

    1. Dans la console Google Cloud, accédez à la page Remises sur les engagements d'utilisation.

      Accéder aux remises sur engagement d'utilisation

    2. Créez une réservation en utilisant l'une des options suivantes:

      • Pour créer une réservation autonome, cliquez sur Créer une réservation.

      • Pour créer une réservation associée à un engagement, cliquez sur Souscrire un engagement. Après avoir spécifié les autres options, cliquez sur Ajouter un élément dans la section Réservations. Pour en savoir plus sur la souscription d'un engagement et d'une réservation associée, consultez la section Combiner les réservations et les remises sur engagement d'utilisation.

    3. Dans le champ Nom, saisissez le nom de la réservation. Pour cet exemple, saisissez reservation-01.

    4. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources. Pour cet exemple, sélectionnez la région us-central1 et us-central1-a pour la zone.

    5. Choisissez le type de partage souhaité:

      • Pour créer une réservation pour un seul projet, sélectionnez Local.
      • Pour créer une réservation partagée entre plusieurs projets, sélectionnez Partagé. Pour partager cette réservation avec d'autres projets, cliquez sur Ajouter des projets et sélectionnez les projets souhaités dans l'organisation du projet actuel.
    6. Sous Utilisation avec une instance de VM, sélectionnez Utiliser automatiquement une réservation afin que toutes les instances de VM correspondantes puissent utiliser automatiquement cette réservation.

    7. Dans le champ Nombre d'instances de VM, saisissez le nombre d'instances de VM que vous souhaitez réserver. Pour cet exemple, saisissez 2.

    8. Spécifiez les ressources que vous souhaitez réserver pour chaque instance de VM :

      • Si vous souhaitez réserver des VM correspondant à un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance, puis un modèle d'instance dans la liste.
      • Sinon, sélectionnez Spécifier un type de machine et spécifiez les éléments suivants :
        1. Dans les champs Famille de machines, Série et Type de machine, sélectionnez une famille de machines, une série et un type de machine.
        2. Facultatif: spécifiez une configuration minimale de plate-forme de processeur et/ou de GPU :
          1. Pour développer la section Plate-forme du processeur et GPU, cliquez sur la flèche de développement .
          2. Facultatif: pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme de processeur.
          3. Facultatif: pour ajouter des GPU, cliquez sur Ajouter un GPU. Ensuite, dans les champs Type de GPU et Nombre de GPU, sélectionnez le type et le nombre de GPU pour chaque VM.
        3. Facultatif: ajoutez des disques SSD locaux :
          1. Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux pour chaque VM.
          2. Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.

      Pour cet exemple, sélectionnez Spécifier un type de machine. Sélectionnez ensuite le type de machine n2-standard-32 pour la famille de machines General-purpose et la série N2, puis sélectionnez la configuration minimale de la plate-forme du processeur Intel Cascade Lake.

    9. Terminez la création de la réservation:

      • Si vous créez une réservation autonome, cliquez sur Créer.

      • Si vous créez une réservation associée à un engagement:

        1. Pour terminer la spécification des propriétés de cette réservation, cliquez sur OK.
        2. Pour terminer la création de l'engagement et des réservations associées, cliquez sur Acheter.
  2. Dans le même projet ou un projet avec lequel la réservation est partagée, créez une instance de VM qui cible toute réservation ouverte.

    Vérifiez que les propriétés de l'instance de VM correspondent aux propriétés de l'instance de VM dans reservation-01, y compris la zone, le type de machine (famille de machines, vCPU et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU ainsi que l'interface et la taille des disques SSD locaux.

    Pour en savoir plus sur la création d'une instance de VM, consultez la page Créer et démarrer une instance de VM .

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

      Accéder à la page Créer une instance

    2. Spécifiez un nom pour votre VM.

    3. Dans les sections suivantes, sélectionnez une configuration qui correspond exactement à toutes les propriétés de votre réservation, y compris les propriétés facultatives. Pour cet exemple, vous devez mettre en correspondance les propriétés d'instance de VM suivantes avec reservation-01:

      • Région : us-central1
      • Zone : us-central1-a
      • Type de machine : n2-standard-32
      • Configuration minimale de la plate-forme du CPU : Intel Cascade Lake
      • GPU: aucun
      • Disques SSD locaux: aucun
    4. Développez la section Mise en réseau, disques, sécurité, gestion et location unique, puis développez la section Gestion. Dans la liste Réservations, cliquez sur Utiliser automatiquement la réservation créée.

    5. Pour créer la VM, cliquez sur Créer.

gcloud

  1. Créez une réservation ouverte appelée reservation-01.

    gcloud compute reservations create reservation-01 \
        --vm-count=2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform "Intel Cascade Lake" \
        --zone=us-central1-a
    
  2. Créez une instance de VM ciblant toute réservation ouverte et correspondant aux propriétés d'instance de reservation-01, y compris la zone, le type de machine (famille de machines virtuelles et processeurs virtuels), la configuration minimale de la plate-forme du processeur, la quantité et le type de GPU, et la quantité et l'interface de SSD local.

    gcloud compute instances create instance-1 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform="Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=any
    

API

  1. Créez une réservation ouverte appelée reservation-01.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-01",
      "specificReservation":{
        "count":"2",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake",
        }
      },
      "specificReservationRequired": false
    }
    
  2. Créez une instance de VM ciblant toute réservation ouverte et correspondant aux propriétés d'instance de reservation-01, y compris la zone, le type de machine (famille de machines virtuelles et processeurs virtuels), la configuration minimale de la plate-forme du processeur, la quantité et le type de GPU, et la quantité et l'interface de SSD local.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-1",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "ANY_RESERVATION"
      },
      ...
    }
    

Consommer des instances d'une réservation spécifique

Dans ce modèle de consommation, seules les nouvelles instances qui ciblent une réservation spécifique par nom utilisent cette réservation. La réservation n'est donc pas utilisée automatiquement. Ce modèle peut être utile, par exemple lorsque vous souhaitez conserver une certaine capacité de sauvegarde pour des événements spéciaux.

Lors de la création de la réservation, spécifiez que les instances sont requises pour cibler la réservation spécifique en utilisant l'une des méthodes suivantes :

  • Dans la console Google Cloud, cochez la case Sélectionner une réservation spécifique.
  • Dans la CLI gcloud, incluez l'option --require-specific-reservation.
  • Dans l'API Compute Engine, définissez le champ specificReservationRequired sur true.

Ensuite, créez des VM qui ciblent spécifiquement cette réservation et qui correspondent à ses propriétés.

Si vous utilisez un modèle d'instance pour créer des VM dans un groupe d'instances géré régional, créez des réservations identiques portant le même nom dans chaque zone applicable. Ensuite, ciblez les réservations par leur nom dans le modèle d'instance du groupe.

Par exemple, créez une réservation spécifique nommée reservation-02, puis créez une instance correspondante qui cible cette réservation et qui correspond aux propriétés de l'instance de la réservation.

Selon le type d'instance que vous souhaitez utiliser, suivez les étapes pour la consommation d'une réservation pour un seul projet ou la consommation d'une réservation partagée spécifique.

Consommer une réservation spécifique à un seul projet

Pour consommer une réservation spécifique pour un seul projet, utilisez la console Google Cloud, la CLI gcloud ou l'API Compute Engine.

Console

  1. Créez une réservation avec des ressources qui ne peuvent être utilisées que par des instances de VM ciblant spécifiquement cette réservation par son nom. Vous pouvez créer une réservation autonome ou une réservation associée à un engagement.

    1. Dans la console Google Cloud, accédez à la page Remises sur les engagements d'utilisation.

      Accéder aux remises sur engagement d'utilisation

    2. Créez une réservation en utilisant l'une des options suivantes:

      • Pour créer une réservation autonome, cliquez sur Créer une réservation.

      • Pour créer une réservation associée à un engagement, cliquez sur Souscrire un engagement. Après avoir spécifié les autres options, cliquez sur Ajouter un élément dans la section Réservations. Pour en savoir plus sur la souscription d'un engagement et d'une réservation associée, consultez la section Combiner les réservations et les remises sur engagement d'utilisation.

    3. Dans le champ Nom, saisissez le nom de la réservation. Pour cet exemple, saisissez reservation-02.

    4. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources. Pour cet exemple, sélectionnez la région us-central1 et us-central1-a pour la zone.

    5. Pour spécifier que votre réservation sera une réservation pour un projet unique, sélectionnez Local comme Type de partage.

    6. Sous Utilisation avec une instance de VM, cochez la case Sélectionner une réservation spécifique afin que seules les instances de VM correspondantes ciblant spécifiquement cette réservation par son nom puissent l'utiliser.

    7. Dans le champ Nombre d'instances de VM, saisissez le nombre d'instances de VM que vous souhaitez réserver. Pour cet exemple, saisissez 10.

    8. Spécifiez les ressources que vous souhaitez réserver pour chaque instance de VM :

      • Si vous souhaitez réserver des VM correspondant à un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance, puis un modèle d'instance dans la liste.
      • Sinon, sélectionnez Spécifier un type de machine et spécifiez les éléments suivants :
        1. Dans les champs Famille de machines, Série et Type de machine, sélectionnez une famille de machines, une série et un type de machine.
        2. Facultatif: spécifiez une configuration minimale de plate-forme de processeur et/ou de GPU :
          1. Pour développer la section Plate-forme du processeur et GPU, cliquez sur la flèche de développement .
          2. Facultatif: pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme de processeur.
          3. Facultatif: pour ajouter des GPU, cliquez sur Ajouter un GPU. Ensuite, dans les champs Type de GPU et Nombre de GPU, sélectionnez le type et le nombre de GPU pour chaque VM.
        3. Facultatif: ajoutez des disques SSD locaux :
          1. Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux pour chaque VM.
          2. Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.

      Pour cet exemple, sélectionnez Spécifier un type de machine. Sélectionnez ensuite le type de machine n2-standard-32 pour la famille de machines General-purpose et la série N2, puis sélectionnez la configuration minimale de la plate-forme du processeur Intel Cascade Lake.

    9. Terminez la création de la réservation:

      • Si vous créez une réservation autonome, cliquez sur Créer.

      • Si vous créez une réservation associée à un engagement:

        1. Pour terminer la spécification des propriétés de cette réservation, cliquez sur OK.
        2. Pour terminer la création de l'engagement et des réservations associées, cliquez sur Acheter.
  2. Dans le même projet, créez une instance de VM qui cible la réservation spécifique par son nom.

    Vérifiez que les propriétés de l'instance de VM correspondent aux propriétés d'instance de VM de cette réservation spécifique, y compris la zone, le type de machine (famille de machines, vCPU et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et la taille et l'interface SSD locales.

    Pour en savoir plus sur la création d'une instance de VM, consultez la page Créer et démarrer une instance de VM .

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

      Accéder à la page Créer une instance

    2. Spécifiez un nom pour votre VM.

    3. Dans les sections suivantes, sélectionnez une configuration qui correspond exactement à toutes les propriétés de votre réservation, y compris les propriétés facultatives. Pour cet exemple, vous devez mettre en correspondance les propriétés d'instance de VM suivantes avec reservation-02:

      • Région : us-central1
      • Zone : us-central1-a
      • Type de machine : n2-standard-32
      • Configuration minimale de la plate-forme du CPU : Intel Cascade Lake
      • GPU: aucun
      • Disques SSD locaux: aucun
    4. Développez la section Mise en réseau, disques, sécurité, gestion et location unique, puis développez la section Gestion. Dans la liste Réservations, sélectionnez Sélectionner une réservation spécifique, puis le nom de la réservation avec les propriétés correspondantes que vous souhaitez que l'instance consomme. Pour cet exemple, sélectionnez reservation-02.

    5. Pour créer la VM, cliquez sur Créer.

gcloud

  1. Créez une réservation appelée reservation-02 avec l'option --require-specific-reservation. Ces ressources réservées ne peuvent être utilisées que par des instances qui ciblent spécifiquement cette réservation par son nom.

    gcloud compute reservations create reservation-02 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform "Intel Cascade Lake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --require-specific-reservation
    
  2. Créez une instance de VM qui cible reservation-02 par son nom en utilisant les options --reservation-affinity et --reservation.

    Vérifiez que les propriétés de l'instance correspondent bien aux propriétés d'instance de la réservation, y compris la zone, le type de machine (famille de machines, processeurs virtuels et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et l'interface et la taille des disques SSD locaux.

    gcloud compute instances create instance-2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform "Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=reservation-02
    

API

  1. Créez une réservation nommée reservation-02 avec le champ specificReservationRequired défini sur true.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake",
        }
      },
      "specificReservationRequired": true
    }
  2. Créez une instance de VM ciblant reservation-02 par son nom à l'aide du champ reservationAffinity.

    Vérifiez que les propriétés de l'instance correspondent bien aux propriétés d'instance de la réservation, y compris la zone, le type de machine (famille de machines, processeurs virtuels et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et l'interface et la taille des disques SSD locaux.

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values":
        ["reservations/reservation-02"
        ]
      },
      ...
    }

Consommer une réservation partagée spécifique

Pour utiliser une réservation partagée spécifique, utilisez la console Google Cloud, la CLI gcloud ou l'API Compute Engine.

Console

  1. Créez une réservation partagée avec des ressources qui ne peuvent être utilisées que par des instances de VM ciblant spécifiquement cette réservation par son nom. Vous pouvez créer une réservation partagée autonome ou une réservation partagée associée à un engagement.

    1. Dans la console Google Cloud, sélectionnez le projet propriétaire où vous souhaitez créer la réservation partagée et accédez à la page Remises sur engagement d'utilisation.

      Accéder aux remises sur engagement d'utilisation

    2. Créez une réservation en utilisant l'une des options suivantes:

      • Pour créer une réservation autonome, cliquez sur Créer une réservation.

      • Pour créer une réservation associée à un engagement, cliquez sur Souscrire un engagement. Après avoir spécifié les autres options, cliquez sur Ajouter un élément dans la section Réservations. Pour en savoir plus sur la souscription d'un engagement et d'une réservation associée, consultez la section Combiner les réservations et les remises sur engagement d'utilisation.

    3. Dans le champ Nom, saisissez le nom de la réservation. Pour cet exemple, saisissez reservation-02.

    4. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources. Pour cet exemple, sélectionnez la région us-central1 et us-central1-a pour la zone.

    5. Pour spécifier que votre réservation est une réservation partagée, sélectionnez Partagé comme type de partage.

    6. Cliquez sur Ajouter des projets, puis sélectionnez les projets de l'organisation du projet actuel avec lesquels vous souhaitez partager la réservation.

    7. Sous Utilisation avec une instance de VM, cochez la case Sélectionner une réservation spécifique afin que seules les instances de VM correspondantes ciblant spécifiquement cette réservation par son nom puissent l'utiliser.

    8. Dans le champ Nombre d'instances de VM, saisissez le nombre d'instances de VM que vous souhaitez réserver. Pour cet exemple, saisissez 10.

    9. Spécifiez les ressources que vous souhaitez réserver pour chaque instance de VM :

      • Si vous souhaitez réserver des VM correspondant à un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance, puis un modèle d'instance dans la liste.
      • Sinon, sélectionnez Spécifier un type de machine et spécifiez les éléments suivants :
        1. Dans les champs Famille de machines, Série et Type de machine, sélectionnez une famille de machines, une série et un type de machine.
        2. Facultatif: spécifiez une configuration minimale de plate-forme de processeur et/ou de GPU :
          1. Pour développer la section Plate-forme du processeur et GPU, cliquez sur la flèche de développement .
          2. Facultatif: pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme de processeur.
          3. Facultatif: pour ajouter des GPU, cliquez sur Ajouter un GPU. Ensuite, dans les champs Type de GPU et Nombre de GPU, sélectionnez le type et le nombre de GPU pour chaque VM.
        3. Facultatif: ajoutez des disques SSD locaux :
          1. Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux pour chaque VM.
          2. Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.

      Pour cet exemple, sélectionnez Spécifier un type de machine. Sélectionnez ensuite le type de machine n2-standard-32 pour la famille de machines General-purpose et la série N2, puis sélectionnez la configuration minimale de la plate-forme du processeur Intel Cascade Lake. 1. Terminez la création de la réservation:

      • Si vous créez une réservation autonome, cliquez sur Créer.

      • Si vous créez une réservation associée à un engagement:

        1. Pour terminer la spécification des propriétés de cette réservation, cliquez sur OK.
        2. Pour terminer la création de l'engagement et des réservations associées, cliquez sur Acheter.
  2. Dans le même projet ou le projet avec lequel la réservation est partagée, créez une instance de VM qui cible la réservation spécifique par son nom.

    Vérifiez que les propriétés de l'instance de VM correspondent aux propriétés d'instance de VM de cette réservation spécifique, y compris la zone, le type de machine (famille de machines, vCPU et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et la taille et l'interface SSD locales.

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

      Accéder à la page Créer une instance

    2. Spécifiez un nom pour votre VM.

    3. Dans les sections suivantes, sélectionnez une configuration qui correspond exactement à toutes les propriétés de votre réservation, y compris les propriétés facultatives. Pour cet exemple, vous devez mettre en correspondance les propriétés d'instance de VM suivantes avec reservation-02:

      • Région : us-central1
      • Zone : us-central1-a
      • Type de machine : n2-standard-32
      • Configuration minimale de la plate-forme du CPU : Intel Cascade Lake
      • GPU: aucun
      • Disques SSD locaux: aucun
    4. Développez la section Mise en réseau, disques, sécurité, gestion et location unique, puis développez la section Gestion. Dans la liste Réservations, sélectionnez Sélectionner une réservation spécifique, puis procédez comme suit :

      1. Sélectionnez un projet de réservation ayant des réservations partagées avec votre projet actuel. Pour cet exemple, sélectionnez le projet que vous avez utilisé pour créer reservation-02.
      2. Sélectionnez le nom de la réservation de la réservation partagée que vous souhaitez que cette instance de VM utilise. Pour cet exemple, sélectionnez reservation-02.
    5. Pour créer la VM, cliquez sur Créer.

gcloud

  1. Créez une réservation appelée reservation-02 avec l'option --require-specific-reservation. Ces ressources réservées ne peuvent être utilisées que par des instances qui ciblent spécifiquement cette réservation par son nom.

    gcloud compute reservations create reservation-02 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform "Intel Cascade Lake" \
        --vm-count=10 \
        --zone=us-central1-a \
        --project=my-owner-project \
        --share-setting=projects \
        --share-with=project-1,project-2 \
        --require-specific-reservation
    
  2. Créez une instance de VM qui cible reservation-02 par son nom en utilisant les options --reservation-affinity et --reservation. Pour utiliser cette réservation à partir de tous les projets clients avec lesquels cette réservation est partagée, vous devez également spécifier le projet qui a créé la réservation, my-owner-project.

    Vérifiez que les propriétés de l'instance correspondent bien aux propriétés d'instance de la réservation, y compris la zone, le type de machine (famille de machines, processeurs virtuels et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et l'interface et la taille des disques SSD locaux.

    gcloud compute instances create instance-2 \
        --machine-type=n2-standard-32 \
        --min-cpu-platform "Intel Cascade Lake" \
        --zone=us-central1-a \
        --reservation-affinity=specific \
        --reservation=projects/my-owner-project/reservations/reservation-02
    

API

  1. Créez une réservation nommée reservation-02 avec le champ specificReservationRequired défini sur true.

    POST https://compute.googleapis.com/compute/v1/projects/my-owner-project/zones/us-central1-a/reservations
    
    {
      "name":"reservation-02",
      "specificReservation":{
        "count":"10",
        "instanceProperties":{
          "machineType":"n2-standard-32",
          "minCpuPlatform": "Intel Cascade Lake"
        }
      },
      "shareSettings": {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap": {
          "project-1": {
            "projectId": "project-1"
          },
          "project-2": {
            "projectId": "project-2"
          }
        }
      }
      "specificReservationRequired": true
    }
  2. Créez une instance de VM ciblant reservation-02 par son nom à l'aide du champ reservationAffinity. Pour utiliser cette réservation à partir de tous les projets clients avec lesquels cette réservation est partagée, vous devez également spécifier le projet qui a créé la réservation, my-owner-project.

    Vérifiez que les propriétés de l'instance correspondent bien aux propriétés d'instance de la réservation, y compris la zone, le type de machine (famille de machines, processeurs virtuels et mémoire), la configuration minimale de la plate-forme du processeur, le type et la quantité de GPU et l'interface et la taille des disques SSD locaux.

    POST https://compute.googleapis.com/compute/v1/projects/project-2/zones/us-central1-a/instances
    
    {
      "name": "instance-2",
      "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
      "minCpuPlatform": "Intel Cascade Lake",
      "reservationAffinity":
      {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values":
        ["projects/my-owner-project/reservations/reservation-02"
        ]
      },
      ...
    }

Créer des instances sans consommer de réservation

Pour éviter explicitement de consommer des ressources issues de n'importe quelle réservation, définissez la propriété d'affinité de réservation de manière à ne pas utiliser de réservation lors de la création de la VM. Pour éviter implicitement d'utiliser l'une de vos réservations, vous pouvez également créer une instance qui ne corresponde aux propriétés d'instance d'aucune de vos réservations.

Console

  1. Créez une VM qui ne consomme pas de réservation explicitement.

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

      Accéder à la page Créer une instance

    2. Créez une VM. Pour en savoir plus, consultez la page Créer et démarrer une instance de VM.

    3. Développez la section Mise en réseau, disques, sécurité, gestion, location unique et procédez comme suit :

      1. Développez la section Gestion.
      2. Pour vous assurer que cette VM ne consomme pas de réservations existantes, sélectionnez Ne pas utiliser dans la liste Réservations.
    4. Cliquez sur Create (Créer).

gcloud

Créez une instance qui ne consomme pas de réservation explicitement.

gcloud compute instances create instance-3 --reservation-affinity=none

Vous pouvez également créer une instance qui ne corresponde aux propriétés d'instance d'aucune de vos réservations. Pour consulter les propriétés de votre réservation, reportez-vous à la section Répertorier et décrire les réservations.

API

Créez une instance qui ne consomme pas de réservation explicitement.

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances

{
  "machineType": "zones/us-central1-a/machineTypes/n2-standard-32",
  "name": "instance-3",
  "reservationAffinity":
  {
    "consumeReservationType": "NO_RESERVATION"
  },
  ...
}

Vous pouvez également créer une instance qui ne corresponde aux propriétés d'instance d'aucune de vos réservations. Pour consulter les propriétés de votre réservation, reportez-vous à la section Répertorier et décrire les réservations.

Dépannage

Découvrez comment vérifier la consommation des réservations et résoudre les problèmes liés à cette consommation.

Répertorier et décrire les réservations

Vous ne pouvez répertorier et décrire les réservations créées que par votre projet actuel. Par conséquent, les réservations partagées ne sont répertoriées que pour le projet propriétaire. Vous ne pouvez pas répertorier les réservations partagées avec un projet ni répertorier toutes les réservations d'une organisation. Vous pouvez également afficher la liste de tous les projets client d'une réservation partagée lorsque vous décrivez cette réservation. Pour obtenir des recommandations sur la gestion des réservations partagées, consultez la section Bonnes pratiques pour les réservations partagées.

Affichez la liste des réservations créées par votre projet et les détails de chaque réservation à l'aide de la console Google Cloud, de la CLI gcloud ou de l'API Compute Engine.

Console

  1. Dans la console Google Cloud, accédez à la page Remises sur les engagements d'utilisation.

    Accéder aux remises sur engagement d'utilisation

  2. Pour répertorier toutes les réservations créées dans le projet en cours, sélectionnez l'onglet Réservations.

    Dans la liste, chaque ligne décrit une réservation et chaque colonne décrit une propriété. Par exemple, la colonne Used machines (Machines utilisées) décrit l'utilisation et la capacité totale de chaque réservation : la valeur 25 (50) représente une réservation pour 50 instances, et 25 de ces instances ont été consommées et sont actuellement utilisées.

    Facultatif: Pour modifier les réservations et les propriétés affichées, utilisez Filtre et Options d'affichage des colonnes respectivement.

  3. Pour décrire toutes les propriétés d'une réservation, cliquez sur le nom d'une réservation dans la liste. La page Détails de la réservation s'affiche.

gcloud

Affichez la liste de vos réservations avec la commande gcloud compute reservations list :

gcloud compute reservations list [--filter="zone:('ZONE')"]

NAME             IN_USE_COUNT   COUNT   ZONE
reservation-04   25             50      us-central1-a
reservation-05   0              100     us-central1-b

Décrivez vos réservations avec la commande gcloud compute reservations describe :

gcloud compute reservations describe RESERVATION_NAME --zone=ZONE

kind: compute#reservation
name: reservation-04
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04
specificReservation:
  count: '50'
  inUseCount: '25'
  instanceProperties:
    guestAccelerators:
    - acceleratorCount: 1
      acceleratorType: nvidia-tesla-k80
    localSsds:
    - diskSizeGb: '375'
      interface: SCSI
    machineType: n1-standard-2
    minCpuPlatform: Any CPU Platform
specificReservationRequired: false
status: READY
zone: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a    

Vous pouvez utiliser les valeurs count et inUseCount pour déterminer l'utilisation de chaque réservation. Dans cet exemple, 50 instances sont réservées pour reservation-04, et 25 de ces instances ont été consommées à partir de la réservation et sont actuellement utilisées.

Pour créer une instance utilisant cette réservation, pensez à faire correspondre les propriétés d'instance de la réservation. Exemple :

gcloud compute instances create my-instance \
    --accelerator=type=nvidia-tesla-k80,count=1 \
    --local-ssd=size=375,interface=scsi \
    --machine-type n1-standard-2 \
    --zone us-central1-a 

API

Dans l'API, répertoriez vos réservations en envoyant une requête GET à la méthode reservations.list.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME

{
  "id": "4100668622331754141",
  "creationTimestamp": "2019-09-27T08:21:14.707-07:00",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-05",
  "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
  "name": "reservation-05",
  "specificReservation": {
    "instanceProperties": {
      "machineType": "n1-standard-2"
    },
    "count": "100",
    "inUseCount": "0"
  },
  "specificReservationRequired": false,
  "status": "READY",
  "kind": "compute#reservation"
},
{
  "id": "2533514314332214789",
  "creationTimestamp": "2019-09-27T08:21:14.707-07:00",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04",
  "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
  "name": "reservation-04",
  "specificReservation": {
    "instanceProperties": {
      "machineType": "n1-standard-2",
      "guestAccelerators": [
        {
          "acceleratorType": "nvidia-tesla-k80",
          "acceleratorCount": 1
        }
      ],
      "minCpuPlatform": "Any CPU Platform",
      "localSsds": [
        {
          "diskSizeGb": "375",
          "interface": "SCSI"
        }
      ]
    },
    "count": "50",
    "inUseCount": "25"
  },
  "specificReservationRequired": false,
  "status": "READY",
  "kind": "compute#reservation"
}

Décrivez une réservation en appelant la méthode reservations.get.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME

{
  "id": "2533514314332214789",
  "creationTimestamp": "2019-09-27T08:21:14.707-07:00",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04",
  "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-centra1-a",
  "name": "reservation-04",
  "specificReservationRequired": false,
  "status": "READY",
  "kind": "compute#reservation",
  "specificReservation": {
    "instanceProperties": {
      "machineType": "n1-standard-2",
      "guestAccelerators": [
        {
          "acceleratorType": "nvidia-tesla-k80",
          "acceleratorCount": 1
        }
      ],
      "minCpuPlatform": "Any CPU Platform",
      "localSsds": [
        {
          "diskSizeGb": "375",
          "interface": "SCSI"
        }
      ]
    },
    "count": "50",
    "inUseCount": "25"
  }
}

Vous pouvez utiliser les valeurs count et inUseCount pour déterminer l'utilisation de chaque réservation. Dans cet exemple, 50 instances sont réservées et 25 de ces instances ont été consommées à partir de la réservation et sont actuellement utilisées.

Modifier des réservations

Redimensionnez une réservation si vous souhaitez modifier le nombre de VM réservées. Modifiez les projets qui peuvent utiliser une réservation partagée si vous souhaitez limiter ou étendre la consommation.

Pour modifier les autres propriétés d'une réservation, commencez par créer une réservation, puis supprimez l'ancienne réservation.

Redimensionner une réservation

Vous pouvez redimensionner (à la hausse ou à la baisse) le nombre de VM dans une réservation à l'aide de gcloud CLI ou de l'API.

gcloud

Redimensionnez votre réservation à l'aide de la commande gcloud compute reservations update. Exemple :

Par exemple, supposons que vous créiez une réservation pour deux instances de VM :

gcloud compute reservations create reservation-01 \
    --machine-type=n2-standard-32 \
    --zone=us-central1-a \
    --vm-count=2

Pour redimensionner l'exemple de réservation de deux à 10 instances de VM, utilisez la commande suivante :

gcloud compute reservations update reservation-01 \
    --zone=us-central1-a \
    --vm-count=10

API

Dans l'API, envoyez une requête POST à la méthode reservations.resize et ajoutez la nouvelle valeur de specificSkuCount dans le corps de la requête. Le corps de requête suivant met à jour le nombre de VM de la réservation sur 10.

POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/zones/<var>ZONE</var>/reservations/<var>RESERVATION_NAME</var>/resize

{"specificSkuCount": "10"}

La requête de mise à jour aboutit s'il y a suffisamment de ressources dans la zone cible et de quotas dans la région cible au moment de la requête.

Modifier les projets clients d'une réservation partagée

Pour modifier les projets client d'une réservation partagée, utilisez la console Google Cloud, la CLI gcloud ou l'API Compute Engine. Vous pouvez voir les projets avec lesquels une réservation est partagée en décrivant la réservation.

Console

  1. Dans Google Cloud Console, accédez à la page Remises sur les engagements d'utilisation.

    Accéder aux remises sur engagement d'utilisation

  2. Sélectionnez l'onglet Réservations.

  3. Cliquez sur le nom de la réservation partagée dont vous souhaitez modifier les projets clients.

  4. Cliquez sur Modifier.

  5. Modifiez la liste des projets sélectionnés:

    • Pour arrêter de partager la réservation avec un projet client spécifique, cliquez sur Supprimer à côté du nom du projet.
    • Pour partager la réservation avec d'autres projets, cliquez sur Ajouter des projets et sélectionnez les projets de l'organisation du projet propriétaire avec lesquels vous souhaitez partager la réservation.
  6. Cliquez sur Enregistrer pour confirmer vos modifications dans la réservation partagée.

gcloud

À l'aide de la CLI gcloud, vous pouvez modifier la liste des projets pouvant consommer une réservation partagée en ajoutant des projets, en supprimant des projets ou en remplaçant la liste complète.

  • Pour ajouter un ou plusieurs projets à la liste des projets pouvant consommer une réservation partagée, utilisez la commande gcloud compute reservations update avec l'option --add-share-with.

    gcloud compute reservations update RESERVATION_NAME \
      --zone=ZONE \
      --project=OWNER_PROJECT_ID
      --add-share-with=CONSUMER_PROJECT_IDS \
    

    Remplacez les éléments suivants :

    • RESERVATION_NAME : nom de la réservation partagée que vous souhaitez modifier.
    • ZONE : zone dans laquelle la réservation a été créée.
    • OWNER_PROJECT_ID : ID du projet propriétaire, qui est le projet que vous avez utilisé pour créer cette réservation.
    • CONSUMER_PROJECT_IDS : une liste d'un ou de plusieurs ID de projet séparés par une virgule avec lesquels vous souhaitez partager cette réservation. Exemple : project-1,project-2. N'incluez pas la valeur OWNER_PROJECT_ID, qui est déjà par défaut autorisée à utiliser cette réservation.
  • Pour supprimer un ou plusieurs projets de la liste des projets pouvant consommer une réservation partagée, utilisez la commande gcloud compute reservations update avec l'option --remove-share-with.

    gcloud compute reservations update RESERVATION_NAME \
      --zone=ZONE \
      --project=OWNER_PROJECT_ID
      --remove-share-with=CONSUMER_PROJECT_IDS \
    

    Remplacez les éléments suivants :

    • RESERVATION_NAME : nom de la réservation partagée que vous souhaitez modifier.
    • ZONE : zone dans laquelle la réservation a été créée.
    • OWNER_PROJECT_ID : ID du projet propriétaire, qui est le projet que vous avez utilisé pour créer cette réservation.
    • CONSUMER_PROJECT_IDS : une liste d'un ou de plusieurs ID de projet séparés par une virgule avec lesquels vous souhaitez cesser de partager cette réservation. Exemple : project-1,project-2. Vous ne pouvez pas cesser de partager cette réservation avec OWNER_PROJECT_ID.
  • Pour remplacer la liste des projets pouvant consommer une réservation partagée, exécutez la commande gcloud compute reservations update avec l'option --share-with.

    gcloud compute reservations update RESERVATION_NAME \
      --zone=ZONE \
      --project=OWNER_PROJECT_ID
      --share-with=CONSUMER_PROJECT_IDS \
    

    Remplacez les éléments suivants :

    • RESERVATION_NAME : nom de la réservation partagée que vous souhaitez modifier.
    • ZONE : zone dans laquelle la réservation a été créée.
    • OWNER_PROJECT_ID : ID du projet propriétaire, qui est le projet que vous avez utilisé pour créer cette réservation.
    • CONSUMER_PROJECT_IDS : liste d'un ou de plusieurs ID de projets séparés par une virgule de tous les projets que vous souhaitez autoriser à consommer cette réservation (par exemple, project-1,project-2). Incluez tous les ID de projets clients existants avec lesquels vous souhaitez continuer à partager cette réservation, et omettez les ID de projet avec lesquels vous souhaitez cesser de partager cette réservation. Ajoutez ensuite tous les nouveaux ID de projets clients avec lesquels vous souhaitez également partager cette réservation. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas la valeur OWNER_PROJECT_ID, qui est déjà par défaut autorisée à utiliser cette réservation.

API

Dans l'API, envoyez une requête PATCH à la méthode reservations.update. Dans le corps de la requête, utilisez le champ shareSettings.projectMap pour remplacer la liste des projets avec lesquels cette réservation est partagée.

PATCH https://compute.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=sharedSettings.projects

{
  "shareSetting": {
    "shareType": "SPECIFIC_PROJECTS",
    "projectMap": {
      "CONSUMER_PROJECT_ID_1": {
        "projectId": "CONSUMER_PROJECT_ID_1"
      },
      "CONSUMER_PROJECT_ID_2": {
        "projectId": "CONSUMER_PROJECT_ID_2"
      }
    }
  }
}

Remplacez les éléments suivants :

  • OWNER_PROJECT_ID : ID du projet propriétaire, qui est le projet que vous avez utilisé pour créer cette réservation.
  • ZONE : zone dans laquelle la réservation a été créée.
  • RESERVATION_NAME : nom de la réservation que vous souhaitez modifier. Actuellement, il doit s'agir d'une réservation partagée.
  • CONSUMER_PROJECT_ID_1 et CONSUMER_PROJECT_ID_2 : ID de projet d'un ou de plusieurs projets avec lesquels vous souhaitez partager cette réservation. Incluez tous les ID de projets clients existants avec lesquels vous souhaitez continuer à partager cette réservation, et omettez les ID de projet avec lesquels vous souhaitez cesser de partager cette réservation. Ajoutez ensuite tous les nouveaux ID de projets clients avec lesquels vous souhaitez également partager cette réservation. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas la valeur OWNER_PROJECT_ID, qui est déjà par défaut autorisée à utiliser cette réservation.

Une fois que vous avez modifié les projets pouvant consommer une réservation, la consommation de cette réservation peut changer. Par exemple, tous les projets client supprimés cessent de consommer des ressources de cette réservation. En outre, si cette réservation a été configurée automatiquement pour être appliquée à toute instance nouvelle ou existante qui correspond aux propriétés de la réservation (comportement par défaut), tous les projets client ajoutés peuvent commencer à consommer des ressources de cette réservation. Si vous souhaitez surveiller la consommation de cette réservation, consultez la section Répertorier et décrire les réservations.

Supprimer une réservation

Vous pouvez supprimer des réservations qui ne sont pas liées à un engagement à l'aide de la console, de gcloud CLI ou de l'API.

Console

  1. Dans la console Google Cloud, accédez à la page Remises sur les engagements d'utilisation.

    Accéder aux remises sur engagement d'utilisation

  2. Cliquez sur Réservations pour afficher la liste de vos réservations.

  3. Cochez la case en regard du nom de chaque réservation que vous souhaitez supprimer.

  4. Cliquez sur Supprimer la réservation.

gcloud

Vous pouvez libérer des réservations en utilisant la commande delete :

gcloud compute reservations delete RESERVATION_NAME --zone ZONE

Remplacez les éléments suivants :

  • RESERVATION_NAME : nom de la réservation que vous souhaitez supprimer.
  • ZONE : zone où se trouve la réservation.

API

Dans l'API, envoyez une requête DELETE à la méthode reservation.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/zones/<var>ZONE</var>/reservations/<var>RESERVATION_NAME</var>

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet que vous avez utilisé pour créer cette réservation.
  • RESERVATION_NAME : nom de la réservation que vous souhaitez supprimer.
  • ZONE : zone où se trouve la réservation.

Une fois que la commande de suppression a abouti, la réservation n'est plus facturée et les ressources ne vous sont plus réservées. La suppression d'une réservation est sans effet sur les instances en cours d'exécution qui y sont associées. Les instances en cours d'exécution continuent de fonctionner et vous êtes toujours facturé pour ces instances.

Combiner les réservations et les remises sur engagement d'utilisation

Les remises sur engagement d'utilisation sont des prix fortement réduits pour vos ressources en échange d'engagements de ressources d'un an ou de trois ans, mais qui ne réservent pas de capacité dans des zones spécifiques. Les réservations garantissent que la capacité est maintenue dans des zones spécifiques même si les VM réservées ne sont pas en cours d'exécution. En associant des réservations à un engagement, vous pouvez obtenir des ressources réservées à prix réduit.

Vous devez créer et associer des réservations à votre engagement lors de votre première souscription. Vous pouvez associer plusieurs réservations à un même engagement, mais une réservation ne peut avoir qu'un seul engagement.

Après avoir acheté un engagement avec une réservation associée, vous ne pouvez pas supprimer la réservation pendant toute la durée de l'engagement. Lorsque votre engagement expire ou est annulé, Compute Engine supprime automatiquement toutes les réservations associées.

Toutefois, vous pouvez remplacer les réservations associées d'un engagement existantes par de nouvelles. Consultez la section Remplacer les réservations auxquelles des engagements sont associés pour en savoir plus sur ce qui peut et ne peut pas être modifié dans les réservations créées pour un engagement.

Ressources engagées ne nécessitant pas de réservations associées

Pour souscrire un engagement pour des processeurs virtuels et/ou de la mémoire, vous n'avez pas besoin de réserver ces ressources. Toutefois, vous pouvez toujours réserver des processeurs virtuels et/ou de la mémoire et associer la réservation à l'engagement si vous souhaitez que Compute Engine conserve la capacité de ces ressources comprises dans cet engagement. Pour savoir comment souscrire des engagements pour des processeurs virtuels et/ou de la mémoire sans les réserver, consultez la section Souscrire des engagements pour des types de machines.

Ressources engagées nécessitant des réservations associées

Pour souscrire un engagement pour des GPU et/ou des disques SSD locaux, vous devez également réserver ces ressources. Vous pouvez réserver vos GPU sur engagement et/ou vos disques SSD locaux à l'aide d'une seule ou de plusieurs réservations. Votre engagement pour les GPU et/ou les disques SSD locaux peut également inclure des processeurs virtuels et/ou de la mémoire, mais vous n'avez pas besoin de réserver ces processeurs virtuels ou la mémoire. Pour savoir comment souscrire des engagements contenant des GPU et/ou des disques SSD locaux, consultez la section Souscrire des engagements avec des réservations associées.

Réserver plus ou moins de ressources que prévu

Lorsque vous associez des réservations à votre engagement, vous pouvez réserver plus ou moins de quantités de processeurs virtuels et/ou de mémoire que vos engagements. Par exemple, lorsque vous souscrivez un engagement pour 30 Go de mémoire, vous pouvez réserver 10 Go de mémoire, 50 Go de mémoire ou même aucune mémoire. Toutefois, si votre engagement inclut des GPU et/ou des disques SSD locaux, vous devez réserver et associer le nombre exact de GPU et/ou de disques SSD locaux que vous vous engagez à utiliser. Par exemple, si vous souscrivez un engagement pour 30 Go de mémoire et 4 GPU, vous pouvez réserver la quantité de mémoire de votre choix, mais la réservation (ou la combinaison de réservations) que vous joignez doit possèdent exactement quatre GPU. Par conséquent, vous pouvez réserver et associer des processeurs virtuels et/ou de la mémoire même si vous ne les engagez pas, mais vous ne pouvez pas le faire pour les GPU et/ou les disques SSD locaux.

Souscrire des engagements avec des réservations associées

Lorsque vous souscrivez un engagement avec des réservations associées, assurez-vous que votre engagement et vos réservations répondent aux critères suivants :

  • L'engagement et les réservations associées doivent se trouver dans la même région.
  • La réservation doit correspondre à la même série de machines que l'engagement.
  • Si votre engagement comporte des GPU, le type de GPU dans la réservation et l'engagement doivent correspondre.
  • Pour les GPU et les SSD locaux, le nombre de ressources réservées de chaque type de ressource doit correspondre exactement au nombre de ressources validées pour ce type de ressource. Par exemple, si vous souhaitez souscrire un engagement pour 4 GPU V100, les réservations associées à votre engagement doivent comporter un total de 4 GPU V100. En revanche, la quantité de processeurs virtuels et de mémoire que vous réservez peut être supérieure ou inférieure à celle mentionnée dans l'engagement.
  • Dans le cas des GPU, souscrivez des engagements pour les types de GPU spécifiques que vous souhaitez utiliser. Par exemple, vous pouvez souscrire des engagements pour des GPU NVIDIA P100 ou NVIDIA V100, mais vous ne pouvez pas utiliser un engagement souscrit pour des GPU NVIDIA P100 afin de couvrir des GPU NVIDIA V100.

Souscrivez un engagement avec une réservation associée à l'aide de la console Google Cloud, de gcloud CLI ou de l'API.

Console

Avant de souscrire un engagement à l'aide de la console Google Cloud, sélectionnez le projet que vous souhaitez utiliser pour souscrire l'engagement. Si le partage de remises est activé sur un compte de facturation, vous pouvez utiliser n'importe quel projet associé à ce compte de facturation pour souscrire l'engagement. Après avoir sélectionné le projet, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Remises sur les engagements d'utilisation.

    Accéder aux remises sur engagement d'utilisation

  2. Pour souscrire un nouvel engagement, cliquez sur Souscrire un engagement.

  3. Nommezvotre engagement et sélectionnez la région dans laquelle vous souhaitez l'appliquer.

  4. Choisissez le Type d'engagement pour vos GPU et/ou vos disques SSD locaux:
    Usage général (N2) pour les types de machines N2
    Usage général (N2D) pour les types de machines N2D
    Usage général (N1) pour les types de machines N1
    Optimisé pour le calcul C2 pour les types de machines C2
    Optimisé pour les accélérateurs (A2) Pour les types de machines optimisés pour les accélérateurs

  5. Choisissez une durée d'engagement (un ou trois ans).

  6. Saisissez la quantité de cœurs ou de mémoire que vous souhaitez souscrire. Si vous ne souhaitez souscrire un engagement et n'effectuer une réservation que pour des GPU ou des disques SSD locaux sans acheter de processeurs virtuels ni de mémoire, spécifiez 0 pour les quantités de processeurs virtuels et de mémoire de l'engagement.

  7. Cliquez sur Ajouter des GPU, puis sélectionnez le type de GPU et le nombre de GPU pour lesquels vous souhaitez vous engager.

  8. Cliquez sur Ajouter un disque SSD local et indiquez le nombre de disques pour lequel vous souhaitez vous engager.

  9. Pour créer une réservation et l'associer à l'engagement, cliquez sur Ajouter un élément dans la section Réservations.

    1. Dans le champ Nom, saisissez le nom de la réservation.
    2. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources.
    3. Choisissez le type de partage souhaité :
      • Pour créer une réservation pour un seul projet, sélectionnez Local.
      • Pour créer une réservation partagée entre plusieurs projets, sélectionnez Partagé. Pour partager cette réservation avec d'autres projets, cliquez sur Ajouter des projets et sélectionnez les projets souhaités dans l'organisation du projet actuel.
    4. Dans le champ Utilisation avec une instance de VM, sélectionnez l'une des options suivantes:

      • Pour utiliser les ressources de cette réservation uniquement lors de la création de VM correspondantes qui ciblent spécifiquement cette réservation par son nom, choisissez Sélectionner une réservation spécifique.
      • Pour autoriser les instances de VM correspondantes à utiliser automatiquement cette réservation, sélectionnez Utiliser automatiquement une réservation.
    5. Dans le champ Nombre d'instances de VM, saisissez le nombre d'instances de VM que vous souhaitez réserver.

    6. Spécifiez les ressources que vous souhaitez réserver pour chaque instance de VM :

      • Si vous souhaitez réserver des VM correspondant à un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance, puis un modèle d'instance dans la liste.
      • Sinon, sélectionnez Spécifier un type de machine et spécifiez les éléments suivants :
        1. Dans les champs Famille de machines, Série et Type de machine, sélectionnez une famille de machines, une série et un type de machine.
        2. Facultatif: spécifiez une configuration minimale de plate-forme de processeur et/ou de GPU :
          1. Pour développer la section Plate-forme du processeur et GPU, cliquez sur la flèche de développement .
          2. Facultatif: pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme de processeur.
          3. Facultatif: pour ajouter des GPU, cliquez sur Ajouter un GPU. Ensuite, dans les champs Type de GPU et Nombre de GPU, sélectionnez le type et le nombre de GPU pour chaque VM.
        3. Facultatif: ajoutez des disques SSD locaux :
          1. Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux pour chaque VM.
          2. Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.
    7. Pour terminer la spécification des propriétés de cette réservation, cliquez sur OK.

  10. Cliquez sur le bouton Acheter pour souscrire l'engagement.

  11. Lisez les Conditions d'achat et cliquez à nouveau sur Acheter lorsque vous êtes prêt à souscrire l'engagement.

gcloud

Exécutez la commande gcloud compute commmitments create pour souscrire un engagement, et incluez des options pour créer une réservation associée.

Par exemple, l'engagement suivant inclut quatre GPU et une nouvelle réservation pour ces derniers à utiliser sur deux instances n1-standard-32 dans us-central1-a.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

Si vous souhaitez souscrire un engagement et effectuer une réservation pour des GPU ou des disques SSD locaux sans acheter de processeurs virtuels ni de mémoire, spécifiez 0 pour les quantités de processeurs virtuels et de mémoire de l'engagement.

gcloud compute commitments create commitment-01 \
    --region=us-west2 \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-2 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

Pour créer plusieurs réservations lors de la souscription d'un engagement, utilisez un fichier YAML contenant les propriétés des réservations. Exemple :

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

Par exemple, le fichier YAML suivant contient deux réservations. La première réservation, res-01, contient une instance n1-standard-2 avec un GPU. Il s'agit d'une réservation ciblée, ce qui signifie que vous devez cibler spécifiquement cette réservation pour utiliser ses instances réservées. La deuxième réservation, res-02, contient une instance de VM n1-standard-2 à laquelle deux types de disques SSD locaux sont associés.

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-2
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

API

Utilisez la méthode regionCommitments.insert et incluez le champ reservations pour définir les propriétés de la réservation. Par exemple, l'engagement suivant inclut quatre GPU et une réservation pour ces derniers à utiliser sur deux instances dans us-central1-a.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

Si vous ne souhaitez souscrire un engagement et n'effectuer une réservation que pour des GPU ou des disques SSD locaux sans acheter de processeurs virtuels ni de mémoire, spécifiez 0 pour les quantités de processeurs virtuels et de mémoire de l'engagement. Exemple :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

L'engagement avec les réservations associées n'est créé que s'il y a suffisamment de ressources du type de machine spécifié dans la zone cible et des quotas suffisants au moment de la requête.

Lorsque vous créez un engagement auquel une réservation est associée, vous ne pouvez pas supprimer la réservation pendant toute la durée de l'engagement. Lorsque votre engagement expire, Compute Engine supprime automatiquement toutes les réservations associées. La suppression des réservations n'a aucun effet sur les instances en cours d'exécution qui y sont liées. Les instances en cours d'exécution continuent de fonctionner et vous êtes toujours facturé pour ces instances.

Si vous devez modifier les propriétés de vos réservations avec engagement, consultez la section Modifier les réservations auxquelles des engagements sont associés.

Remplacer les réservations auxquelles des engagements sont associés

Remplacez les réservations associées existantes par de nouveaux engagements si vous souhaitez modifier les types et les nombres de VM utilisant vos ressources comprises dans cet engagement. Lorsque vous remplacez la réservation associée existante d'un engagement par une nouvelle réservation, vous pouvez apporter les modifications suivantes :

  • Vous pouvez réserver des VM d'un autre type de machine. Toutefois, vous devez toujours réserver des VM de la même famille de machines pour continuer à bénéficier de remises sur engagement d'utilisation pour vos ressources réservées.
  • Vous pouvez modifier le nombre de VM que vous souhaitez réserver.
  • Vous pouvez modifier la quantité de GPU et de disques SSD locaux associés par VM.

Vous ne pouvez remplacer qu'une seule réservation associée à la fois par une seule réservation associée. Vous pouvez spécifier que les réservations remplacées sont des réservations locales ou partagées.

Lorsque vous remplacez la réservation associée à votre engagement par une nouvelle réservation, assurez-vous que votre nouvelle réservation répond aux exigences suivantes :

  • La nouvelle réservation doit se trouver dans le même projet que l'engagement.

  • La nouvelle réservation doit se trouver dans la même zone que la réservation d'origine.

  • Le nombre et les types de GPU dans la nouvelle réservation doivent correspondre à ceux de la réservation d'origine.

  • Le nombre et les types de disques SSD locaux dans la nouvelle réservation doivent correspondre à ceux de la réservation d'origine.

  • Vous ne pouvez modifier que 100 VM par requête. Pour apporter une modification impliquant plus de 100 VM, divisez la modification en plusieurs requêtes plus petites ou contactez l'assistance Google Cloud.

Vous pouvez remplacer les réservations d'un engagement à l'aide de la CLI gcloud ou de l'API. Après avoir créé les réservations, vous pouvez apporter toutes les modifications correspondantes à vos VM.

gcloud

Utilisez la commande gcloud beta compute commitments update-reservations pour mettre à jour les réservations auxquelles des engagements sont associés.

Par exemple, supposons que vous créiez un engagement avec la réservation suivante :

  • res-1 dispose de quatre instances n1-standard-2, chacune avec un GPU P100 (un total de huit processeurs virtuels et quatre GPU P100). Le total des ressources réservées comprend les quatre GPU P100.

Vous pouvez créer l'exemple d'engagement à l'aide de la commande suivante :

gcloud beta compute commitments create my-commitment-with-reservations \
    --region=asia-east1 \
    --resources=vcpu=10,memory=32GB \
    --resources-accelerator=type=nvidia-tesla-p100,count=4 \
    --plan 12-month \
    --reservations-from-file=one-reservation.yaml

où le fichier one-reservation.yaml contient les éléments suivants :

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 4
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-p100

Vous pouvez mettre à jour l'exemple d'engagement pour remplacer la réservation associée existante par une nouvelle. Pour cet exemple, supposons que vous souhaitiez remplacer la réservation associée res-1 par une nouvelle réservation res-2. Pour ce faire, procédez comme suit :

  • Supprimez res-1 ayant quatre instances n1-standard-2, chacune avec un GPU P100 (un total de huit processeurs virtuels et quatre GPU P100).
  • Créez et associez res-2 avec deux instances n1-standard-2, chacune avec deux GPU P100 (un total de quatre processeurs virtuels et quatre GPU P100).

Le nombre total de GPU réservés dans l'engagement reste constant et s'élève à 4.

Pour effectuer l'exemple de mise à jour, utilisez la commande suivante :

gcloud beta compute commitments update-reservations my-commitment-with-reservations \
    --region=us-central1 \
    --reservations-from-file=two-reservations.yaml

où le fichier two-reservations.yaml contient les éléments suivants :

- reservation: res-1
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-p100
- reservation: res-2
  reservation_zone: asia-east1-a
  require_specific_reservation: true
  vm_count: 3
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-p100

API

Utilisez la méthode regionCommitments.updateReservations.

Par exemple, supposons que vous créiez un engagement avec la réservation suivante :

  • res-1 dispose de quatre instances n1-standard-2, chacune avec un GPU nvidia-tesla-p100 (huit processeurs virtuels et quatre GPU P100). Le total des ressources réservées comprend les quatre GPU P100.

Vous pouvez créer l'exemple d'engagement à l'aide de la commande suivante :

POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations

{
  "name": "my-commitment-with-reservation",
  "plan": "TWELVE_MONTH",
  "reservations":
  [
    {
      "name": "res-1",
      "specificReservation":
      {
        "count": "4",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    }
  ],
  "resources":
  [
    {
      "amount": "10",
      "type": "VCPU"
    },
    {
      "amount": "32768",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ]
}

Vous pouvez mettre à jour l'exemple d'engagement pour remplacer la réservation associée existante par une nouvelle réservation.

Par exemple, supposons que vous souhaitiez remplacer la réservation associée res-1 par une nouvelle réservation à projet unique res-2, en procédant comme suit :

  • Supprimez res-1 ayant quatre instances n1-standard-2, chacune avec un GPU P100 (un total de huit processeurs virtuels et quatre GPU P100).
  • Créez et associez res-2 avec deux instances n1-standard-2, chacune avec deux GPU P100 (un total de quatre processeurs virtuels et quatre GPU P100).

Le nombre total de GPU réservés dans l'engagement reste constant et s'élève à 4.

Pour effectuer l'exemple de mise à jour, utilisez la requête API suivante :

POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations

{
  "reservations":
  [
    {
      "name": "res-2",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    }
  ]
}

Vous pouvez également mettre à jour l'exemple d'engagement pour remplacer la réservation associée existante par une nouvelle réservation partagée. Supposons que vous souhaitiez remplacer la réservation à projet unique associée res-1 avec réservation res-3 qui est partagée avecproject-1 et project-2, vous pouvez le faire à l'aide de la requête API suivante :

POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations

{
  "reservations":
  [
    {
      "name": "res-3",
      "specificReservation":
      {
        "count": "6",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-p100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "shareSettings": {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap": {
          "project-1": {
            "projectId": "project-1"
          },
          "project-2": {
            "projectId": "project-2"
          }
        }
      },
      "specificReservationRequired": true,
      "zone": "asia-east1-a"
    }
  ]
}

Afficher les rapports d'utilisation des réservations

Exportez des rapports détaillés sur votre utilisation de Compute Engine vers un bucket Cloud Storage à l'aide de la fonctionnalité d'exportation de l'utilisation. Pour plus d'informations, reportez-vous à la section Afficher les rapports d'utilisation.

Le rapport d'utilisation indique les éléments suivants :

  • Ressources réservées en cours d'utilisation. Ces entrées apparaissent comme des ressources "processeur virtuel", "mémoire", "GPU" et "SSD local" normales.
  • Ressources réservées qui ne sont pas utilisées. Ces entrées ont des codes SKU normaux et des URI de ressources de type "réservation".
  • Total des ressources réservées. Ces entrées ont des codes SKU et des URI de ressource de type "réservation". Aucun coût n'est associé à ces entrées. Utilisez ces entrées pour calculer la quantité de réservations que vous utilisez.
Mesure Format MeasurementId Format Resource URI
Ressources réservées en cours d'utilisation com.google.cloud/services/compute-engine/SKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/RESOURCE_TYPE/RESOURCE_NAME.

Par exemple, https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/my-instance
Ressources réservées non utilisées com.google.cloud/services/compute-engine/SKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME.

Par exemple, https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation
Total des ressources réservées com.google.cloud/services/compute-engine/ReservationSKU_NAME https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME.

Par exemple, https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-b/reservations/my-reservation

Par exemple, dans l'extrait de rapport d'utilisation pour une réservation nommée my-reservation présenté ci-dessous :

  • La ligne 1 indique la quantité de mémoire RAM réservée actuellement utilisée. L'ID de ressource (ResourceId) de la ligne indique que cette mémoire RAM est utilisée par une instance nommée my-instance.
  • La ligne 2 indique la quantité de mémoire RAM réservée qui n'est pas utilisée. L'ID de ressource (ResourceId) de la ligne indique que cette mémoire RAM réservée est conservée par my-reservation ; elle n'est pour l'instant utilisée par aucune instance.
  • La ligne 3 indique la quantité totale de mémoire réservée pour la réservation.
Report Date,MeasurementId,Quantity,Unit,Resource URI,ResourceId,Location
2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/instances/my-instance,1775485842510981624,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/VmimageN2StandardRam,166970074857472,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
2019-06-06,com.google.cloud/services/compute-engine/ReservationN2StandardRam,333940149714944,byte-seconds,https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central2-a/reservations/my-reservation,7.58809E+17,us-central2-a
...

Étape suivante