Créer une VM à démarrage flexible

Ce document explique comment créer une instance de machine virtuelle (VM) à démarrage flexible. Les VM à démarrage flexible s'exécutent pendant sept jours maximum et vous aident à acquérir des ressources très demandées, comme des GPU, à un prix réduit. Grâce à ces possibilités, les VM à démarrage flexible représentent une solution économique pour exécuter des charges de travail de courte durée, telles que l'affinage de modèles et l'inférence par lot.

Pour en savoir plus sur les principales caractéristiques des VM à démarrage flexible, y compris sur les exigences et les limites applicables lorsque vous les créez, consultez À propos des VM à démarrage flexible.

Avant de commencer

  • Consultez l'une des exigences de configuration suivantes, en fonction du type de machine que vous souhaitez utiliser :

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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 en sélectionnant l'une des options suivantes :

    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. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    2. Set a default region and zone.

    REST

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

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

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

Rôles requis

Pour obtenir les autorisations nécessaires à la création de VM à démarrage flexible, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer des VM à démarrage flexible. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des VM à démarrage flexible :

  • compute.instances.create sur le projet
  • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
  • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
  • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
  • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
  • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
  • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
  • Pour créer un disque pour la VM : compute.disks.create sur le projet
  • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
  • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer une VM à démarrage flexible

Pour créer une VM à démarrage flexible, sélectionnez l'une des options suivantes :

Console

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

    Accéder à la page Créer une instance

  2. Dans le volet Configuration de la machine, procédez comme suit :

    1. Dans le champ Nom, saisissez un nom pour la VM à démarrage flexible.

    2. Spécifiez la région et la zone dans lesquelles vous souhaitez créer votre VM. Pour connaître les régions et zones dans lesquelles le type de machine que vous souhaitez utiliser est disponible, consultez Régions et zones disponibles.

    3. En fonction de la charge de travail que vous souhaitez exécuter, spécifiez un type de machine comme suit :

      • Pour spécifier un type de machine optimisé pour les accélérateurs :

        1. Cliquez sur l'onglet GPU.

        2. Dans la liste Type de GPU, sélectionnez un type de GPU, à l'exception de NVIDIA GB200 192 Go (A4X) et NVIDIA RTX PRO 600 (G4).

        3. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU à associer à votre VM.

        4. 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, sélectionnez l'option Activer le poste de travail virtuel (NVIDIA GRID).

      • Pour spécifier un type de machine H4D :

        1. Cliquez sur l'onglet Optimisé pour le calcul.

        2. Dans la colonne Série, sélectionnez H4D.

  3. Dans le menu de navigation, cliquez sur Avancé. Dans le volet Avancé qui s'affiche, procédez comme suit :

    1. Dans la section Réservations, sélectionnez Ne pas utiliser de réservation.

    2. Dans la section Modèle de provisionnement, dans la liste Modèle de provisionnement de VM, sélectionnez Démarrage flexible.

    3. Dans le champ Saisir le nombre d'heures, saisissez la durée maximale pendant laquelle vous souhaitez que la VM s'exécute. La valeur doit être comprise entre 36 secondes (0.01) et sept jours (168, soit 168 heures).

    4. Cochez la case Définir un temps d'attente pour la création de la VM. Ensuite, en fonction des exigences zonales de votre charge de travail, nous vous recommandons de spécifier l'une des durées suivantes pour augmenter vos chances de voir aboutir votre demande de création de VM :

      • Si votre charge de travail vous impose de créer la VM dans une zone spécifique, indiquez une durée comprise entre 90 secondes et 2 heures. Plus la durée est longue, plus vous avez de chances d'obtenir des ressources.

      • Si la VM peut s'exécuter dans n'importe quelle zone de la région, spécifiez une durée de 0 seconde ou décochez la case Définir un délai d'attente pour la création de la VM. Cette action indique que Compute Engine n'alloue des ressources que si elles sont immédiatement disponibles. Si la requête de création de VM échoue parce que les ressources ne sont pas disponibles, réessayez dans une autre zone.

  4. Pour créer la VM à démarrage flexible, cliquez sur Créer.

gcloud

Pour créer une VM à démarrage flexible, utilisez la commande gcloud compute instances create avec les options suivantes :

  • L'option --request-valid-for-duration

  • L'option --provisioning-model=FLEX_START

  • L'option --instance-termination-action

  • L'option --max-run-duration

  • L'option --maintenance-policy=TERMINATE

  • L'option --reservation-affinity=none

Pour créer une VM à démarrage flexible, exécutez la commande suivante :

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE \
    --request-valid-for-duration=VALID_FOR_DURATION \
    --provisioning-model=FLEX_START \
    --instance-termination-action=TERMINATION_ACTION \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Remplacez les éléments suivants :

  • VM_NAME : nom de votre nouvelle VM.

  • MACHINE_TYPE : type de machine à utiliser pour la VM à démarrage flexible. Si vous spécifiez un type de machine G2 ou N1, tenez compte des points suivants :

    • Pour les types de machines G2, vous pouvez éventuellement spécifier un poste de travail virtuel NVIDIA RTX (vWS) à utiliser pour les charges de travail graphiques intensives. Pour ce faire, incluez l'option --accelerator dans la commande comme suit :

      --accelerator=count=VWS_ACCELERATOR_COUNT,type=nvidia-l4-vws
      

      Remplacez VWS_ACCELERATOR_COUNT par le nombre de NVIDIA RTX vWS dont votre charge de travail a besoin.

    • Pour les types de machines N1, vous devez spécifier le nombre et le type de GPU à associer à votre VM. Si vous ne le faites pas, la création de la VM échouera. Pour associer des GPU à une VM N1, incluez l'option --accelerator dans la commande comme suit :

      --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
      

      Remplacez les éléments suivants :

  • ZONE : zone dans laquelle vous souhaitez créer la VM. Pour vérifier que le type de machine que vous avez spécifié est disponible dans la zone où vous souhaitez créer la VM, consultez Régions et zones disponibles.

  • VALID_FOR_DURATION : durée maximale d'attente pour le provisionnement des ressources demandées, sous forme de nombre(s) suivi(s) d'une unité (s, m, h ou d). Par exemple, une valeur de 30m définit une durée de 30 minutes, et une valeur de 1h2m3s définit une durée d'une heure, deux minutes et trois secondes. En fonction des exigences zonales de votre charge de travail, nous vous recommandons de spécifier l'une des durées suivantes pour augmenter vos chances de voir aboutir votre demande de création de VM :

    • Si votre charge de travail vous impose de créer la VM dans une zone spécifique, indiquez une durée comprise entre 90 secondes (90s) et deux heures (2h). Plus la durée est longue, plus vous avez de chances d'obtenir des ressources.

    • Si la VM peut s'exécuter dans n'importe quelle zone de la région, spécifiez une durée de zéro seconde (0s). Cette valeur indique que Compute Engine n'alloue des ressources que si elles sont immédiatement disponibles. Si la requête de création de VM échoue parce que les ressources ne sont pas disponibles, réessayez dans une autre zone.

  • TERMINATION_ACTION : indique s'il faut arrêter ou supprimer la VM à la fin de sa durée d'exécution. Spécifiez une des valeurs suivantes :

    • Pour arrêter la VM : STOP

    • Pour supprimer la VM : DELETE

  • RUN_DURATION : durée maximale pendant laquelle la VM s'exécute avant que Compute Engine ne la supprime. Cette durée doit être exprimée sous forme de nombre(s) suivi(s) d'une unité (s, m, h ou d). La valeur doit être comprise entre 10 minutes et sept jours.

REST

Pour créer une VM à démarrage flexible, envoyez une requête POST à la méthode instances.insert. Dans le corps de la requête, incluez les champs suivants :

  • Le champ params.requestValidForDuration.

  • Le champ scheduling.provisioningModel défini sur FLEX_START.

  • Le champ scheduling.instanceTerminationAction.

  • Le champ scheduling.maxRunDuration.

  • Le champ scheduling.onHostMaintenance défini sur TERMINATE.

  • Le champ reservationAffinity.consumeReservationType défini sur NO_RESERVATION.

Pour créer une VM à démarrage flexible, envoyez une requête POST comme suit :

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

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "params": {
    "requestValidForDuration": {
      "seconds": VALID_FOR_DURATION
    }
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "maxRunDuration": {
      "seconds": RUN_DURATION
    },
    "onHostMaintenance": "TERMINATE"
  },
  "reservationAffinity": {
    "consumeReservationType": "NO_RESERVATION"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel la VM sera créée.

  • ZONE : zone dans laquelle vous souhaitez créer la VM. Pour vérifier qu'un type de machine est disponible dans la zone où vous souhaitez créer la VM, consultez Régions et zones disponibles.

  • VM_NAME : nom de votre nouvelle VM.

  • MACHINE_TYPE : type de machine à utiliser pour la VM à démarrage flexible. Si vous spécifiez un type de machine G2 ou N1, tenez compte des points suivants :

    • Pour les types de machines G2, vous pouvez éventuellement spécifier un poste de travail virtuel NVIDIA RTX (vWS) à utiliser pour les charges de travail graphiques intensives. Pour ce faire, incluez le champ guestAccelerators dans le corps de la requête, comme suit :

      "guestAccelerators": [
        {
          "acceleratorCount": VWS_ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/nvidia-l4-vws"
        }
      ]
      

      Remplacez VWS_ACCELERATOR_COUNT par le nombre de NVIDIA RTX vWS dont votre charge de travail a besoin.

    • Pour les types de machines N1, vous devez spécifier le nombre et le type de GPU à associer à votre VM. Si vous ne le faites pas, la création de la VM échouera. Pour associer des GPU à une VM N1, incluez le champ guestAccelerators dans le corps de la requête comme suit :

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
        }
      ]
      

      Remplacez les éléments suivants :

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cette valeur spécifie d'utiliser l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques pour les familles d'images.

  • VALID_FOR_DURATION : durée d'attente maximale, en secondes, pour le provisionnement de la VM. En fonction des exigences zonales de votre charge de travail, nous vous recommandons de spécifier l'une des durées suivantes pour augmenter vos chances de voir aboutir votre demande de création de VM :

    • Si votre charge de travail vous impose de créer la VM dans une zone spécifique, indiquez une durée comprise entre 90 secondes (90) et deux heures (7200). Plus la durée est longue, plus vous avez de chances d'obtenir des ressources.

    • Si la VM peut s'exécuter dans n'importe quelle zone de la région, spécifiez une durée de zéro seconde (0). Cette valeur indique que Compute Engine n'alloue des ressources que si elles sont immédiatement disponibles. Si la requête de création de VM échoue parce que les ressources ne sont pas disponibles, réessayez dans une autre zone.

  • TERMINATION_ACTION : indique s'il faut arrêter ou supprimer la VM à la fin de sa durée d'exécution. Spécifiez une des valeurs suivantes :

    • Pour arrêter la VM : STOP

    • Pour supprimer la VM : DELETE

  • RUN_DURATION : durée maximale, en secondes, pendant laquelle la VM s'exécute avant que Compute Engine ne la supprime. Cette valeur doit être comprise entre 600 secondes (10 minutes) et 604 800 secondes (sept jours).

Étapes suivantes

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Compute Engine en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits offerts pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de Compute Engine