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. Ces fonctionnalités font des VM à démarrage flexible 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 les exigences et les limites que vous appliquez lorsque vous les créez, consultez À propos des VM à démarrage flexible.

Avant de commencer

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

  • 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:

    gcloud

    1. Installez la Google Cloud CLI. Une fois l'installation terminée, initialisez la Google Cloud CLI 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 l'installation terminée, initialisez la Google Cloud CLI 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 la page 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 libellés pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service à utiliser avec 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 :

gcloud

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

  • 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 (vWS) NVIDIA RTX à utiliser pour les charges de travail graphiques lourdes. Pour ce faire, incluez l'indicateur --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. Sinon, 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, au format nombre suivi 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 réussite de la demande de création de VM :

    • Si votre charge de travail vous oblige à créer la VM dans une zone spécifique, spécifiez 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 échoue en raison de l'indisponibilité des ressources, 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 l'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. Elle doit être exprimée sous la forme d'un nombre suivi 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.

  • La valeur reservationAffinity.consumeReservationType est définie 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 créer la VM.

  • 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 (vWS) NVIDIA RTX à utiliser pour les charges de travail graphiques lourdes. 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. Sinon, 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 d'image 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 :

    • 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 la plus récente et non obsolète. 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 concernant les familles d'images.

  • VALID_FOR_DURATION : durée maximale en secondes pendant laquelle attendre 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 réussite de la demande de création de VM :

    • Si votre charge de travail vous oblige à créer la VM dans une zone spécifique, spécifiez 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 échoue en raison de l'indisponibilité des ressources, 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 l'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