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


Les remises sur engagement d'utilisation proposent des prix fortement réduits pour vos ressources Compute Engine en échange de contrats d'engagement d'utilisation d'un an ou de trois ans (également appelés engagements). Vous vous engagez à une utilisation minimale des ressources ou un montant minimal de dépenses, et vous recevez en retour des remises sur engagement d'utilisation sur vos coûts d'utilisation des ressources. Toutefois, les engagements ne réservent pas de capacité zonale pour vos ressources comprises dans cet engagement. Pour obtenir des ressources zonales à prix réduit et vous assurer que la capacité correspondante est réservée, vous devez à la fois souscrire des engagements et créer des réservations pour ces ressources zonales.

Ce document explique comment recevoir des remises sur engagement d'utilisation pour vos ressources réservées et comment associer des réservations à des engagements basés sur les ressources.

Avant de commencer

  • Examinez les principes de base des réservations, ainsi que leurs exigences et restrictions. Pour en savoir plus, consultez la section Réservations de ressources zonales Compute Engine.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Remises sur engagement d'utilisation pour vos ressources réservées

Vous bénéficiez de remises sur engagement d'utilisation pour toute utilisation des ressources éligible dans vos projets. Si vous avez également des réservations pour conserver de la capacité pour les ressources de ce projet, les remises sur engagement d'utilisation d'engagements actifs peuvent également s'appliquer à ces ressources réservées. Pour que des ressources réservées puissent recevoir des remises sur engagement d'utilisation, les exigences suivantes s'appliquent:

  • Vous ne bénéficiez d'aucune autre forme de remise pour l'utilisation de vos ressources.
  • Vos VM doivent consommer les réservations lorsque les engagements sont actifs.
  • Au minimum, les propriétés suivantes doivent correspondre entre vos engagements actifs et les réservations utilisées par vos VM:

    • Projet et région où elles s'appliquent
    • Série de familles de machines

Selon le type de ressource, vous pouvez recevoir des remises sur engagement d'utilisation pour vos ressources réservées de l'une des manières suivantes:

  • Processeurs virtuels et mémoire: pour recevoir des remises sur engagement d'utilisation pour l'un de ces types de ressources, ou les deux, vous pouvez souscrire des engagements basés sur les ressources ou sur les dépenses, qui incluent les types de ressources requis. Lorsque les VM de votre projet consomment des réservations dont les propriétés correspondent à ces engagements actifs, vous recevez automatiquement les remises sur engagement d'utilisation applicables pour ces types de ressources réservées. Si vous avez réservé plus de ressources que prévu, vous ne recevez pas de remises sur engagement d'utilisation pour ces ressources supplémentaires.

  • GPU et disques SSD locaux: pour recevoir des remises sur engagement d'utilisation pour l'un de ces types de ressources, ou les deux, vous devez procéder comme suit:

    • Souscrivez des engagements basés sur les ressources qui incluent les types de ressources requis.
    • Créez des réservations pour toutes les ressources comprises dans cet engagement dont les propriétés correspondent à votre engagement, puis associez ces réservations à l'engagement.

    Lorsque les VM de votre projet utilisent ces réservations associées, vous commencez à recevoir les remises sur engagement d'utilisation applicables à ces types de ressources réservées.

Associer des réservations à des engagements basés sur les ressources

Vous pouvez associer des réservations à tout engagement basé sur les ressources et vous assurer que la capacité est conservée dans des zones spécifiques pour les ressources comprises dans cet engagement que vous prévoyez d'utiliser. Vous pouvez associer plusieurs réservations à un même engagement. Toutefois, une réservation ne peut être associée qu'à un seul engagement. Lorsque vous souscrivez un engagement, vous pouvez lui associer des réservations de l'une des manières suivantes:

  • Utiliser des réservations existantes dont les propriétés correspondent à l'engagement
  • Créer des réservations correspondantes lors de la souscription de votre engagement

Après la souscription d'un engagement avec des réservations associées, les réservations restent actives tant que l'engagement est actif. Lorsque votre engagement expire, Compute Engine supprime automatiquement toutes les réservations associées. La suppression de ces réservations n'a aucun effet sur les VM en cours d'exécution qui les utilisaient. Les VM en cours d'exécution continuent de fonctionner et vous êtes toujours facturé pour ces VM.

Ressources faisant l'objet d'un engagement ne nécessitant pas de réservations associées

Les processeurs virtuels et la mémoire faisant l'objet d'un engagement ne vous obligent pas à associer des réservations correspondantes à vos engagements. Toutefois, lorsque vous souscrivez un engagement qui inclut des processeurs virtuels, de la mémoire ou les deux, vous pouvez toujours choisir d'associer des réservations qui spécifient ces ressources. Pour savoir comment souscrire des engagements pour des processeurs virtuels, de la mémoire ou les deux, sans associer de réservations, consultez la section Souscrire des engagements sans réservations associées.

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

Les GPU et les disques SSD locaux faisant l'objet d'un engagement nécessitent d'associer des réservations correspondantes à vos engagements. Lorsque vous souscrivez un engagement qui inclut des GPU, des disques SSD locaux ou les deux, vous devez également réserver ces ressources et associer ces réservations à votre engagement. Pour ce faire, vous pouvez utiliser une seule réservation ou une combinaison de réservations. Lorsque vous souscrivez un tel engagement, vous pouvez également inclure des processeurs virtuels, de la mémoire ou les deux. Toutefois, vous n'avez pas besoin de réserver ces processeurs virtuels ou cette mémoire. Pour savoir comment souscrire des engagements qui incluent des GPU, des disques SSD locaux, ou les deux, consultez la section Souscrire des engagements avec des réservations associées dans ce document.

Pour afficher la liste complète des séries de machines compatibles avec les remises sur engagement d'utilisation pour les GPU et les disques SSD locaux, consultez la section Types d'engagements dans la documentation sur les remises sur engagement d'utilisation basées sur les ressources.

Quantités de ressources autorisées dans les réservations associées

Pour les processeurs virtuels et la mémoire, vous pouvez associer des réservations spécifiant plus ou moins de ressources que vos engagements. Si vous vous engagez à utiliser plus de processeurs virtuels ou de mémoire que ce que vous réservez, Compute Engine réserve de la capacité uniquement pour ces ressources réservées. Toutefois, vous pouvez toujours utiliser vos ressources comprises dans cet engagement supplémentaires en fonction de leur disponibilité dans votre région. Si vous réservez plus de processeurs virtuels ou de mémoire que votre engagement, vous ne bénéficiez pas de remises sur engagement d'utilisation pour les ressources supplémentaires que vous réservez.

Par exemple, lorsque vous souscrivez un engagement pour 4 processeurs virtuels et 30 Go de mémoire, vous pouvez effectuer l'une des opérations suivantes:

  • N'associer aucune réservation.
  • Associer des réservations spécifiant n'importe quelle combinaison de ces types de ressources ; Par exemple, ce qui suit:

    • 4 processeurs virtuels et 30 Go de mémoire
    • 2 processeurs virtuels et 50 Go de mémoire
    • 10 processeurs virtuels et 10 Go de mémoire

Toutefois, si votre engagement contient des GPU, des disques SSD locaux ou les deux, vous devez réserver et associer toutes ces ressources. Vos réservations associées doivent spécifier les nombres et les types exacts de GPU et de disques SSD locaux que vous vous engagez à utiliser. Par conséquent, vous ne pouvez pas non plus disposer d'un nombre ou de types supplémentaires de GPU ou de disques SSD locaux dans vos réservations associées. Par exemple, supposons que vous souscrivez un engagement pour 30 Go de mémoire et quatre GPU NVIDIA P100. La réservation associée (ou la combinaison de réservations associées) peut spécifier n'importe quelle quantité de processeurs virtuels ou de mémoire, mais elle doit disposer d'exactement quatre GPU de type NVIDIA P100. Dans cet exemple, vous ne pouvez pas associer des réservations spécifiant l'une des combinaisons de ressources suivantes:

  • 6 GPU NVIDIA P100
  • 2 GPU NVIDIA P100
  • 4 GPU NVIDIA P100 et 2 GPU NVIDIA V100
  • 4 GPU NVIDIA P100 et 4 disques SSD locaux

Souscrire des engagements avec des réservations associées

Lorsque vous souscrivez un nouvel engagement, vous pouvez lui associer des réservations de l'une des manières suivantes:

Une fois que vous avez souscrit un engagement, votre engagement devient actif le lendemain à minuit (heure du Pacifique des États-Unis et du Canada, UTC-8 ou UTC-7, pendant l'heure d'été). Entre la date de souscription de votre engagement et son délai d'activation, l'état de votre engagement reste NOT_YET_ACTIVE (ou PENDING sur la console Google Cloud). Une fois votre engagement activé, son état passe à ACTIVE. Par exemple, supposons que vous ayez souscrit votre engagement le 20 janvier à 22h, heure du Pacifique des États-Unis et du Canada (UTC-8 ou UTC-7). Compute Engine crée immédiatement votre engagement à l'état NOT_YET_ACTIVE. Toutefois, votre engagement ne devient ACTIVE que le 21 janvier à minuit, heure du Pacifique des États-Unis et du Canada (UTC-8 ou UTC-7).

Conditions requises

Avant de souscrire un engagement avec des réservations associées, consultez ces exigences et assurez-vous que votre engagement et vos réservations répondent aux critères suivants:

  • Vous devez souscrire l'engagement et créer les réservations associées dans le même projet et la même région.
  • Vous devez souscrire l'engagement et créer les réservations associées pour les ressources de la même série de familles de machines.
  • Vous devez désactiver l'option de suppression automatique sur les réservations associées.
  • Si votre engagement comporte des GPU, le type de GPU spécifié dans la réservation et l'engagement doivent correspondre.
  • Pour les GPU et les disques 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.
  • Si votre réservation associée est une réservation partagée et que vous souhaitez recevoir les remises sur engagement d'utilisation applicables lorsque vous utilisez cette réservation en dehors du projet de votre engagement, vous devez effectuer les deux opérations suivantes:

Joindre des réservations existantes

Vous pouvez associer des réservations existantes lors de la souscription de votre engagement à l'aide de la console Google Cloud, de la Google Cloud CLI ou de REST.

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 sur engagement d'utilisation est activé sur un compte de facturation Cloud, vous pouvez utiliser n'importe quel projet associé à ce compte de facturation Cloud pour souscrire l'engagement. Après avoir sélectionné le projet, procédez comme suit:

  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 souscrire un engagement, cliquez sur  Souscrire un engagement. La page Obtenir une remise sur engagement d'utilisation s'ouvre et affiche l'onglet Matériel.

  3. Dans le champ Nom, saisissez le nom de votre engagement.

  4. Dans le champ Région, sélectionnez la région dans laquelle vous souhaitez engager des dépenses pour les ressources Compute Engine.

  5. Dans le champ Type d'engagement, sélectionnez la série de familles de machines de vos ressources comprises dans cet engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • Optimisé pour l'accélérateur (A2) pour les ressources de type de machine A2
    • Optimisé pour l'accélérateur (A3) pour les ressources de type de machine A3
    • Optimisé pour le calcul (C2) pour les ressources de type de machine C2
    • Optimisé pour le calcul (C2D) pour les ressources de type de machine C2D
    • Usage général (C3) pour les ressources de type de machine C3
    • Usage général (C3D) pour les ressources de type de machine C3D
    • Usage général (N1) pour les ressources de type de machine N1
    • Usage général (N2) pour les ressources de type de machine N2
    • Usage général (N2D) pour les ressources de machine N2D
    • Optimisé pour les graphiques (G2) pour les ressources de type de machine G2
    • Mémoire optimisée M3 pour les ressources de type de machine M3
    • Optimisé pour le stockage Z3 pour les ressources de type de machine Z3

  6. Dans le champ Durée, sélectionnez la durée de votre engagement.

  7. Dans le champ Cœurs, indiquez le nombre de processeurs virtuels sur lequel vous souhaitez vous engager.

  8. Dans le champ Mémoire, saisissez la quantité de mémoire, en Go, pour laquelle vous souhaitez vous engager.

  9. Pour engager des dépenses pour des GPU, cliquez sur  Ajouter un GPU dans la section GPU, puis procédez comme suit :

    1. Dans le champ Type de GPU, sélectionnez le type de GPU.
    2. Dans le champ Nombre de GPU, saisissez le nombre de GPU.
    3. Facultatif : Si votre modèle de GPU est compatible avec les postes de travail virtuels NVIDIA RTX (vWS) pour les charges de travail graphiques et que vous prévoyez d'exécuter des charges de travail graphiques lourdes, cochez la case Activer le poste de travail virtuel (NVIDIA GRID).
  10. Pour engager des dépenses pour des disques SSD locaux, cliquez sur  Ajouter un SSD dans la section Disques SSD locaux, puis spécifiez le nombre de disques dans le champ Nombre de disques SSD.

  11. Pour associer une ou plusieurs réservations existantes à l'engagement, sélectionnez Associer des réservations existantes dans le champ Réservations.

    La console Google Cloud affiche la liste de toutes les réservations de votre projet dont la région, le type de machine et le type de GPU correspondent à l'engagement. Ensuite, procédez comme suit :

    1. Facultatif. Pour afficher des réservations avec des propriétés spécifiques, dans le menu Filtre, ajoutez ou supprimez des filtres correspondant aux propriétés souhaitées.
    2. Sélectionnez toutes les réservations que vous souhaitez associer à l'engagement.
  12. Pour terminer la souscription de votre engagement avec les réservations associées, procédez comme suit :

    1. Cliquez sur Souscrire.
    2. Dans la boîte de dialogue Obtenir une remise sur engagement d'utilisation, si vous acceptez les conditions spécifiques du service, cliquez à nouveau sur Acheter.

gcloud

Pour souscrire un engagement en associant des réservations existantes, exécutez la commande gcloud compute commitments create. Dans votre commande, incluez l'option --existing-reservation pour spécifier une réservation existante que vous souhaitez associer à votre engagement. Incluez une nouvelle instance de cette option pour chaque réservation existante que vous souhaitez associer. Vous pouvez associer autant de réservations existantes que vous le souhaitez à votre engagement.

Par exemple, pour souscrire un engagement en lui associant deux réservations, exécutez la commande suivante:

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
    --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

Remplacez les éléments suivants :

  • COMMITMENT_NAME: nom de l'engagement.
  • REGION : région où se trouve l'engagement.
  • PROJECT_ID: ID du projet dans lequel vous souhaitez souscrire l'engagement avec les réservations associées.
  • DURATION: durée de l'engagement, 12-month ou 36-month (12 mois ou 36 mois).
  • COMMITMENT_TYPE: type d'engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • accelerator-optimized pour les ressources de type de machine A2
    • accelerator-optimized-a3 pour les ressources de type de machine A3
    • compute-optimized pour les ressources de type de machine C2
    • compute-optimized-c2d pour les ressources de type de machine C2D
    • compute-optimized-c3 pour les ressources de type de machine C3
    • compute-optimized-c3d pour les ressources de type de machine C3D
    • general-purpose pour les ressources de type de machine N1
    • general-purpose-n2 pour les ressources de type de machine N2
    • general-purpose-n2d pour les ressources de type de machine N2D
    • graphics-optimized pour les ressources de type de machine G2
    • memory-optimized-m3 pour les ressources de type de machine M3
    • storage-optimized-z3 pour les ressources de type de machine Z3

  • COMMITTED_VCPUS: nombre de processeurs virtuels souhaité dans votre engagement. Il doit s'agit d'un nombre entier positif.

  • COMMITTED_MEMORY: quantité de mémoire en Mo ou en Go que vous souhaitez dans votre engagement. Par exemple, 10240MB ou 10GB. Si vous ne spécifiez pas d'unité, Compute Engine utilise le gigaoctet comme unité. Vous pouvez acheter de la mémoire par incréments de 0,25 Go.

  • COMMITTED_LOCAL_SSD: quantité, en Go, d'espace SSD local que vous souhaitez pour votre engagement. La capacité de chaque disque SSD local est de 375 Go.

  • COMMITTED_ACCELERATOR_COUNT: nombre de GPU souhaité dans votre engagement.

  • COMMITTED_ACCELERATOR_TYPE: type de GPU que vous souhaitez inclure dans votre engagement.

  • RESERVATION_NAME_1 et RESERVATION_NAME_2: noms des réservations existantes que vous souhaitez associer à l'engagement.

  • RESERVATION_ZONE_1 et RESERVATION_ZONE_2: zones des réservations existantes que vous souhaitez associer à l'engagement.

Exemple: Souscrire un engagement en associant des réservations existantes

Supposons que vous ayez deux réservations res-01 et res-02 dans les zones us-central1-a et us-central1-b du projet myproject. Supposons que ces réservations contiennent une capacité combinée pour quatre GPU NVIDIA P100 et quatre disques SSD locaux. Pour souscrire un nouvel engagement dans la région us-central1 de ce projet pour ces GPU et disques SSD locaux, et utiliser ces réservations existantes en tant que réservations associées, exécutez la commande suivante. Notez que l'exemple d'engagement contient également des processeurs virtuels et de la mémoire.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

Pour souscrire un engagement en associant des réservations existantes, envoyez une requête POST à la méthode regionCommitments.insert. Dans votre requête, incluez le champ existingReservations pour spécifier la liste de toutes les réservations existantes que vous souhaitez associer à votre engagement (séparées par une virgule). Vous pouvez associer autant de réservations existantes que vous le souhaitez à votre engagement.

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

{
  "name": "COMMITMENT_NAME",
  "plan": "DURATION",
  "type": COMMITMENT_TYPE,
  "resources":
  [
    {
      "amount": "COMMITTED_VCPUS",
      "type": "VCPU"
    },
    {
      "amount": "COMMITTED_MEMORY",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
      "amount": "COMMITTED_ACCELERATOR_COUNT",
      "type": "ACCELERATOR"
    }
    {
      "amount": "COMMITTED_LOCAL_SSD",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations": "RESERVATION_URLs"
}

Remplacez les éléments suivants :

  • COMMITMENT_NAME: nom de l'engagement.
  • REGION : région où se trouve l'engagement.
  • PROJECT_ID: ID du projet dans lequel vous souhaitez souscrire l'engagement avec les réservations associées.
  • DURATION: durée de l'engagement, TWELVE_MONTH ou THIRTY_SIX_MONTH (12 mois ou 36 mois).
  • COMMITMENT_TYPE : type d'engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • ACCELERATOR_OPTIMIZED pour les ressources de type de machine A2
    • ACCELERATOR_OPTIMIZED_A3 pour les ressources de type de machine A3
    • COMPUTE_OPTIMIZED pour les ressources de type de machine C2
    • COMPUTE_OPTIMIZED_C2D pour les ressources de type de machine C2D
    • COMPUTE_OPTIMIZED_C3 pour les ressources de type de machine C3
    • COMPUTE_OPTIMIZED_C3D pour les ressources de type de machine C3D
    • GENERAL_PURPOSE pour les ressources de type de machine N1
    • GENERAL_PURPOSE_N2 pour les ressources de type de machine N2
    • GENERAL_PURPOSE_N2D pour les ressources de type de machine N2D
    • GRAPHICS_OPTIMIZED pour les ressources de type de machine G2
    • MEMORY_OPTIMIZED_M3 pour les ressources de type de machine M3
    • STORAGE_OPTIMIZED_Z3 pour les ressources de type de machine Z3

  • COMMITTED_VCPUS: nombre de processeurs virtuels souhaités dans votre engagement. Il doit s'agit d'un nombre entier positif.

  • COMMITTED_MEMORY: quantité de mémoire en Mo que vous souhaitez pour votre engagement. Par exemple, 10240MB. Vous pouvez acheter de la mémoire par incréments de 256 Mo.

  • COMMITTED_LOCAL_SSD: quantité, en Go, d'espace de stockage SSD local que vous souhaitez dans votre engagement. La capacité de chaque disque SSD local est de 375 Go.

  • COMMITTED_ACCELERATOR_COUNT: nombre de GPU souhaité dans votre engagement.

  • COMMITTED_ACCELERATOR_TYPE : type de GPU que vous souhaitez inclure dans votre engagement.

  • RESERVATION_URLs: liste des URL des réservations existantes que vous souhaitez associer à l'engagement, séparées par une virgule. Par exemple, pour associer deux réservations, res-1 et res-2, spécifiez les éléments suivants :

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

Exemple : Souscrire un engagement en associant des réservations existantes

Supposons que vous ayez deux réservations res-01 et res-02 dans les zones us-central1-a et us-central1-b du projet myproject. Supposons que ces réservations contiennent une capacité combinée pour quatre GPU NVIDIA P100 et quatre disques SSD locaux. Pour souscrire un nouvel engagement dans la région us-central1 de ce projet pour ces GPU et disques SSD locaux, et pour utiliser ces réservations existantes en tant que réservations associées, effectuez la requête POST suivante. Notez que l'exemple d'engagement contient également des processeurs virtuels et de la mémoire.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1536000",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02"
  ]
}

Créer des réservations à associer

Vous pouvez créer vos réservations associées lors de la souscription de votre engagement à l'aide de la console Google Cloud, de la Google Cloud CLI ou de REST.

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 sur engagement d'utilisation est activé sur un compte de facturation Cloud, vous pouvez utiliser n'importe quel projet associé à ce compte de facturation Cloud pour souscrire l'engagement. Après avoir sélectionné le projet, procédez comme suit:

  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 souscrire un engagement, cliquez sur  Souscrire un engagement. La page Obtenir une remise sur engagement d'utilisation s'ouvre et affiche l'onglet Matériel.

  3. Dans le champ Nom, saisissez le nom de votre engagement.

  4. Dans le champ Région, sélectionnez la région dans laquelle vous souhaitez engager des dépenses pour les ressources Compute Engine.

  5. Dans le champ Type d'engagement, sélectionnez la série de familles de machines de vos ressources comprises dans cet engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • Optimisé pour l'accélérateur (A2) pour les ressources de type de machine A2
    • Optimisé pour l'accélérateur (A3) pour les ressources de type de machine A3
    • Optimisé pour le calcul (C2) pour les ressources de type de machine C2
    • Optimisé pour le calcul (C2D) pour les ressources de type de machine C2D
    • Usage général (C3) pour les ressources de type de machine C3
    • Usage général (C3D) pour les ressources de type de machine C3D
    • Usage général (N1) pour les ressources de type de machine N1
    • Usage général (N2) pour les ressources de type de machine N2
    • Usage général (N2D) pour les ressources de machine N2D
    • Optimisé pour les graphiques (G2) pour les ressources de type de machine G2
    • Mémoire optimisée M3 pour les ressources de type de machine M3
    • Optimisé pour le stockage Z3 pour les ressources de type de machine Z3

  6. Dans le champ Durée, choisissez 1 an ou 3 ans comme durée d'engagement.

  7. Dans le champ Cœurs, indiquez le nombre de processeurs virtuels sur lequel vous souhaitez vous engager.

  8. Dans le champ Mémoire, saisissez la quantité de mémoire, en Go, pour laquelle vous souhaitez vous engager.

  9. Pour engager des dépenses pour des GPU, cliquez sur  Ajouter un GPU dans la section GPU, puis procédez comme suit :

    1. Dans le champ Type de GPU, sélectionnez le type de GPU.
    2. Dans le champ Nombre de GPU, saisissez le nombre de GPU.
    3. Facultatif : Si votre modèle de GPU est compatible avec les postes de travail virtuels NVIDIA RTX (vWS) pour les charges de travail graphiques et que vous prévoyez d'exécuter des charges de travail graphiques lourdes, cochez la case Activer le poste de travail virtuel (NVIDIA GRID).
  10. Pour engager des dépenses pour des disques SSD locaux, cliquez sur  Ajouter un SSD dans la section Disques SSD locaux, puis spécifiez le nombre de disques dans le champ Nombre de disques SSD.

  11. Pour créer une réservation et l'associer à l'engagement, sélectionnez Créer des réservations dans le champ Réservations, puis procédez comme suit. Répétez cette étape pour chaque nouvelle réservation que vous souhaitez créer et associer.

    1. Cliquez sur Ajouter une réservation. La section Nouvelle réservation s'affiche.
    2. Dans le champ Nom, saisissez le nom de la réservation associée.
    3. Dans le champ Région, sélectionnez la même région que votre engagement.
    4. Dans le champ Zone, sélectionnez la zone dans laquelle vous souhaitez réserver vos ressources.
    5. Dans la section Type de partage, spécifiez le mode de partage de cette réservation de l'une des manières suivantes :

      • Pour créer une réservation à un seul projet, sélectionnez Local.
      • Pour créer une réservation partagée avec plusieurs projets, sélectionnez Partagé. Ensuite, pour spécifier les projets avec lesquels partager cette réservation, cliquez sur  Ajouter des projets, puis sélectionnez les projets de votre choix dans l'organisation du projet actuel.
    6. Dans le champ Utiliser avec une instance de VM, sélectionnez la manière dont vous souhaitez que les VM utilisent votre réservation de l'une des manières suivantes :

      • Pour autoriser les VM ayant des propriétés correspondantes à utiliser automatiquement cette réservation, cliquez sur Utiliser automatiquement une réservation (par défaut).
      • Pour n'utiliser les ressources de cette réservation que lors de la création de VM avec des propriétés correspondantes qui ciblent spécifiquement cette réservation par son nom, cliquez sur Sélectionner une réservation spécifique.
    7. Dans la section Détails de la ressource, procédez comme suit :

      1. Dans le champ Nombre d'instances de VM, saisissez le nombre d'instances de VM que vous souhaitez réserver.
      2. Dans la section Configuration de la machine, spécifiez les propriétés de vos VM réservées de l'une des manières suivantes :

        1. Pour spécifier les propriétés de vos VM à partir d'un modèle d'instance existant, sélectionnez Utiliser un modèle d'instance.

          Dans le champ Modèle d'instance, sélectionnez un modèle d'instance qui spécifie la même série de familles de machines que votre engagement. Si vous sélectionnez un modèle d'instance régional, la région de ce modèle d'instance doit également correspondre à celle spécifiée dans votre engagement.

        2. Pour spécifier manuellement les propriétés de vos VM, sélectionnez Sélectionner le type de machine, puis procédez comme suit :

          1. Sélectionnez la famille de machines qui s'applique à la série de machines que vous avez spécifiée pour l'engagement :

            • Usage général pour les séries de machines à usage général
            • Optimisé pour le calcul pour les séries de machines optimisées pour le calcul
            • À mémoire optimisée pour les séries de machines à mémoire optimisée
            • GPU pour les séries de machines optimisées pour les accélérateurs
          2. Dans le tableau contenant la colonne Série, sélectionnez la même série de machines que celle spécifiée pour l'engagement.

          3. Dans le champ Type de machine, spécifiez un type de machine prédéfini ou personnalisé de l'une des manières suivantes :

            1. Pour choisir un type de machine prédéfini, sélectionnez Prédéfini, puis le type de machine souhaité.
            2. Pour choisir un type de machine personnalisé, sélectionnez Personnalisé, puis spécifiez les cœurs et la mémoire souhaités.
          4. Pour spécifier la configuration minimale de la plate-forme du CPU, des GPU ou des deux, développez le menu  Plate-forme du CPU et GPU et procédez comme suit :

            1. Facultatif : pour spécifier une configuration minimale de plate-forme de processeur, sélectionnez une option dans la liste Plate-forme de processeur.
            2. Facultatif : Pour réserver 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.

          5. Pour réserver des disques SSD locaux, procédez comme suit :

            1. Dans le champ Nombre de disques, sélectionnez le nombre de disques SSD locaux que vous souhaitez pour chaque VM.
            2. Dans le champ Type d'interface, sélectionnez l'interface des disques SSD locaux.
    8. Pour terminer la spécification des propriétés de cette réservation, cliquez sur OK.

  12. Pour terminer la souscription de votre engagement avec les réservations associées, procédez comme suit :

    1. Cliquez sur Souscrire.
    2. Dans la boîte de dialogue Obtenir une remise sur engagement d'utilisation, si vous acceptez les conditions spécifiques du service, cliquez à nouveau sur Acheter.

gcloud

Pour créer vos réservations associées lors de la souscription de votre engagement, exécutez la commande gcloud compute commitments create.

Selon que vous souhaitez associer une ou plusieurs réservations, exécutez la commande de l'une des manières suivantes:

  • Pour créer et associer une réservation unique à votre engagement, définissez les propriétés de la réservation associée en exécutant la commande suivante:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan DURATION \
        --type COMMITMENT_TYPE
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMs \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • Pour créer et associer plusieurs réservations à votre engagement, définissez les propriétés de la réservation à l'aide d'un fichier YAML, puis spécifiez ce fichier YAML dans la commande que vous utilisez pour souscrire votre engagement. Vous pouvez également utiliser cette approche de fichier YAML pour créer et associer une réservation unique à votre engagement. Pour créer vos réservations associées à l'aide de cette approche, procédez comme suit:

    1. Créez le fichier YAML dans le répertoire actuel et spécifiez la configuration souhaitée pour chaque réservation associée. Par exemple, pour spécifier la configuration d'une réservation partagée avec deux projets qui spécifient les GPU, deux disques SSD locaux et une configuration minimale de la plate-forme du processeur, incluez le texte suivant dans votre fichier YAML :

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMs
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        localssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      Pour spécifier la configuration de plusieurs réservations, répétez ces propriétés pour chaque réservation que vous souhaitez créer. Vous pouvez associer le nombre de réservations existantes que vous souhaitez à votre engagement.

    2. Exécutez la commande gcloud compute commitments create en incluant l'option --reservation-from-file.

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan DURATION \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

Remplacez les éléments suivants par les propriétés correspondantes de l'engagement et des réservations associées:

Engagement

  • COMMITMENT_NAME : nom de l'engagement.
  • REGION : région où se trouve l'engagement.
  • PROJECT_ID: ID du projet dans lequel vous souhaitez souscrire l'engagement avec les réservations associées.
  • DURATION: durée de l'engagement, 12-month ou 36-month (12 mois ou 36 mois).
  • COMMITMENT_TYPE : type d'engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • accelerator-optimized pour les ressources de type de machine A2
    • accelerator-optimized-a3 pour les ressources de type de machine A3
    • compute-optimized pour les ressources de type de machine C2
    • compute-optimized-c2d pour les ressources de type de machine C2D
    • compute-optimized-c3 pour les ressources de type de machine C3
    • compute-optimized-c3d pour les ressources de type de machine C3D
    • general-purpose pour les ressources de type de machine N1
    • general-purpose-n2 pour les ressources de type de machine N2
    • general-purpose-n2d pour les ressources de type de machine N2D
    • graphics-optimized pour les ressources de type de machine G2
    • memory-optimized-m3 pour les ressources de type de machine M3
    • storage-optimized-z3 pour les ressources de type de machine Z3

  • COMMITTED_VCPUS: nombre de processeurs virtuels souhaité dans votre engagement. Il doit s'agit d'un nombre entier positif.

  • COMMITTED_MEMORY: quantité de mémoire en Mo ou en Go que vous souhaitez dans votre engagement. Par exemple, 10GB ou 10240MB. Si vous ne spécifiez pas d'unité, Compute Engine utilise le gigaoctet comme unité. Vous pouvez acheter de la mémoire par incréments de 0,25 Go.

  • COMMITTED_LOCAL_SSD: quantité, en Go, d'espace de stockage SSD local que vous souhaitez dans votre engagement. La capacité de chaque disque SSD local est de 375 Go.

  • COMMITTED_ACCELERATOR_COUNT : nombre de GPU souhaité dans votre engagement.

  • COMMITTED_ACCELERATOR_TYPE: type de GPU que vous souhaitez inclure dans votre engagement.

  • YAML_FILE: chemin d'accès au fichier YAML contenant la configuration des réservations associées.

Réservations jointes

  • RESERVATION_NAME: nom de la réservation associée.
  • RESERVATION_ZONE: zone de la réservation associée.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: indique si la réservation associée est une réservation spécifiquement ciblée. true ou false. Pour en savoir plus sur les réservations spécifiquement ciblées, consultez la section Fonctionnement des réservations.
  • NUMBER_OF_RESERVED_VMS: nombre de VM que vous souhaitez réserver dans la réservation associée.
  • RESERVED_MACHINE_TYPE: type de machine que vous souhaitez utiliser pour les VM de votre réservation associée.

    • Pour les types de machines prédéfinis, utilisez le format MACHINE_FAMILY-standard-CPUS (par exemple, n2-standard-4).
    • Pour les types de machines personnalisés, utilisez le format MACHINE_FAMILY-custom-CPUS-MEMORY (par exemple, n2-custom-4-5120). Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.

      Remplacez les éléments suivants :

      • MACHINE_FAMILY : la famille de types de machines. Par exemple, spécifiez n2 pour les VM N2.
      • CPUS : le nombre de processeurs virtuels.
      • MEMORY : la mémoire totale d'une VM réservée. La mémoire doit être un multiple de 256 Mo et doit être exprimée en Mo. Par exemple, pour créer une VM N2 avec 4 vCPU et 5 Go de mémoire (soit 5120 Mo), utilisez n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: nombre de GPU que vous souhaitez ajouter, par VM, dans la réservation associée.

  • RESERVED_ACCELERATOR_TYPE : le type d'accélérateur que vous souhaitez ajouter dans la réservation associée.

  • INTERFACE_1 et INTERFACE_2: le type d'interface que les disques SSD locaux doivent utiliser pour chaque VM réservée. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre local_ssd pour chaque disque SSD local que vous souhaitez ajouter. Vous pouvez spécifier jusqu'à 24 disques SSD locaux.

  • OWNER_PROJECT_ID: ID du projet dans lequel vous souhaitez souscrire l'engagement avec la réservation associée. Spécifiez ce champ si vous souhaitez partager votre réservation associée entre plusieurs projets clients.

  • MINIMUM_CPU_PLATFORM: configuration minimale de la plate-forme de processeur que vous souhaitez spécifier pour la réservation associée.

  • SHARE_SETTING : type de partage pour la réservation associée. Spécifiez ce champ avec la valeur projects si vous souhaitez partager votre réservation associée entre plusieurs projets clients. Excluez ce champ si vous souhaitez créer une réservation à projet unique.

  • CONSUMER_PROJECT_ID_1 et CONSUMER_PROJECT_ID_2 : ID des projets pouvant partager cette réservation, par exemple project-1 et project-2. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas l'ID du projet dans lequel vous créez cette réservation, car ce projet est autorisé à utiliser cette réservation par défaut. Excluez ces champs si vous souhaitez créer une réservation à projet unique.

Compute Engine crée l'engagement avec les réservations associées uniquement 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. Si votre achat a bien été effectué, un message de réussite semblable à celui-ci s'affiche:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

Exemples d'achat d'engagements en créant des réservations à associer

Les exemples de scénarios et de commandes suivants montrent comment souscrire un engagement pour des GPU, des disques SSD locaux ou les deux en créant des réservations à associer à cet engagement.

Exemple 1: Souscrire un engagement pour des GPU en associant une seule nouvelle réservation

Supposons que vous souhaitiez souscrire un engagement commitment-01 dans la région us-central1 qui inclut quatre GPU NVIDIA V100. Vous souhaitez créer une réservation reservation-01 en tant que réservation associée pour ces GPU. Supposons que vous souhaitiez également spécifier Compute Engine pour utiliser ces GPU réservés sur deux VM n1-standard-32 dans la zone us-central1-a. Pour souscrire cet exemple d'engagement avec la réservation associée, exécutez la commande suivante:

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --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

Exemple 2: Souscrire un engagement pour des GPU sans engagement de processeurs virtuels ni de mémoire

Pour souscrire un engagement et effectuer une réservation pour des GPU et des disques SSD locaux sans acheter de processeurs virtuels ni de mémoire, spécifiez 0 comme valeur pour les quantités de processeurs virtuels et de mémoire. Par exemple, supposons que vous souhaitiez souscrire un engagement commitment-02 pour un seul GPU NVIDIA P4 dans la région us-west2. Vous souhaitez également créer une réservation en tant que réservation associée et spécifier Compute Engine pour utiliser le GPU réservé sur une VM n1-standard-2 dans la zone us-west2-b. Pour souscrire cet exemple d'engagement avec la réservation associée, exécutez la commande suivante:

gcloud compute commitments create commitment-02 \
    --region=us-west2 \
    --project=myproject \
    --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

Exemple 3: Souscrire un engagement pour des GPU et des disques SSD locaux en associant plusieurs nouvelles réservations

Supposons que vous souhaitiez souscrire un engagement commitment-03 pour un GPU NVIDIA V 100 et deux disques SSD locaux dans la région us-central1. Vous souhaitez également créer et associer deux réservations dans la zone us-central1-a. Dans la première réservation, res-01, vous souhaitez réserver une VM n1-standard-2 avec un GPU. Vous souhaitez faire de res-01 une réservation ciblée, ce qui signifie que vous devez cibler spécifiquement cette réservation par son nom pour utiliser ses VM réservées. Dans la deuxième réservation, res-02, vous souhaitez réserver une VM n1-standard-8 à laquelle deux types de disques SSD locaux sont associés.

Pour souscrire cet exemple d'engagement avec les réservations associées, commencez par créer le fichier YAML avec les propriétés des deux réservations.

- 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-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

Après avoir créé le fichier YAML, pour terminer la souscription de l'engagement avec les réservations associées, exécutez la commande suivante. Notez que l'exemple d'engagement contient également des ressources de processeur virtuel et de mémoire.

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

REST

Pour créer vos réservations associées lors de la souscription de votre engagement, envoyez une requête POST à la méthode regionCommitments.insert. Dans votre requête, incluez le champ reservations pour définir la liste de toutes les nouvelles réservations que vous souhaitez créer et associer. Vous pouvez associer le nombre de réservations existantes que vous souhaitez à votre engagement.

  • Pour créer votre réservation en spécifiant manuellement toutes les propriétés de la VM, incluez le champ instanceProperties et excluez le champ sourceInstanceTemplate.

    Par exemple, pour spécifier manuellement la configuration d'une réservation partagée avec deux projets qui spécifient des GPU, deux disques SSD locaux et une configuration minimale de plate-forme de processeur, envoyez la requête suivante:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • Pour créer votre réservation en spécifiant un modèle d'instance, incluez le champ sourceInstanceTemplate et excluez le champ instanceProperties.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "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 par les propriétés correspondantes de l'engagement et des réservations associées: 

Engagement

  • COMMITMENT_NAME : nom de l'engagement.
  • REGION : région où se trouve l'engagement.
  • PROJECT_ID: ID du projet dans lequel vous souhaitez souscrire l'engagement avec les réservations associées.
  • DURATION: durée de l'engagement, TWELVE_MONTH ou THIRTY_SIX_MONTH (12 mois ou 36 mois).
  • COMMITMENT_TYPE : type d'engagement. Les types d'engagements suivants fournissent des options pour les GPU, les disques SSD locaux ou les deux :

    • ACCELERATOR_OPTIMIZED pour les ressources de type de machine A2
    • ACCELERATOR_OPTIMIZED_A3 pour les ressources de type de machine A3
    • COMPUTE_OPTIMIZED pour les ressources de type de machine C2
    • COMPUTE_OPTIMIZED_C2D pour les ressources de type de machine C2D
    • COMPUTE_OPTIMIZED_C3 pour les ressources de type de machine C3
    • COMPUTE_OPTIMIZED_C3D pour les ressources de type de machine C3D
    • GENERAL_PURPOSE pour les ressources de type de machine N1
    • GENERAL_PURPOSE_N2 pour les ressources de type de machine N2
    • GENERAL_PURPOSE_N2D pour les ressources de type de machine N2D
    • GRAPHICS_OPTIMIZED pour les ressources de type de machine G2
    • MEMORY_OPTIMIZED_M3 pour les ressources de type de machine M3
    • STORAGE_OPTIMIZED_Z3 pour les ressources de type de machine Z3

  • COMMITTED_VCPUS: nombre de processeurs virtuels souhaité dans votre engagement. Il doit s'agit d'un nombre entier positif.

  • COMMITTED_MEMORY: quantité de mémoire en Mo que vous souhaitez pour votre engagement. Par exemple, 10240MB. Vous pouvez acheter de la mémoire par incréments de 256 Mo.

  • COMMITTED_LOCAL_SSD: quantité, en Go, d'espace de stockage SSD local que vous souhaitez dans votre engagement. La capacité de chaque disque SSD local est de 375 Go.

  • COMMITTED_ACCELERATOR_COUNT : nombre de GPU souhaité dans votre engagement.

  • COMMITTED_ACCELERATOR_TYPE : type de GPU que vous souhaitez inclure dans votre engagement.

Réservations jointes

  • RESERVATION_NAME: nom de la réservation associée.
  • RESERVATION_ZONE: zone de la réservation associée.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: indique si la réservation associée est une réservation spécifiquement ciblée. true ou false. Pour en savoir plus sur les réservations spécifiquement ciblées, consultez la section Fonctionnement des réservations.
  • NUMBER_OF_RESERVED_VMS: nombre de VM que vous souhaitez réserver dans la réservation associée.
  • RESERVED_MACHINE_TYPE: type de machine que vous souhaitez utiliser pour les VM de votre réservation associée.

    • Pour les types de machines prédéfinis, utilisez le format MACHINE_FAMILY-standard-CPUS (par exemple, n2-standard-4).
    • Pour les types de machines personnalisés, utilisez le format MACHINE_FAMILY-custom-CPUS-MEMORY (par exemple, n2-custom-4-5120). Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.

      Remplacez les éléments suivants :

      • MACHINE_FAMILY : la famille de types de machines. Par exemple, spécifiez n2 pour les VM N2.
      • CPUS : le nombre de processeurs virtuels.
      • MEMORY : la mémoire totale d'une VM réservée. La mémoire doit être un multiple de 256 Mo et doit être exprimée en Mo. Par exemple, pour créer une VM N2 avec 4 processeurs virtuels et 5 Go de mémoire (soit 5120 Mo), utilisez n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT : nombre de GPU que vous souhaitez ajouter, par VM, dans la réservation associée.

  • RESERVED_ACCELERATOR_TYPE : le type d'accélérateur que vous souhaitez ajouter dans la réservation associée.

  • INTERFACE_1 et INTERFACE_2: le type d'interface que les disques SSD locaux doivent utiliser pour chaque VM réservée. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre localSsds pour chaque disque SSD local que vous souhaitez ajouter. Vous pouvez spécifier jusqu'à 24 disques SSD locaux.

  • MINIMUM_CPU_PLATFORM : configuration minimale de la plate-forme de processeur que vous souhaitez spécifier pour la réservation associée.

  • INSTANCE_TEMPLATE_NAME: nom du modèle d'instance que vous souhaitez utiliser pour créer votre réservation associée

  • SHARE_SETTING : type de partage pour la réservation associée. Spécifiez ce champ avec la valeur SPECIFIC_PROJECTS si vous souhaitez partager votre réservation associée entre plusieurs projets clients. Excluez ce champ si vous souhaitez créer une réservation à projet unique.

  • CONSUMER_PROJECT_ID_1 et CONSUMER_PROJECT_ID_2 : ID des projets pouvant partager cette réservation, par exemple project-1 et project-2. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas l'ID du projet dans lequel vous créez cette réservation, car ce projet est autorisé à utiliser cette réservation par défaut. Excluez ces champs si vous souhaitez créer une réservation à projet unique.

Compute Engine crée l'engagement avec les réservations associées créées uniquement 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. Si votre achat a réussi, Compute Engine renvoie un état 200 pour votre requête API REST.

Exemples d'achat d'engagements en créant des réservations à associer

Les exemples de scénarios et de commandes suivants montrent comment souscrire un engagement pour des GPU, des disques SSD locaux ou les deux en créant des réservations à associer à cet engagement.

Exemple 1: Souscrire un engagement pour des GPU en associant une seule nouvelle réservation

Supposons que vous souhaitiez souscrire un engagement commitment-01 dans la région us-central1 qui inclut quatre GPU NVIDIA V100. Vous souhaitez créer une réservation reservation-01 en tant que réservation associée pour ces GPU. Supposons que vous souhaitiez également spécifier Compute Engine pour utiliser ces GPU réservés sur deux VM n1-standard-8 dans la zone us-central1-a. Pour souscrire cet exemple d'engagement avec la réservation associée, envoyez la requête POST suivante:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "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"
    }
  ]
}

Exemple 2: Souscrire un engagement pour des GPU sans engagement de processeurs virtuels ni de mémoire

Pour souscrire un engagement et effectuer une réservation pour des GPU et des disques SSD locaux sans acheter de processeurs virtuels ni de mémoire, spécifiez 0 comme valeur pour les quantités de processeurs virtuels et de mémoire. Par exemple, supposons que vous souhaitiez souscrire un engagement commitment-02 pour un seul GPU NVIDIA P4 dans la région us-west2. Vous souhaitez également créer une réservation en tant que réservation associée et spécifier Compute Engine pour utiliser le GPU réservé sur une VM n1-standard-2 dans la zone us-west2-b. Pour souscrire cet exemple d'engagement avec la réservation associée, envoyez la requête POST suivante:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{
  "name": "commitment-02",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p4",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 4,
              "acceleratorType": "nvidia-tesla-p4"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-west2-b"
    }
  ]
}

Exemple 3 : Souscrire un engagement pour des GPU et des disques SSD locaux en associant plusieurs nouvelles réservations

Supposons que vous souhaitiez souscrire un engagement commitment-03 pour un GPU NVIDIA V 100 et deux disques SSD locaux dans la région us-central1. Vous souhaitez également créer et associer deux réservations dans la zone us-central1-a. Dans la première réservation, res-01, vous souhaitez réserver une VM n1-standard-2 avec un GPU. Vous souhaitez faire de res-01 une réservation ciblée, ce qui signifie que vous devez cibler spécifiquement cette réservation par son nom pour utiliser ses VM réservées. Dans la deuxième réservation, res-02, vous souhaitez réserver une VM n1-standard-8 à laquelle deux types de disques SSD locaux sont associés. Pour souscrire cet exemple d'engagement avec les réservations associées, envoyez la requête POST suivante. Notez que l'exemple d'engagement contient également des ressources de processeur virtuel et de mémoire.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-03",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "1",
      "type": "ACCELERATOR"
    },
    {
      "amount": "768000",
      "type": "LOCAL_SSD"
    }
  ],
  "reservations":
  [
    {
      "name": "res-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "us-central1-a"
    },
    {
      "name": "res-02",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            },
            {
              "diskSizeGb": "375",
              "interface": "NVME"
            }
          ]
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

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.

Modifications autorisées

Lorsque vous remplacez la réservation associée existante d'un engagement par une nouvelle réservation, vous pouvez demander 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 série 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 tant que la quantité totale de GPU réservés et disques SSD locaux reste identique.
  • Vous pouvez spécifier que les réservations remplacées sont des réservations locales ou partagées.

Conditions requises

Lorsque vous remplacez la réservation associée à votre engagement par une nouvelle réservation, votre requête doit répondre à toutes les exigences suivantes :

  • Vous ne pouvez remplacer qu'une seule réservation associée à la fois, par exactement une autre réservation associée. Pour remplacer une réservation associée, supprimez simultanément une réservation associée existante en définissant son nombre de VM sur 0 et définissez une nouvelle réservation associée que vous souhaitez utiliser pour la remplacer.
  • 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 supprimée.
  • La quantité et les types de GPU spécifiés dans la nouvelle réservation doivent correspondre à la réservation supprimée.
  • Les nombres et les types de disques SSD locaux spécifiés dans la nouvelle réservation doivent correspondre à la réservation supprimée.
  • 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.

Votre demande de remplacement de réservation dépend également de la disponibilité de capacité à ce moment. Si la capacité d'une requête n'est pas disponible, la requête échoue et renvoie une erreur de disponibilité des ressources. Vous pouvez essayer de la résoudre en modifiant ou en reportant la requête. Pour en savoir plus, consultez la documentation concernant la résolution des problèmes de disponibilité des ressources.

Si votre requête de remplacement d'une réservation associée échoue, la réservation associée et vos ressources réservées existantes ne sont pas affectées. Pour conserver votre capacité, attendez d'apporter des modifications correspondantes à vos VM jusqu'à ce que votre requête de remplacement d'une réservation aboutisse.

Procédure pour remplacer une réservation associée

Vous pouvez remplacer les réservations d'un engagement à l'aide de la Google Cloud CLI ou de REST.

gcloud

Pour remplacer les réservations auxquelles des engagements sont associés, procédez comme suit :

  1. Créez un fichier YAML dans le répertoire actuel avec les configurations des réservations associées suivantes :

    • Réservation actuelle que vous souhaitez remplacer.

      Pour afficher les détails de cette réservation, consultez la section Afficher les détails d'une réservation.

    • La nouvelle réservation de remplacement.

    Le contenu du fichier YAML est similaire à ce qui suit :

    - reservation: CURRENT_RESERVATION_NAME
      reservation_zone: CURRENT_RESERVATION_ZONE
      vm_count: 0
      machine_type: CURRENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
        type: CURRENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: CURRENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: CURRENT_RESERVATION_INTERFACE_2
        size: 375
      project: CURRENT_RESERVATION_PROJECT_ID
      share-setting: CURRENT_RESERVATION_SHARE_SETTING
      share-with:
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
    - reservation: REPLACEMENT_RESERVATION_NAME
      reservation_zone: REPLACEMENT_RESERVATION_ZONE
      vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs
      machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT
        type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: REPLACEMENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: REPLACEMENT_RESERVATION_INTERFACE_2
        size: 375
      project: REPLACEMENT_RESERVATION_PROJECT_ID
      share-setting: REPLACEMENT_RESERVATION_SHARE_SETTING
      share-with:
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
    
    

    Remplacez les éléments suivants par les propriétés correspondantes des réservations actuelles et de remplacement :

    Réservation actuelle

    Pour la réservation actuelle, toutes les propriétés suivantes doivent être exactement les mêmes que lorsque vous avez affiché la réservation. Omettez les champs pour toutes les propriétés que la réservation actuelle n'a pas déjà.

    • CURRENT_RESERVATION_NAME : nom de la réservation associée actuelle.
    • CURRENT_RESERVATION_ZONE : zone de la réservation associée actuelle.
    • CURRENT_RESERVATION_MACHINE_TYPE : type de machine de la réservation associée actuelle.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS : nombre de GPU réservés dans la réservation associée actuelle.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE : type d'accélérateur réservé dans la réservation associée actuelle.
    • CURRENT_RESERVATION_INTERFACE_1 et CURRENT_RESERVATION_INTERFACE_2 : le type d'interface que les disques SSD locaux utilisent pour chaque VM réservée dans la réservation associée actuelle. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre local_ssd pour tous les disques SSD locaux réservés.
    • CURRENT_RESERVATION_PROJECT_ID : ID du projet contenant l'engagement et la réservation associée. Spécifiez ce champ si votre réservation associée actuelle est partagée entre plusieurs projets clients.
    • CURRENT_RESERVATION_SHARE_SETTING : type de partage pour la réservation actuelle. Spécifiez ce champ avec la valeur projects si votre réservation associée actuelle est partagée entre plusieurs projets clients.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 et CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 : ID des projets avec lesquels vous partagez la réservation associée actuelle, par exemple project-1 et project-2.

    Réservation de remplacement

    Pour la réservation de remplacement, définissez les propriétés suivantes comme nécessaire. Assurez-vous de répondre à toutes les exigences lorsque vous spécifiez ces propriétés. Omettez les champs supplémentaires que vous ne souhaitez pas utiliser.

    • REPLACEMENT_RESERVATION_NAME : nom de la nouvelle réservation de remplacement.
    • REPLACEMENT_RESERVATION_ZONE : zone de la nouvelle réservation de remplacement.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS : nombre de VM que vous souhaitez réserver dans la nouvelle réservation de remplacement.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE : type de machine que vous souhaitez utiliser pour les VM dans votre nouvelle réservation de remplacement.

      • Pour les types de machines prédéfinis, utilisez le format MACHINE_FAMILY-standard-CPUS (par exemple, n2-standard-4).
      • Pour les types de machines personnalisés, utilisez le format MACHINE_FAMILY-custom-CPUS-MEMORY (par exemple, n2-custom-4-5120). Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.

      Remplacez les éléments suivants :

      • MACHINE_FAMILY : la famille de types de machines. Par exemple, spécifiez n2 pour les VM N2.
      • CPUS : le nombre de processeurs virtuels.
      • MEMORY : la mémoire totale d'une VM réservée. La mémoire doit être un multiple de 256 Mo et doit être exprimée en Mo. Par exemple, pour créer une VM N2 avec 4 vCPU et 5 Go de mémoire (soit 5120 Mo), utilisez n2-custom-4-5120.
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS : le nombre de GPU que vous souhaitez ajouter, par VM, dans la réservation de remplacement.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE : le type d'accélérateur que vous souhaitez ajouter dans la réservation de remplacement.

    • REPLACEMENT_RESERVATION_INTERFACE_1 et REPLACEMENT_RESERVATION_INTERFACE_2 : type d'interface que les disques SSD locaux doivent utiliser pour chaque VM réservée. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre local_ssd pour chaque disque SSD local que vous souhaitez ajouter. Vous pouvez spécifier jusqu'à 24 disques SSD locaux.

    • REPLACEMENT_RESERVATION_PROJECT_ID : ID du projet contenant l'engagement et la réservation associée. Spécifiez ce champ si vous souhaitez partager votre réservation de remplacement entre plusieurs projets clients.

    • REPLACEMENT_RESERVATION_SHARE_SETTING : type de partage pour la réservation de remplacement. Spécifiez ce champ avec la valeur projects si vous souhaitez partager votre réservation de remplacement entre plusieurs projets clients.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 et REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2 : ID des projets pouvant partager cette réservation, par exemple project-1,project-2. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas REPLACEMENT_RESERVATION_PROJECT_ID, qui est déjà par défaut autorisé à utiliser cette réservation.

  2. Exécutez la commande gcloud beta compute commitments update-reservations et spécifiez le chemin d'accès au fichier YAML à l'aide de l'option --reservations-from-file.

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    Remplacez les éléments suivants :

    • COMMITMENT_NAME : nom de l'engagement avec la réservation associée.
    • PROJECT_ID : ID du projet de l'engagement avec la réservation associée.
    • REGION : région où se trouve l'engagement.
    • YAML_FILE : chemin d'accès au fichier YAML contenant la configuration des réservations actuelles et de remplacement.

Exemple pour remplacer une réservation associée à un engagement

Pour illustrer cela, cette section montre un exemple d'engagement avec une réservation associée et explique comment remplacer l'exemple de réservation associée.

Exemple d'engagement avec une réservation associée

Par exemple, supposons que vous souhaitiez mettre à jour les réservations associées à l'engagement my-commitment-with-reservations, qui ont été achetées à l'aide de la commande suivante :

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

Pour cet exemple, supposons que lorsque cette commande a été exécutée, one-reservation.yaml était un fichier du répertoire actuel avec le contenu suivant, qui définit une réservation associée nommée res-1.

  - reservation: res-1
    reservation_zone: asia-east1-a
    vm_count: 4
    machine_type: n1-standard-4
    accelerator:
    - count: 1
      type: nvidia-tesla-p100
    local_ssd:
    - interface: scsi
      size: 375
    - interface: scsi
      size: 375

Cet engagement my-commitment-with-reservations et la réservation associée res-1 ont donné lieu aux ressources validées et réservées suivantes :

Type de ressource Ressources dans l'engagement
(my-commitment-with-reservations)
Ressources dans la réservation actuellement associée
(res-1)
Processeurs virtuels et mémoire 16 processeurs virtuels et 60 Go 16 processeurs virtuels et 60 Go
(4 VM n1-standard-4 réservées)*
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 par VM, pour 4 VM)*
Disques SSD locaux 3 000 Go ou 8 disques SSD locaux 3 000 Go ou 8 disques SSD locaux
(750 Go ou 2 disques SSD locaux par VM, pour 4 VM)*

*Plus précisément, l'exemple de réservation associé res-1, réserve 4 VM n1-standard-4, chacune avec 1 GPU P100 et deux disques SSD locaux de type d'interface scsi. Le type de machine n1-standard-4 utilise 4 processeurs virtuels et 15 Go pour chaque VM.

Remplacer l'exemple de réservation associée

Supposons que vous souhaitiez remplacer la réservation associée res-1 par une nouvelle réservation associée res-2 et modifier les ressources réservées comme suit :

Type de ressource Ressources dans l'engagement
(my-commitment-with-reservations)
Ressources dans la réservation actuellement associée
(res-1)
Ressources dans la réservation associée de remplacement
(res-2)
Processeurs virtuels et mémoire 16 processeurs virtuels et 60 Go 16 processeurs virtuels et 60 Go
(4 VM n1-standard-4 réservées)*
16 processeurs virtuels et 60 Go
(2 VM n1-standard-8 réservées et partagées)
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 par VM, pour 4 VM)*
4 GPU P100
(2 GPU P100 par VM, pour 2 VM)
Disques SSD locaux 3 000 Go ou 8 disques SSD locaux 3 000 Go ou 8 disques SSD locaux
(750 Go ou 2 disques SSD locaux par VM, pour 4 VM)*
3 000 Go ou 8 disques SSD locaux
(1 500 Go ou 4 disques SSD locaux par VM, pour 2 VM)*

*Plus précisément, l'exemple de réservation associé res-1, réserve 4 VM n1-standard-4, chacune avec 1 GPU P100 et deux disques SSD locaux de type d'interface scsi. Le type de machine n1-standard-4 utilise 4 processeurs virtuels et 15 Go pour chaque VM.

Plus précisément, la réservation associée de remplacement définit res-2, qui réserve deux VM n1-standard-8, chacune avec 1 GPU P100 et 4 disques SSD locaux avec le type d'interface scsi. En outre, res-2 est partagé avec deux autres projets, project-1 et project-2, et appartient au projet actuel, my-project. Le type de machine n1-standard-8 utilise 8 processeurs virtuels et 30 Go pour chaque VM.

Pour remplacer la réservation associée res-1 par res-2 pour l'engagement my-commitment-with-reservations, procédez comme suit :

  1. Créez un fichier nommé two-reservations.yaml dans le répertoire actuel qui contient le contenu suivant :

    - reservation: res-1
      reservation_zone: asia-east1-a
      vm_count: 0
      machine_type: n1-standard-4
      accelerator:
      - count: 1
        type: nvidia-tesla-p100
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    - reservation: res-2
      reservation_zone: asia-east1-a
      vm_count: 2
      machine_type: n1-standard-8
      accelerator:
      - count: 2
        type: nvidia-tesla-p100
      project: my-project
      share-setting: projects
      share-with:
      - project-1
      - project-2
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    
  2. Exécutez la commande ci-dessous.

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

REST

Pour remplacer des réservations auxquelles des engagements sont associés, envoyez une requête POST à l'aide de la méthode regionCommitments.updateReservations.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations

{
  "reservations":
  [
    {
      "name": "REPLACEMENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "REPLACEMENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    },
    {
      "name": "CURRENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "0",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "CURRENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "CURRENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    }
  ]
}

Remplacez les éléments suivants par les propriétés correspondantes de l'engagement, de la réservation actuelle et de la réservation de remplacement :

Engagement

  • COMMITMENT_NAME : nom de l'engagement avec la réservation associée.
  • PROJECT_ID : ID du projet de l'engagement avec la réservation associée. Il s'agit également de l'ID de projet pour les réservations en cours et associées.
  • COMMITMENT_ZONE : zone de l'engagement avec la réservation associée.

Réservation actuelle

Pour la réservation actuelle, toutes les propriétés suivantes doivent être exactement les mêmes que lorsque vous avez affiché la réservation. Omettez les champs pour toutes les propriétés que la réservation actuelle n'a pas déjà.

  • CURRENT_RESERVATION_NAME : nom de la réservation associée actuelle.
  • CURRENT_RESERVATION_ZONE : zone de la réservation associée actuelle.
  • CURRENT_RESERVATION_MACHINE_TYPE : type de machine de la réservation associée actuelle.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS : nombre de GPU réservés dans la réservation associée actuelle.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE : type d'accélérateur réservé dans la réservation associée actuelle.
  • CURRENT_RESERVATION_INTERFACE_1 et CURRENT_RESERVATION_INTERFACE_2 : le type d'interface que les disques SSD locaux utilisent pour chaque VM réservée dans la réservation associée actuelle. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre localSsds pour tous les disques SSD locaux réservés.
  • CURRENT_RESERVATION_SHARE_SETTING : type de partage pour la réservation actuelle. Spécifiez ce paramètre avec la valeur projects si votre réservation associée actuelle est partagée entre plusieurs projets clients.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 et CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 : ID des projets avec lesquels vous partagez la réservation associée actuelle, par exemple project-1 et project-2.

Réservation de remplacement

Pour la réservation de remplacement, définissez les propriétés suivantes comme nécessaire. Assurez-vous de répondre à toutes les exigences lorsque vous spécifiez ces propriétés. Omettez les champs supplémentaires que vous ne souhaitez pas utiliser.

  • REPLACEMENT_RESERVATION_NAME : nom de la nouvelle réservation de remplacement.
  • REPLACEMENT_RESERVATION_ZONE : zone de la nouvelle réservation de remplacement.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS : nombre de VM que vous souhaitez réserver dans la nouvelle réservation de remplacement.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE : type de machine que vous souhaitez pour les VM dans votre nouvelle réservation de remplacement.

    • Pour les types de machines prédéfinis, utilisez le format MACHINE_FAMILY-standard-CPUS (par exemple, n2-standard-4).
    • Pour les types de machines personnalisés, utilisez le format MACHINE_FAMILY-custom-CPUS-MEMORY (par exemple, n2-custom-4-5120). Pour afficher la liste complète des restrictions, lisez les spécifications qui s'appliquent aux types de machines personnalisés.

    Remplacez les éléments suivants :

    • MACHINE_FAMILY : la famille de types de machines. Par exemple, spécifiez n2 pour les VM N2.
    • CPUS : le nombre de processeurs virtuels.
    • MEMORY : la mémoire totale d'une VM réservée. La mémoire doit être un multiple de 256 Mo et doit être exprimée en Mo. Par exemple, pour créer une VM N2 avec 4 processeurs virtuels et 5 Go de mémoire (soit 5120 Mo), utilisez n2-custom-4-5120.
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS : le nombre de GPU que vous souhaitez ajouter, par VM, dans la réservation de remplacement.

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE : le type d'accélérateur que vous souhaitez ajouter dans la réservation de remplacement.

  • REPLACEMENT_RESERVATION_INTERFACE_1 et REPLACEMENT_RESERVATION_INTERFACE_2 : type d'interface que les disques SSD locaux doivent utiliser pour chaque VM réservée. Les options valides sont : scsi et nvme. La capacité de chaque disque SSD local est de 375 Go. Répétez le paramètre localSsds pour chaque disque SSD local que vous souhaitez ajouter. Vous pouvez spécifier jusqu'à 24 disques SSD locaux.

  • REPLACEMENT_RESERVATION_SHARE_SETTING : type de partage pour la réservation de remplacement. Spécifiez ce paramètre avec la valeur en tant que projects si vous souhaitez partager votre réservation de remplacement entre plusieurs projets clients.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 et REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2 : ID des projets pouvant partager cette réservation, par exemple project-1,project-2. Vous pouvez inclure jusqu'à 100 projets clients. Ces projets doivent appartenir à la même organisation que le projet propriétaire. N'incluez pas PROJECT_ID, qui est déjà par défaut autorisé à utiliser cette réservation.

Exemple pour remplacer une réservation associée à un engagement

Pour illustrer cela, cette section montre un exemple d'engagement avec une réservation associée et explique comment remplacer l'exemple de réservation associée.

Exemple d'engagement avec une réservation associée

Par exemple, supposons que vous souhaitiez remplacer la réservation associée res-1 pour l'engagement my-commitment-with-reservations, acheté en effectuant la requête POST suivante :

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

  {
    "name": "my-commitment-with-reservations",
    "plan": "TWELVE_MONTH",
    "reservations":
    [
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "4",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "1",
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ],
    "resources":
    [
      {
        "amount": "16",
        "type": "VCPU"
      },
      {
        "amount": "61440",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "nvidia-tesla-p100",
        "amount": "4",
        "type": "ACCELERATOR"
      }
      {
        "amount": "3072000",
        "type": "LOCAL_SSD"
      }
    ],
    "type": "GENERAL_PURPOSE"
  }

Cet engagement my-commitment-with-reservations et la réservation associée res-1 ont donné lieu aux ressources validées et réservées suivantes :

Type de ressource Ressources dans l'engagement
(my-commitment-with-reservations)
Ressources dans la réservation actuellement associée
(res-1)
Processeurs virtuels et mémoire 16 processeurs virtuels et 60 Go 16 processeurs virtuels et 60 Go
(4 VM n1-standard-4 réservées)*
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 par VM, pour 4 VM)*
Disques SSD locaux 3 000 Go ou 8 disques SSD locaux 3 000 Go ou 8 disques SSD locaux
(750 Go ou 2 disques SSD locaux par VM, pour 4 VM)*

*Plus précisément, l'exemple de réservation associé res-1, réserve 4 VM n1-standard-4, chacune avec 1 GPU P100 et deux disques SSD locaux de type d'interface scsi. Le type de machine n1-standard-4 utilise 4 processeurs virtuels et 15 Go pour chaque VM.

Remplacer l'exemple de réservation associée

Supposons que vous souhaitiez remplacer la réservation associée res-1 par une nouvelle réservation associée res-2 et modifier les ressources réservées comme suit :

Type de ressource Ressources dans l'engagement
(my-commitment-with-reservations)
Ressources dans la réservation actuellement associée
(res-1)
Ressources dans la réservation associée de remplacement
(res-2)
Processeurs virtuels et mémoire 16 processeurs virtuels et 60 Go 16 processeurs virtuels et 60 Go
(4 VM n1-standard-4 réservées)*
16 processeurs virtuels et 60 Go
(2 VM n1-standard-8 réservées et partagées)
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 par VM, pour 4 VM)*
4 GPU P100
(2 GPU P100 par VM, pour 2 VM)
Disques SSD locaux 3 000 Go ou 8 disques SSD locaux 3 000 Go ou 8 disques SSD locaux
(750 Go ou 2 disques SSD locaux par VM, pour 4 VM)*
3 000 Go ou 8 disques SSD locaux
(1 500 Go ou 4 disques SSD locaux par VM, pour 2 VM)*

*Plus précisément, l'exemple de réservation associé res-1, réserve 4 VM n1-standard-4, chacune avec 1 GPU P100 et deux disques SSD locaux de type d'interface scsi. Le type de machine n1-standard-4 utilise 4 processeurs virtuels et 15 Go pour chaque VM.

Plus précisément, la réservation associée de remplacement définit res-2, qui réserve deux VM n1-standard-8, chacune avec 1 GPU P100 et 4 disques SSD locaux avec le type d'interface scsi. En outre, res-2 est partagé avec deux autres projets, project-1 et project-2, et appartient au projet actuel, my-project. Le type de machine n1-standard-8 utilise 8 processeurs virtuels et 30 Go pour chaque VM.

Pour remplacer la réservation associée res-1 par res-2 pour l'engagement my-commitment-with-reservations, envoyez la requête POST suivante à l'aide de la méthode regionCommitments.updateReservations :

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

  {
    "reservations":
    [
      {
        "name": "res-2",
        "specificReservation":
        {
          "count": "2",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 2,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-8"
          }
        },
        "zone": "asia-east1-a"
      },
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "0",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 1,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ]
  }

Étapes suivantes