Réserver des ressources zonales Compute Engine

Créez des réservations pour des instances de VM dans une zone spécifique, à l'aide de machines personnalisées ou prédéfinies, avec ou sans GPU supplémentaires ou SSD locaux. Vous pourrez ainsi vous assurer que des ressources sont disponibles pour vos charges de travail quand vous en aurez besoin. Après avoir créé une réservation, payez immédiatement les ressources réservées. Elles restent disponibles pour une utilisation indéfinie jusqu'à la suppression de la réservation.

Utilisez les réservations pour vous assurer que votre projet dispose des ressources nécessaires pour répondre aux futures demandes croissantes, y compris les pics prévus ou non, la migration d'un grand nombre de VM, la sauvegarde et la reprise après sinistre, ou pour la croissance et la mise en mémoire tampon planifiées.

Lorsque vous n'avez plus besoin d'une réservation, supprimez-la pour ne plus encourir de frais. Étant donné que les réservations consomment des ressources tout comme les VM normales, chaque réservation est facturée en fonction des tarifs à la demande existants, qui incluent les remises automatiques proportionnelles à une utilisation soutenue et sont éligibles aux remises sur engagement d'utilisation.

Avant de commencer

Avantages

Les réservations offrent les avantages suivants :

  • Réservez les machines de sorte qu'elles soient toujours disponibles, même si vous ne les utilisez pas immédiatement.
  • Créez une réservation à tout moment et supprimez-la à tout moment pour ne plus payer.

  • Les réservations sont facturées de la même manière et au même tarif que les ressources réservées. Par conséquent, les ressources réservées peuvent bénéficier de remises sur engagement d'utilisation et de remises automatiques proportionnelles à une utilisation soutenue.

Limites et restrictions

Les réservations sont soumises aux limites et restrictions suivantes :

  • Les réservations ne s'appliquent qu'à l'utilisation des VM Compute Engine, Dataproc et Google Kubernetes Engine.
  • Les réservations ne s'appliquent pas aux types de machines f1-micro ou g1-small, aux VM préemptives, aux nœuds à locataire unique ni à d'autres services non répertoriés ci-dessus, tels que Cloud SQL et Dataflow.
  • Vous pouvez réserver jusqu'à 1 000 instances de VM par réservation.
  • Vous devez avoir un quota suffisant dans votre projet pour les ressources que vous réservez. Si la réservation aboutit, le quota de cette ressource est facturé en conséquence.
  • Les ressources sont allouées lors de la création de la réservation. S'il n'y a pas assez de ressources dans la zone au moment de la requête, la réservation échoue et une erreur de capacité insuffisante s'affiche.
  • En cas de cumul avec une remise sur engagement d'utilisation :
    • Pour les tarifs des remises sur engagement d'utilisation pour les GPU et les SSD locaux, une réservation doit être créée lors de l'achat de l'engagement.
    • Si la réservation est associée à un engagement, elle ne peut pas être supprimée.
    • Vous ne pouvez souscrire un engagement d'un an que sur les GPU K80.
  • Les réservations qui ne sont pas associées à une remise sur engagement d'utilisation peuvent être conservées pendant une durée indéterminée, mais les mêmes coûts minimaux d'une minute que ceux pratiqués pour les instances standards s'appliquent.

Fonctionnement des réservations

Créez des réservations pour réserver les instances de VM dont vous avez besoin. Une fois que vous avez créé une réservation, celle-ci garantit que ces ressources sont toujours disponibles pour vous. Au cours du processus de création, vous pouvez choisir le mode d'utilisation d'une réservation. Par exemple, vous pouvez choisir d'appliquer automatiquement une réservation à toute instance nouvelle ou existante qui correspond aux propriétés de la réservation (comportement par défaut), ou spécifier que seule une instance de VM spécifique peut utiliser une réservation.

Dans tous les cas, une instance de VM ne peut utiliser une réservation que si ses propriétés correspondent exactement aux propriétés de la réservation. En particulier, pour qu'une instance consomme une réservation, elle doit correspondre aux propriétés de la réservation pour les éléments suivants :

  • Zone
  • Type de machine (cœurs et mémoire)
  • Configuration minimum de la plate-forme du processeur
  • Type de GPU
  • Nombre de GPU
  • Interface des disques SSD locaux
  • Taille des disques SSD locaux

Si une instance de VM correspond aux propriétés d'une réservation, le comportement par défaut est que toutes les instances de VM existantes et nouvelles consomment automatiquement la réservation, sauf indication contraire. Par exemple, par défaut, si vous créez une réservation pour 10 instances custom-8-10240 et que vous avez déjà cinq instances custom-8-10240 correspondantes, ces cinq instances consomment cinq des réservations. Si vous créez trois instances correspondantes supplémentaires, trois autres réservations sont utilisées.

Vous pouvez ignorer ce comportement par défaut en spécifiant certaines options lors de la création des réservations et des instances.

  • Pour créer une réservation que vous ne souhaitez pas consommer automatiquement, utilisez l'option specificReservationRequired. Ces réservations ne peuvent être utilisées que si vous spécifiez explicitement la réservation lors de la création d'une instance.
  • Pour indiquer que vous souhaitez qu'une instance consomme une réservation, utilisez l'option reservationAffinity lors de la création de l'instance ou dans le modèle d'instance. Vous pouvez spécifier qu'une instance consomme automatiquement toute réservation correspondante, qu'elle ne consomme pas automatiquement les réservations correspondantes ou qu'elle ne consomme qu'une réservation spécifique.

Si vous arrêtez ou supprimez une instance qui utilise une réservation, l'instance n'est plus comptabilisée dans la réservation et les ressources réservées sont de nouveau disponibles.

Si vous supprimez une réservation, mais que vous ne supprimez pas les instances qui utilisent les ressources réservées, les instances persistent et vous payez normalement.

Créer une réservation

Créez une réservation pour des instances de VM à l'aide de la console, de l'outil de ligne de commande gcloud ou de l'API. Par défaut, les instances de VM qui correspondent aux propriétés d'une réservation consomment automatiquement cette réservation. Pour créer une réservation qui n'est pas consommée automatiquement, utilisez l'option specificReservationRequired.

Il n'est pas nécessaire de créer un engagement pour réserver des ressources. Toutefois, si vous souhaitez obtenir des remises sur engagement d'utilisation pour les GPU et les SSD locaux, vous devez créer une réservation incluant ces ressources lors de la souscription de l'engagement. Pour en savoir plus, consultez la section Combiner les réservations et les remises sur engagement d'utilisation.

Console

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

    Accéder à la page Remises sur les engagements d'utilisation

  2. Cliquez sur Créer une réservation pour créer une réservation autonome sans engagement parent.

  3. Nommez votre réservation.

  4. Si vous souhaitez n'utiliser les ressources de cette réservation que lors de la création d'instances correspondantes qui ciblent spécifiquement cette réservation par son nom, choisissez Sélectionner une réservation spécifique sous Utilisation avec une instance de VM.

  5. Sélectionnez la région et la zone dans lesquelles vous souhaitez réserver des ressources.

  6. Spécifiez le nombre d'instances de VM que vous souhaitez réserver.

  7. Spécifiez les ressources que vous souhaitez réserver pour chaque instance :

    • Si vous disposez d'un modèle d'instance, cliquez sur Utiliser un modèle d'instance et sélectionnez un modèle d'instance dans la liste.
    • Sinon, cliquez sur Spécifier un type de machine.
    • Pour utiliser des types de machines prédéfinis, sélectionnez ce dont vous avez besoin dans la liste déroulante.
    • Pour utiliser des types de machines personnalisés (y compris pour définir la configuration minimale de la plate-forme du processeur) ou pour ajouter des GPU, cliquez sur Personnaliser et sélectionnez les éléments dont vous avez besoin.
    • Indiquez éventuellement le nombre de disques SSD locaux à ajouter à chaque instance, ainsi que le type d'interface à utiliser.
  • Cliquez sur le bouton Créer pour créer la réservation.

  • gcloud

    Utilisez la commande gcloud compute reservations create pour créer une réservation.

    gcloud compute reservations create [RESERVATION_NAME] \
            --machine-type=[MACHINE_TYPE] \
            --min-cpu-platform [MINIMUM_CPU_PLATFORM] \
            --vm-count=[NUMBER_OF_VMS] \
            --accelerator=count=[NUMBER_OF_ACCELERATORS],type=[ACCELERATOR_TYPE] \
            --local-ssd=size=[SIZE_IN_GB],interface=[INTERFACE] \
            --require-specific-reservation \
            --zone=[ZONE]
        

    Où :

    • [RESERVATION_NAME] est le nom de la réservation à créer.
    • [MACHINE_TYPE] correspond au type de machine. Exemple : n1-standard-1. Pour les types de machines personnalisés, utilisez le format custom-[CPUS]-[MEMORY] où :
      • [CPUS] est le nombre de processeurs virtuels.
      • [MEMORY] est la mémoire totale de cette instance. La mémoire doit être un multiple de 256 Mo et doit être fournie en Mo. Par exemple, 5 Go de mémoire correspondent à 5 120 Mo : custom-4-5120. Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.
    • [MINIMUM_CPU_PLATFORM] est la configuration minimale du processeur à utiliser pour chaque instance.
    • [NUMBER_OF_VMS] est le nombre d'instances de VM à réserver.
    • [NUMBER_OF_ACCELERATORS] est le nombre de GPU à ajouter, par instance.
    • [ACCELERATOR_TYPE] correspond au type d'accélérateur.
    • [SIZE_IN_GB] correspond au montant en Go du disque SSD local à associer à chaque instance. Le montant doit être un multiple de 375.
    • [INTERFACE] correspond au type d'interface que le SSD local doit utiliser pour chaque instance. Les options valides sont : scsi et nvme.
    • [ZONE] est la zone dans laquelle vous devez réserver des ressources.

    Vous pouvez également ajouter l'option --require-specific-reservation pour indiquer que seules les instances de VM qui ciblent explicitement cette réservation peuvent l'utiliser. Pour en savoir plus sur les options de configuration pour l'utilisation des ressources réservées, consultez la section Fonctionnement des réservations.

    Par exemple, pour effectuer une réservation dans us-central1-a qui n'est utilisable que lorsque cette réservation est spécifiquement ciblée, utilisez une commande semblable à la suivante. Cet exemple réserve 10 machines personnalisées, chacune dotée de huit processeurs virtuels Intel Haswell (ou plus récents), de 10 Go de mémoire, de deux GPU V100 et d'un disque SSD local de 375 Go :

    gcloud compute reservations create my-reservation \
            --machine-type=custom-8-10240 \
            --min-cpu-platform "Intel Haswell" \
            --vm-count=10 \
            --accelerator=count=2,type=nvidia-tesla-v100 \
            --local-ssd=size=375,interface=scsi \
            --require-specific-reservation \
            --zone us-central1-c

    Pour afficher la liste de toutes les options disponibles, consultez la documentation de référence de gcloud compute reservations create.

    API

    Dans l'API, envoyez une requête POST à la méthode reservations.insert. Dans le corps de la requête, incluez les paramètres suivants :

    POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations
    
        {
          "name":"[RESERVATION_NAME]",
          "specificReservation":{
            "count":"[NUMBER_OF_VMS]",
            "instanceProperties":{
              "machineType":"[MACHINE_TYPE]",
              "minCpuPlatform": "[MINIMUM_CPU_PLATFORM]",
              "guestAccelerators":[
                {
                  "acceleratorCount":"[NUMBER_OF_ACCELERATORS]",
                  "acceleratorType":"[ACCELERATOR_TYPE]"
                }
              ],
              "localSsds":[
                {
                  "diskSizeGb":"[SIZE_IN_GB]",
                  "interface":"[INTERFACE]"
                }
              ]
            }
          }
        }

    Où :

    • [PROJECT_ID] correspond à l'ID de projet de cette requête.
    • [ZONE] est la zone dans laquelle vous devez réserver des ressources.
    • [RESERVATION_NAME] est le nom de la réservation à créer.
    • [NUMBER_OF_VMS] est le nombre d'instances de VM à réserver.
    • [MACHINE_TYPE] est un type de machine prédéfini ou personnalisé. Par exemple, n1-standard-1. Pour les types de machines personnalisés, utilisez le format custom-[CPUS]-[MEMORY] où :
      • [CPUS] est le nombre de processeurs virtuels.
      • [MEMORY] est la mémoire totale de cette instance. La mémoire doit être un multiple de 256 Mo et doit être fournie en Mo. Par exemple, 5 Go de mémoire correspondent à 5 120 Mo : custom-4-5120. Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.
    • [MINIMUM_CPU_PLATFORM] est la configuration minimale du processeur à utiliser pour chaque instance.
    • [NUMBER_OF_ACCELERATORS] est le nombre de GPU à ajouter, par instance.
    • [ACCELERATOR_TYPE] correspond au type d'accélérateur.
    • [SIZE_IN_GB] correspond au montant en Go du disque SSD local à associer à chaque instance. Le montant doit être un multiple de 375.
    • [INTERFACE] correspond au type d'interface que le SSD local doit utiliser pour chaque instance. Les options valides sont : scsi et nvme.

    Incluez éventuellement le champ booléen specificReservationRequired pour spécifier que seules les instances de VM qui ciblent spécifiquement cette réservation par son nom peuvent l'utiliser. Pour en savoir plus sur les options de configuration permettant d'utiliser les instances dans vos réservations, reportez-vous à la section Fonctionnement des réservations.

    Par exemple, pour effectuer une réservation dans us-central1-a qui n'est utilisable que lorsque cette réservation est spécifiquement ciblée, utilisez une commande semblable à la suivante. Cet exemple réserve 10 machines personnalisées, chacune dotée de huit processeurs virtuels Intel Haswell (ou plus récents), de 10 Go de mémoire, de deux GPU V100 et d'un disque SSD local de 375 Go :

    POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations
    
        {
          "name": "reservation-1",
          "specificReservation":
          {
            "count": "10",
            "instanceProperties":
            {
              "machineType": "custom-8-10240",
              "minCpuPlatform": "Intel Haswell",
              "guestAccelerators":
              [
                {
                  "acceleratorCount": 2,
                  "acceleratorType": "nvidia-tesla-v100"
                }
              ],
              "localSsds":
              [
                {
                  "diskSizeGb": "375",
                  "interface": "SCSI"
                }
              ]
            }
          },
          "specificReservationRequired": true
        }

    Consommer des instances réservées

    Lorsque vous créez une instance, définissez l'option 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. Pour qu'une instance soit utilisée à partir d'une réservation spécifique, cette réservation doit être créée avec l'option de réservation spécifique requise correspondante.

    Pour utiliser la réservation, les instances que vous créez doivent correspondre aux propriétés de l'instance de cette réservation. Consultez la section Fonctionnement des réservations.

    Consommer des instances de toute réservation correspondante

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

    Lors de la création de vos réservations, excluez l'option --require-specific-reservation afin que les instances correspondantes puissent utiliser ces réservations automatiquement.

    Console

    1. Créez une réservation ouverte.

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

        Accéder à la page Remises sur les engagements d'utilisation

      2. Cliquez sur Créer une réservation pour créer une réservation autonome sans engagement parent.

      3. Nommez votre réservation (par exemple : reservation-01).

      4. Sous Utilisation avec une instance de VM, sélectionnez Utiliser automatiquement une réservation afin que toutes les instances correspondantes puissent utiliser automatiquement cette réservation.

      5. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources.

      6. Spécifiez le nombre d'instances de VM que vous souhaitez réserver.

      7. Spécifiez les ressources que vous souhaitez attribuer à chaque instance :

        • Nombre de processeurs virtuels
        • Configuration minimum de la plate-forme du processeur
        • Quantité de mémoire
        • GPU
        • SSD local (si nécessaire)
      8. Cliquez sur le bouton Créer pour créer la réservation.

    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 (nombre de processeurs virtuels et quantité de 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.

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

        Accéder à la page Instances de VM

      2. Sélectionnez votre projet et cliquez sur Continuer.
      3. Cliquez sur le bouton Créer une instance.
      4. Indiquez un Nom pour votre instance.
      5. Spécifiez un Type de machine qui correspond aux propriétés de reservation-01. Par exemple, si vous avez spécifié une configuration minimale pour la plate-forme de processeur ou indiqué un nombre spécifique de GPU dans la réservation, pour que l'instance puisse utiliser la réservation, vous devez personnaliser l'instance afin qu'elle corresponde à la réservation.
      6. Si votre réservation comporte des disques SSD locaux, sous Disques, cliquez sur Ajouter un disque afin d'ajouter des disques SSD locaux correspondant à l'interface et à la quantité de disques SSD locaux de la réservation.
      7. Dans la section Gestion, sous Réservations, sélectionnez Utiliser automatiquement la réservation créée.
      8. Cliquez sur Créer.

    gcloud

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

          gcloud compute reservations create reservation-01 \
              --machine-type=n1-standard-32 \
              --min-cpu-platform "Intel Skylake" \
              --vm-count=2 \
              --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 (nombre de processeurs virtuels et quantité de 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-1 \
              --machine-type=n1-standard-32 \
              --min-cpu-platform "Intel Skylake" \
              --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":"n1-standard-32",
                "minCpuPlatform": "Intel Haswell",
              }
            },
            "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 (nombre de processeurs virtuels et quantité de 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-1",
            "machineType": "zones/us-central1-a/machineTypes/n1-standard-32",
            "minCpuPlatform": "Intel Haswell",
            "reservationAffinity":
            {
              "consumeReservationType": "ANY_RESERVATION"
            },
            ...
          }
          

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

    Dans ce modèle, seules les nouvelles instances qui ciblent une réservation spécifique par nom utilisent cette réservation. 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 celle-ci ne doit pas être utilisée automatiquement. 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.

    Console

    1. Créez une réservation avec des ressources qui ne peuvent être utilisées que par des instances ciblant spécifiquement cette réservation par son nom.

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

        Accéder à la page Remises sur les engagements d'utilisation

      2. Cliquez sur Créer une réservation pour créer une réservation autonome sans engagement parent.

      3. Nommez votre réservation (par exemple : reservation-02).

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

      5. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources.

      6. Spécifiez le nombre d'instances de VM que vous souhaitez réserver.

      7. Spécifiez les ressources que vous souhaitez attribuer à chaque instance :

        • Nombre de processeurs virtuels
        • Configuration minimum de la plate-forme du processeur
        • Quantité de mémoire
        • GPU
        • Disque SSD local
      8. Cliquez sur le bouton Créer pour créer la réservation.

    2. 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 correspondent bien aux propriétés d'instance de cette réservation spécifique, y compris la zone, le type de machine (nombre de processeurs virtuels et quantité de 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.

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

        Accéder à la page Instances de VM

      2. Sélectionnez votre projet et cliquez sur Continuer.
      3. Cliquez sur le bouton Créer une instance.
      4. Indiquez un Nom pour votre instance.
      5. Spécifiez un Type de machine qui correspond aux propriétés de reservation-01. Par exemple, si vous avez spécifié une configuration minimale pour la plate-forme de processeur dans la réservation, pour que l'instance puisse utiliser la réservation, vous devez personnaliser l'instance afin qu'elle corresponde à la réservation.
      6. Si votre réservation comporte des disques SSD locaux, sous Disques, cliquez sur Ajouter un disque afin d'ajouter des disques SSD locaux correspondant à l'interface et à la quantité de disques SSD locaux de la réservation.
      7. Dans la section Gestion, sous Réservations, sélectionnez une réservation disponible dont les propriétés correspondent (par exemple reservation-02).
      8. Cliquez sur Créer pour créer l'instance.

    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=n1-standard-32 \
              --min-cpu-platform "Intel Skylake" \
              --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 (nombre de processeurs virtuels et quantité de 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=n1-standard-32 \
              --min-cpu-platform "Intel Skylake" \
              --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":"n1-standard-32",
                "minCpuPlatform": "Intel Haswell",
              }
            },
            "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 (nombre de processeurs virtuels et quantité de 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/n1-standard-32",
            "minCpuPlatform": "Intel Haswell",
            "reservationAffinity":
            {
              "consumeReservationType": "SPECIFIC_RESERVATION",
              "key": "compute.googleapis.com/reservation-name",
              "values":
              ["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 l'option d'affinité de réservation sur "none" 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 instance qui ne consomme pas de réservation explicitement.
    2. Dans Cloud Console, accédez à la page Instances de VM :

      Accéder à la page Instances de VM

    3. Cliquez sur le bouton Créer une instance.
    4. Créez une instance comme d'habitude.
    5. Dans la section Gestion, sous Réservations, sélectionnez Ne pas utiliser pour vous assurer que cette instance ne consomme aucune réservation existante.
    6. Cliquez sur Créer pour créer l'instance.

    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/n1-standard-16",
          "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.

    Garantir l'utilisation des réservations

    Si vous ne pouvez pas utiliser vos ressources réservées, consultez les propriétés de la réservation et les propriétés de l'instance. Pour vérifier que les propriétés de l'instance correspondent aux propriétés de la réservation, créez une réservation, puis créez une instance qui cible cette réservation spécifique.

    Valider les propriétés de la réservation

    Les propriétés d'instance de la réservation doivent correspondre aux propriétés de la commande de création d'instance. Pour effectuer la validation, procédez comme suit :

    1. Vérifiez les propriétés de la réservation pour les éléments suivants en particulier :

      • zone
      • specificReservationRequired
        • Si cet élément est défini sur true, votre commande de création d'instance doit cibler cette réservation par son nom.
      • machineType
      • guestAccelerators.acceleratorType
      • guestAccelerators.acceleratorCount
      • minCpuPlatform
        • Si vous avez une instance de VM avec une propriété minCpuPlatform et que vous souhaitez créer une réservation utilisant cette instance, créez la réservation avec les propriétés correspondantes, y compris une propriété minCpuPlatform correspondante.
        • Si vous avez une réservation avec une propriété minCpuPlatform et que vous souhaitez créer une instance utilisant cette réservation, créez l'instance avec les propriétés correspondantes, y compris une propriété minCpuPlatform correspondante.
      • localSsds.diskSizeGb
      • localSsds.interface
    2. Créez une instance correspondant à ces propriétés.

    3. Décrivez l'instance pour vérifier que ses propriétés correspondent à celles de la réservation. Par exemple, avec l'outil gcloud, utilisez la commande instances describe.

    4. Décrivez votre réservation pour vérifier que inUseCount a été incrémenté.

      • Si inUseCount n'a pas été modifié, les propriétés ne correspondent pas.
      • Si inUseCount a été incrémenté, votre réservation est utilisée.

    Cibler une réservation spécifique

    Si vous tentez de créer une instance qui cible une réservation spécifique, l'instance ne peut être créée que si elle correspond aux propriétés de la réservation. Utilisez cette méthode pour vérifier que les propriétés de l'instance sont correctes.

    1. Créez une réservation avec l'option specificReservationRequired.
    2. Créez une instance qui correspond explicitement aux propriétés d'instance de la réservation et qui cible la réservation par nom via la propriété d'affinité de réservation.
      • Si les propriétés de l'instance ne correspondent pas, une erreur se produit.
      • Si les propriétés de l'instance correspondent, votre réservation est utilisée.

    Répertorier et décrire les réservations

    Affichez les détails de votre réservation à l'aide de la console, de l'outil gcloud ou de l'API.

    Console

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

      Accéder à la page "Remises sur les engagements d'utilisation"

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

    La liste des réservations inclut des détails sur chaque réservation. Vous pouvez utiliser la colonne Machines utilisées (total) pour déterminer l'utilisation de chaque réservation.

    gcloud

    Répertoriez 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-05
        selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d/reservations/reservation-05
        specificReservation:
          count: '50'
          inUseCount: '25'
          instanceProperties:
            guestAccelerators:
            - acceleratorCount: 1
              acceleratorType: nvidia-tesla-k80
            localSsds:
            - diskSizeGb: '375'
              interface: SCSI
            machineType: n1-standard-1
            minCpuPlatform: Any CPU Platform
        specificReservationRequired: false
        status: READY
        zone: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d    

    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 d'entre elles 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 \
            --maintenance-policy terminate \
            --local-ssd=interface=SCSI \
            --machine-type n1-standard-1 \
            --zone us-east1-d 

    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
        

    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://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d/reservations/reservation-05",
          "zone": "https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-east1-d",
          "name": "reservation-05",
          "specificReservationRequired": false,
          "status": "READY",
          "kind": "compute#reservation",
          "specificReservation": {
            "instanceProperties": {
              "machineType": "n1-standard-1",
              "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 d'entre elles sont actuellement utilisées.

    Modifier des réservations

    Vous pouvez redimensionner ou supprimer une réservation si elle n'est pas associée à un engagement.

    Redimensionner une réservation

    Vous pouvez redimensionner le nombre de VM d'une réservation qui ne sont pas liées à un engagement à l'aide de l'outil gcloud ou de l'API.

    gcloud

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

    Créez une réservation pour deux instances de VM :

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

    Redimensionnez la réservation de deux à 10 instances de VM :

        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/beta/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]/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.

    Supprimer une réservation

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

    Console

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

      Accéder à la page "Remises sur les engagements 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]
        

    API

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

    DELETE https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME]
        

    Une fois la commande de suppression terminée avec succès, 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 associées à cette réservation. Vous êtes toujours facturé pour ces instances.

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

    Une remise sur engagement d'utilisation donne lieu à un accord de prix réduit sur un ou trois ans, mais ne réserve pas de capacité dans une zone spécifique. Une réservation garantit que la capacité est maintenue dans une zone spécifique même si les VM réservées ne sont pas en cours d'exécution. En combinant une réservation et un engagement, vous pouvez obtenir des ressources réservées à prix réduit.

    Par défaut, lorsque vous créez une réservation, toutes les remises sur engagement d'utilisation applicables aux cœurs et à la mémoire sont automatiquement appliquées à vos instances de VM. Toutefois, pour obtenir des remises sur engagement d'utilisation pour les GPU et les SSD locaux, vous devez créer une réservation pour ces ressources lors de la souscription de l'engagement.

    Une fois que vous avez souscrit un engagement, il n'est pas possible de l'annuler. Pour en savoir plus, reportez-vous à la section Remises sur engagement d'utilisation.

    Souscrire un engagement pour des GPU ou des SSD locaux

    Pour souscrire un engagement pour des GPU ou des SSD locaux, procédez comme suit :

    • Vous devez souscrire un engagement N1 de type "à usage général". Les GPU ne sont compatibles qu'avec les types de machines N1.
    • Vous devez créer une réservation incluant des GPU ou des disques SSD locaux en même temps que vous souscrivez l'engagement.
    • Il n'est pas nécessaire de vous engager sur la quantité de processeurs virtuels ou de mémoire.

    Vous devez souscrire des engagements pour des types de GPU spécifiques. Par exemple, vous pouvez souscrire des engagements pour des GPU Tesla P100 ou Tesla V100, mais vous ne pouvez pas en souscrire pour des GPU Tesla P100 et vous attendre à pouvoir les appliquer à d'autres types de GPU.

    Le nombre de GPU et de disques SSD locaux que vous réservez doit être égal à la quantité que vous vous engagez à utiliser. Par exemple, si vous souhaitez réserver quatre GPU V100, vous devez également vous engager à utiliser quatre 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.

    Si vous souhaitez ne vous engager que sur les GPU et les disques SSD locaux, vous pouvez spécifier 0 dans les champs liés aux processeurs virtuels et à la mémoire. Notez toutefois que la réservation que vous joignez à votre engagement doit mentionner les mêmes quantités de GPU et de disques SSD locaux que l'engagement, ainsi que les types de machines (avec les quantités de processeurs virtuels et de mémoire) que vous souhaitez réserver.

    Souscrivez un engagement auquel une réservation est associée à l'aide de la console, de l'outil gcloud ou de l'API.

    Console

    1. Accédez à la page Remises sur les engagements d'utilisation de Cloud Console.

      Accéder à la page Remises sur les engagements d'utilisation

    2. Cliquez sur Souscrire un engagement pour souscrire un engagement.
    3. Nommez votre engagement et sélectionnez la région dans laquelle vous souhaitez l'appliquer.
    4. Pour le Type d'engagement, sélectionnez Usage général.
    5. Sélectionnez une durée d'engagement (1 an ou 3 ans).
    6. Sélectionnez le mode de saisie de l'engagement :

      • Le mode Personnalisé (Recommandé) permet de personnaliser le nombre de processeurs virtuels et la quantité de mémoire.

      • Le mode Basique permet de sélectionner le nombre de processeurs virtuels. Compute Engine remplit automatiquement la quantité de mémoire correspondante.

    7. Entrez les quantités de processeurs virtuels et de mémoire que vous souhaitez acheter. La mémoire par processeur virtuel doit être un ratio propre au type de remise sélectionné. Utilisez entre 0,9 Go et 6,5 Go par processeur virtuel pour les remises sur engagement d'utilisation standards. La mémoire totale doit être un multiple de 256 Mo.

      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.

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

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

    10. Cliquez sur Ajouter une réservation pour créer une ou plusieurs réservations pour des instances qui utiliseront les GPU et les disques SSD locaux.

      1. Nommez votre réservation.
      2. Sous Utilisation avec une instance de VM :
        • Si vous souhaitez n'utiliser les ressources de cette réservation que lors de la création d'instances correspondantes qui ciblent spécifiquement cette réservation par son nom, choisissez Sélectionner une réservation spécifique.
        • Si vous souhaitez que les instances correspondantes utilisent automatiquement cette réservation, sélectionnez Utiliser automatiquement une réservation.
      3. Choisissez la région et la zone dans lesquelles vous souhaitez réserver des ressources.
      4. Spécifiez le nombre d'instances de VM que vous souhaitez réserver.
      5. Spécifiez les ressources que vous souhaitez réserver pour chaque instance :
        • Si vous disposez d'un modèle d'instance, cliquez sur Utiliser un modèle d'instance et sélectionnez un modèle d'instance dans la liste.
        • Sinon, cliquez sur Spécifier un type de machine.
        • Pour utiliser des types de machines prédéfinis, sélectionnez ce dont vous avez besoin dans le menu déroulant.
        • Pour utiliser des types de machines personnalisés (y compris pour définir la configuration minimale de la plate-forme du processeur) ou pour ajouter des GPU, cliquez sur Personnaliser et sélectionnez les éléments dont vous avez besoin.
        • Indiquez éventuellement le nombre de disques SSD locaux à ajouter à chaque instance, ainsi que le type d'interface à utiliser.
    11. Cliquez sur le bouton Terminé pour créer la réservation.
  • Cliquez sur le bouton Acheter pour souscrire l'engagement.

  • Lisez les Conditions d'achat et cliquez à nouveau sur Acheter une fois que 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 GPU à 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-16 \
            --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-1 \
            --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. 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]
        

    [YAML_FILE] contient les propriétés de réservation.

    Par exemple, le fichier YAML suivant contient deux réservations. La première réservation, res-01, contient une instance n1-standard-1 avec un GPU. Il s'agit d'une réservation ciblée, ce qui signifie que vous devez cibler spécifiquement cette réservation par son nom pour utiliser ses instances réservées. La seconde réservation, res-02, contient une instance de VM n1-standard-1 à 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-1
          accelerator:
          - count: 1
            type: nvidia-tesla-v100
        - reservation: res-02
          reservation_zone: us-central1-a
          vm_count: 1
          machine_type: n1-standard-1
          local_ssd:
          - interface: scsi
            size: 375
          - interface: nvme
            size: 375
        

    API

    Utilisez l'API 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 GPU à 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 valeurs VCPU et MEMORY 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 ne sera créé que s'il y a suffisamment de ressources dans la zone cible et de 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.

    Si vous devez transférer des GPU ou des disques SSD locaux entre des réservations associées à des engagements, consultez la section Modifier les réservations auxquelles des engagements sont associés.

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

    Si un engagement contient une ou plusieurs réservations avec des GPU ou des SSD locaux, vous pouvez utiliser l'outil gcloud ou l'API pour transférer des GPU ou des SSD locaux entre ces réservations. Par exemple, vous pouvez transférer des GPU d'une réservation vers une autre réservation nouvellement créée.

    Limites :

    • Vous ne pouvez déplacer des ressources qu'entre deux réservations, l'une étant la réservation source et l'autre la réservation de destination. La réservation source doit déjà exister ; la réservation de destination peut être une réservation existante ou une nouvelle réservation.
    • Les réservations source et de destination doivent se trouver dans la même zone.
    • Vous ne pouvez pas modifier les propriétés de la ressource dans les réservations existantes. Vous ne pouvez transférer que des ressources existantes d'une réservation à une autre.
    • Le nombre total de GPU et de SSD locaux doit rester constant.
    • Vous ne pouvez modifier que 100 VM par requête. Si vous souhaitez en mettre à jour davantage, appelez l'API plusieurs fois ou contactez l'assistance Google Cloud.
    • Vous ne pouvez pas transférer des processeurs virtuels ou de la mémoire, ni modifier d'autres propriétés des réservations associées.

    gcloud

    Exécutez la commande gcloud beta compute commitments update-reservations.

    Créez un engagement avec une réservation :

    • res-1 dispose de quatre instances n1-standard-1, chacune avec un GPU P100 (quatre processeurs virtuels et quatre GPU P100). Le total des ressources réservées comprend quatre GPU P100.
        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
        

    one-reservation.yaml contient :

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

    Mettez à jour l'engagement pour transférer certaines ressources de res-1 vers une deuxième réservation nouvellement créée, res-2. Dans cet exemple :

    • Modifiez res-1 pour avoir deux instances n1-standard-1 avec chacune deux GPU P100 (deux processeurs virtuels et deux GPU P100).
    • Ajoutez res-2 pour obtenir deux instances n1-standard-2 avec chacune un GPU P100 (quatre processeurs virtuels et deux GPU P100).

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

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

    two-reservations.yaml contient :

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

    API

    Utilisez la méthode regionCommitments.updateReservations.

    Par exemple, créez un engagement avec la réservation suivante :

    • res-1 dispose de quatre instances n1-standard-1, chacune avec un GPU nvidia-tesla-p100 (quatre processeurs virtuels et quatre GPU P100).

    Dans cet exemple, le total des ressources réservées inclut quatre GPU P100.

        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-1"
                }
              },
              "specificReservationRequired": true,
              "zone": "asia-east1-a"
            }
          ],
          "resources":
          [
            {
              "amount": "10",
              "type": "VCPU"
            },
            {
              "amount": "32768",
              "type": "MEMORY"
            },
            {
              "acceleratorType": "nvidia-tesla-p100",
              "amount": "4",
              "type": "ACCELERATOR"
            }
          ]
        }
        

    Mettez à jour l'engagement pour transférer certaines ressources de res-1 vers une deuxième réservation nouvellement créée, res-2. Dans cet exemple :

    • Modifiez res-1 pour avoir deux instances n1-standard-1 avec chacune deux GPU P100 (deux processeurs virtuels et deux GPU P100).
    • Ajoutez res-2 pour obtenir deux instances n1-standard-2 avec chacune un GPU P100 (quatre processeurs virtuels et deux GPU P100).

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

        POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservation/updateReservations
    
        {
          "reservations":
          [
            {
              "name": "res-1",
              "specificReservation":
              {
                "count": "2",
                "instanceProperties":
                {
                  "guestAccelerators":
                  [
                    {
                      "acceleratorCount": 1,
                      "acceleratorType": "nvidia-tesla-p100"
                    }
                  ],
                  "machineType": "n1-standard-1"
                }
              },
              "specificReservationRequired": true,
              "zone": "asia-east1-a"
            },
            {
              "name": "res-2",
              "specificReservation":
              {
                "count": "2",
                "instanceProperties":
                {
                  "guestAccelerators":
                  [
                    {
                      "acceleratorCount": 1,
                      "acceleratorType": "nvidia-tesla-p100"
                    }
                  ],
                  "machineType": "n1-standard-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 en savoir plus, reportez-vous à la page 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 "reservation".
    • Total des ressources réservées. Ces entrées ont des codes SKU et des URI de ressource de type "reservation". 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].

    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].

    Exemple : https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/reservations/my-reservation
    Total des ressources réservées com.google.cloud/services/compute-engine/Reservation[SKU_NAME] https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/reservations/[RESERVATION_NAME].

    Exemple : https://compute.googleapis.com/compute/v1/projects/my-project/zones/europe-west1-a/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/VmimageN1StandardRam,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/VmimageN1StandardRam,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/ReservationN1StandardRam,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
        ...
        

    Facturation de réservation

    Les réservations sont facturées au même tarif que les ressources qu'elles réservent. Les remises automatiques proportionnelles à une utilisation soutenue, les remises sur engagement d'utilisation et les tarifs personnalisés s'appliquent de la même manière qu'avec les VM standards.

    Prenons l'exemple suivant :

    • Vous avez un engagement de trois processeurs virtuels dans us-central1.
    • Vous utilisez cinq processeurs virtuels dans us-central1-a.
    • Vous avez une réservation de dix processeurs virtuels dans us-central1-a.

    Réservations avec des remises sur engagement d'utilisation.

    Vous serez facturé comme suit :

    Tarif appliqué Nombre de processeurs virtuels
    Prix de la remise sur engagement d'utilisation 3
    Prix à la demande (deux réservations de processeurs virtuels utilisées + cinq réservations de processeurs virtuels inutilisées) 7

    Étapes suivantes