Criar uma VM de início flexível

Neste documento, explicamos como criar uma instância de máquina virtual (VM) de início flexível. As VMs de início flexível são executadas por até sete dias e ajudam você a adquirir recursos de alta demanda, como GPUs, a um preço com desconto. Esses recursos tornam as VMs de início flexível uma solução econômica para executar cargas de trabalho de curta duração, como de ajuste de modelos e inferência em lote.

Para conhecer as principais características das VMs de início flexível, incluindo os requisitos e as limitações aplicados ao criá-las, consulte Sobre as VMs de início flexível.

Antes de começar

  • Confira um dos requisitos de configuração abaixo, com base no tipo de máquina que você quer usar:

  • Configure a autenticação, se ainda não tiver feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    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. Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Papéis necessários

Para receber as permissões necessárias para criar VMs de início flexível, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar VMs de início flexível. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

Estas permissões são necessárias para criar VMs de início flexível:

  • compute.instances.create no projeto.
  • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem.
  • Usar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot.
  • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância.
  • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida.
  • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto.
  • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida.
  • Atribuir uma rede legada à VM: compute.networks.use no projeto.
  • Atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto.
  • Definir os metadados da instância de VM: compute.instances.setMetadata no projeto.
  • Definir tags para a VM: compute.instances.setTags na VM.
  • Definir rótulos para a VM: compute.instances.setLabels na VM.
  • Definir uma conta de serviço a ser usada pela VM: compute.instances.setServiceAccount na VM.
  • Criar um disco para a VM: compute.disks.create no projeto.
  • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco.
  • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco.

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Criar uma VM de início flexível

Para criar uma VM de início flexível, selecione uma destas opções:

Console

  1. No console do Google Cloud , acesse a página Criar instância.

    Acessar Criar instância

  2. No painel Configuração da máquina, siga estas etapas:

    1. No campo Nome, insira um nome para a VM de início flexível.

    2. Especifique a Região e a Zona em que você quer criar a VM. Para conferir as regiões e zonas em que o tipo de máquina que você quer usar está disponível, consulte Regiões e zonas disponíveis.

    3. Com base na carga de trabalho que você quer executar, especifique um tipo de máquina da seguinte maneira:

      • Para especificar um tipo de máquina com otimização para aceleradores, faça o seguinte:

        1. Clique na guia GPUs.

        2. Na lista Tipo de GPU, selecione um tipo de GPU, exceto NVIDIA GB200 192 GB (A4X) e NVIDIA RTX PRO 600 (G4).

        3. Na lista Número de GPUs, selecione o número de GPUs a serem anexadas à VM.

        4. Opcional: se o modelo de GPU permitir estações de trabalho virtuais (vWS) NVIDIA RTX para cargas de trabalho de gráficos e você quiser executar cargas de trabalho com muitos gráficos, selecione Ativar estação de trabalho virtual (NVIDIA GRID).

      • Para especificar um tipo de máquina H4D, faça o seguinte:

        1. Clique na guia Otimização para computação.

        2. Na coluna Série, selecione H4D.

  3. No menu de navegação, clique em Avançado. No painel Avançado que aparece, siga estas etapas:

    1. Na seção Reservas, selecione Não usar uma reserva.

    2. Na seção Modelo de provisionamento, na lista Modelo de provisionamento de VM, selecione Início flexível.

    3. No campo Inserir número de horas, insira o tempo máximo de execução pretendido para a VM. O valor precisa estar entre 36 segundos (0.01) e sete dias (168 ou 168 horas).

    4. Marque a caixa de seleção Definir um tempo de espera para a criação da VM. Depois, com base nos requisitos zonais da carga de trabalho, recomendamos que você especifique uma das seguintes durações para aumentar as chances de sucesso da solicitação de criação da VM:

      • Se a carga de trabalho exigir que a VM seja criada em uma zona específica, especifique uma duração entre 90 segundos e 2 horas. Quanto maior a duração, maiores as chances de conseguir recursos.

      • Se for possível executar a VM em qualquer zona da região, especifique uma duração de 0 segundo ou desmarque a caixa de seleção Definir um tempo de espera para a criação da VM. Essa ação especifica que o Compute Engine só vai alocar recursos se eles estiverem disponíveis imediatamente. Se a solicitação de criação da VM falhar porque os recursos não estão disponíveis, tente de novo em outra zona.

  4. Para criar a VM de início flexível, clique em Criar.

gcloud

Para criar uma VM de início flexível, use o comando gcloud compute instances create com as seguintes flags:

  • A flag --request-valid-for-duration

  • A flag --provisioning-model=FLEX_START

  • A flag --instance-termination-action

  • A flag --max-run-duration

  • A flag --maintenance-policy=TERMINATE

  • A flag --reservation-affinity=none

Para criar uma VM de início flexível, execute o seguinte comando:

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

Substitua:

  • VM_NAME: o nome da nova VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM de início flexível. Ao especificar um tipo de máquina G2 ou N1, considere o seguinte:

    • Para os tipos de máquina G2, é possível especificar uma estação de trabalho virtual (vWS) NVIDIA RTX para uso em cargas de trabalho com muitos gráficos. Para isso, inclua a flag --accelerator no comando da seguinte maneira:

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

      Substitua VWS_ACCELERATOR_COUNT pelo número de vWS NVIDIA RTX necessário para a carga de trabalho.

    • Para os tipos de máquina N1, especifique o número e o tipo de GPUs a serem anexadas à VM. Caso contrário, a criação da VM vai falhar. Para anexar GPUs a uma VM N1, inclua a flag --accelerator no comando da seguinte maneira:

      --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
      

      Substitua:

  • ZONE: a zona em que você quer criar a VM. Para verificar se o tipo de máquina especificado está disponível na zona em que você quer criar a VM, consulte Regiões e zonas disponíveis.

  • VALID_FOR_DURATION: o tempo máximo de espera para o provisionamento dos recursos solicitados, com o formato de um número seguido por uma unidade (s, m, h ou d). Por exemplo, um valor de 30m define um tempo de 30 minutos, e um valor de 1h2m3s define um tempo de uma hora, dois minutos e três segundos. Com base nos requisitos zonais da carga de trabalho, recomendamos que você especifique uma das seguintes durações para aumentar as chances de sucesso da solicitação de criação da VM:

    • Se a carga de trabalho exigir que a VM seja criada em uma zona específica, especifique uma duração entre 90 segundos (90s) e duas horas (2h). Quanto maior a duração, maiores as chances de conseguir recursos.

    • Se for possível executar a VM em qualquer zona da região, especifique uma duração de zero segundo (0s). Esse valor especifica que o Compute Engine só vai alocar recursos se eles estiverem disponíveis imediatamente. Se a solicitação de criação falhar porque os recursos não estão disponíveis, tente de novo em outra zona.

  • TERMINATION_ACTION: indica se a VM será interrompida ou excluída ao final da duração da execução. Especifique um dos seguintes valores:

    • Para interromper a VM: STOP.

    • Para excluir a VM: DELETE.

  • RUN_DURATION: o tempo máximo de execução da VM antes da exclusão dela pelo Compute Engine, com o formato de um número seguido por uma unidade (s, m, h ou d). O valor precisa estar entre 10 minutos e sete dias.

REST

Para criar uma VM de início flexível, faça uma solicitação POST ao método instances.insert. No corpo da solicitação, inclua estes campos:

  • O campo params.requestValidForDuration.

  • O campo scheduling.provisioningModel definido como FLEX_START.

  • O campo scheduling.instanceTerminationAction.

  • O campo scheduling.maxRunDuration.

  • O campo scheduling.onHostMaintenance definido como TERMINATE.

  • O campo reservationAffinity.consumeReservationType definido como NO_RESERVATION.

Para criar uma VM de início flexível, faça uma solicitação POST da seguinte maneira:

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"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM será criada.

  • ZONE: a zona em que você quer criar a VM. Para verificar se um tipo de máquina está disponível na zona em que você quer criar a VM, consulte Regiões e zonas disponíveis.

  • VM_NAME: o nome da nova VM.

  • MACHINE_TYPE: o tipo de máquina a ser usado para a VM de início flexível. Ao especificar um tipo de máquina G2 ou N1, considere o seguinte:

    • Para os tipos de máquina G2, é possível especificar uma estação de trabalho virtual (vWS) NVIDIA RTX para uso em cargas de trabalho com muitos gráficos. Para isso, inclua o campo guestAccelerators no corpo da solicitação da seguinte maneira:

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

      Substitua VWS_ACCELERATOR_COUNT pelo número de vWS NVIDIA RTX necessário para a carga de trabalho.

    • Para os tipos de máquina N1, especifique o número e o tipo de GPUs a serem anexadas à VM. Caso contrário, a criação da VM vai falhar. Para anexar GPUs a uma VM N1, inclua o campo guestAccelerators no corpo da solicitação da seguinte maneira:

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

      Substitua:

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, como debian-cloud. Para mais informações sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • Para IMAGE, especifique uma destas opções:

    • Uma versão específica da imagem do SO, como debian-12-bookworm-v20240617.

    • Uma família de imagens, que precisa ter o formato family/IMAGE_FAMILY. Esse valor especifica o uso da imagem do SO mais recente não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens Debian 10 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • VALID_FOR_DURATION: o tempo máximo em segundos de espera pelo provisionamento da VM. Com base nos requisitos zonais da carga de trabalho, recomendamos que você especifique uma das seguintes durações para aumentar as chances de sucesso da solicitação de criação da VM:

    • Se a carga de trabalho exigir que a VM seja criada em uma zona específica, especifique uma duração entre 90 segundos (90) e duas horas (7200). Quanto maior a duração, maiores as chances de conseguir recursos.

    • Se for possível executar a VM em qualquer zona da região, especifique uma duração de zero segundo (0). Esse valor especifica que o Compute Engine só vai alocar recursos se eles estiverem disponíveis imediatamente. Se a solicitação de criação falhar porque os recursos não estão disponíveis, tente de novo em outra zona.

  • TERMINATION_ACTION: indica se a VM será interrompida ou excluída ao final da duração da execução. Especifique um dos seguintes valores:

    • Para interromper a VM: STOP.

    • Para excluir a VM: DELETE.

  • RUN_DURATION: o tempo máximo em segundos de execução da VM antes da exclusão pelo Compute Engine. Esse valor precisa estar entre 600 segundos (10 minutos) e 604.800 segundos (sete dias).

A seguir

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Compute Engine em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação sem custos do Compute Engine