Comprar compromissos de hardware com reservas anexadas

O Compute Engine oferece descontos por compromisso de uso (CUDs) com base em recursos para suas cargas de trabalho previsíveis. Ao comprar compromissos para GPUs ou a maioria dos discos SSD locais, é necessário reservar esses recursos e anexar as reservas ao seu compromisso.

Neste documento, explicamos como comprar compromissos baseados em recursos com reservas anexadas usando o console Google Cloud , a CLI gcloud ou REST.

Para saber mais sobre como funcionam as reservas anexadas, consulte Anexar reservas a compromissos baseados em recursos.

Para comprar compromissos de vCPUs e memória sem reservas anexadas, consulte Comprar compromissos baseados em recursos sem reservas anexadas.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.

    gcloud

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

      gcloud init

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

  • Defina uma região e uma zona padrão.
  • REST

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

      Instale a CLI do Google Cloud.

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

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

Funções exigidas

Para receber as permissões necessárias para comprar compromissos e criar reservas, peça ao administrador para conceder a você o papel do IAM de Administrador do Compute (roles/compute.admin) 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 comprar compromissos e criar reservas. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para comprar compromissos e criar reservas:

  • compute.commitments.create
  • compute.reservations.create

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

Por padrão, os proprietários do projeto têm permissão para comprar compromissos baseados em recursos. No entanto, é possível que os proprietários criem papéis personalizados que incluam ou excluam determinados usuários. Leia sobre o controle de acesso para garantir que você tenha permissão para comprar um compromisso baseado em recursos.

Comprar um compromisso de hardware baseado em recursos com reservas anexadas

Quando você compra um novo compromisso, é possível anexar reservas a ele de uma das seguintes maneiras:

Depois de adquirir um compromisso, ele ficará ativo no dia seguinte à 0h dos EUA e do Horário do Pacífico canadense (UTC-8 ou UTC-7 durante o horário de verão). O Compute Engine mantém uma garantia no seu projeto para cada região do projeto em que você adquire um compromisso. Quando você adquire um novo compromisso para qualquer região do projeto, o Compute Engine associa a garantia dessa região ao compromisso recém-criado.

Entre o momento da compra do compromisso e o momento de ativação, o status dele permanece como NOT_YET_ACTIVE (ou como PENDING no console doGoogle Cloud ). Após a ativação, o status do compromisso mudará para ACTIVE. Por exemplo, suponha que você compre o compromisso em 20 de janeiro de 2024 às 22h nos EUA e no horário do Pacífico canadense (UTC-8 ou UTC-7). O Compute Engine cria seu compromisso imediatamente com o status dele como NOT_YET_ACTIVE. Seu compromisso passa a ser ACTIVE em 21 de janeiro de 2024, à 0h dos EUA e do Horário do Pacífico canadense (UTC-8 ou UTC-7).

Requisitos

Antes de adquirir um compromisso com reservas anexadas, revise estes requisitos e verifique se o compromisso e as reservas atendem aos seguintes critérios:

  • É necessário adquirir o compromisso e criar as reservas anexadas no mesmo projeto e região.
  • É necessário adquirir o compromisso e criar as reservas anexadas para recursos da mesma série de família de máquinas.
  • Se o compromisso especificar tipos de recursos que exigem reservas anexadas, desative a opção de exclusão automática nas reservas anexadas. Saiba mais sobre os tipos de recursos que exigem reservas anexadas.
  • Se o compromisso tiver GPUs, o tipo de GPU na reserva e o compromisso precisarão ser correspondentes.
  • Para GPUs e a maioria dos discos SSD locais, o número de recursos reservados de cada tipo de recurso precisa corresponder exatamente ao número de recursos comprometidos desse tipo de recurso. No entanto, esse requisito não se aplica se você especificar discos SSD Titanium locais no seu compromisso para uso com tipos de máquinas C4, C4A, C4D, C4N, G4, H4D ou Z3.

    Por exemplo, se você quiser adquirir um compromisso para quatro GPUs V100 e dois discos SSD locais, as reservas anexadas ao compromisso precisarão ter um total de quatro GPUs V100 e dois SSDs locais. A quantidade de vCPU e memória que você reserva pode ser maior ou menor do que a que você se compromete. No entanto, se você especificar 4 vCPUs C4A e 2 discos SSD Titanium locais no compromisso, não será necessário anexar nenhuma reserva a ele.

  • Para GPUs, adquira compromissos para os tipos específicos de GPU que você pretende usar. Por exemplo, é possível comprar compromissos para NVIDIA P100s ou NVIDIA V100s, mas não é possível usar um compromisso que tenha sido comprado para GPUs NVIDIA P100 para abranger GPUs NVIDIA V100.

  • Se a reserva anexada for uma reserva compartilhada e você quiser receber os CUDs aplicáveis quando consumir essa reserva fora do projeto do compromisso, faça o seguinte:

    • Compartilhe suas reservas apenas entre projetos que pertençam à mesma conta do Cloud Billing que o compromisso.
    • Verifique se o compartilhamento de CUDs está ativado para essa conta do Cloud Billing.

Anexar reservas já criadas

É possível anexar reservas atuais ao adquirir o compromisso usando o console Google Cloud , a Google Cloud CLI ou REST.

Console

Antes de adquirir um compromisso usando o console Google Cloud , selecione o projeto que você quer usar para adquirir o compromisso. Se o compartilhamento de CUDs estiver ativado para uma conta do Cloud Billing, será possível adquirir o compromisso usando qualquer projeto dessa conta. Depois de selecionar o projeto, faça o seguinte:

  1. No console do Google Cloud , acesse a página Descontos por uso contínuo. Acesse "Descontos por uso contínuo"

  2. Clique em Comprar compromisso. A página Comprar um compromisso é exibida.

  3. No campo Nome, insira um nome para o compromisso.

  4. No campo Região, selecione a região em que você quer comprar o compromisso.

  5. No campo Tipo de compromisso, selecione a série da família de máquinas para o compromisso. Os seguintes tipos de compromisso oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, selecione A2 com otimização do acelerador.
    • Para os tipos de máquina A3 Edge e A3 High, selecione A3 com otimização para aceleradores.
    • Para tipos de máquinas A3 Mega, selecione A3 Mega com otimização para aceleradores.
    • Para tipos de máquina G2, selecione G2 com otimização gráfica
    • Para tipos de máquina G4, selecione G4 com otimização para gráficos
    • Para tipos de máquina C2, selecione C2 com otimização para computação.
    • Para tipos de máquina C2D, selecione C2D com otimização para computação.
    • Para tipos de máquina C3, selecione Uso geral C3
    • Para tipos de máquina C3D, selecione C3D de uso geral.
    • Para tipos de máquina C4, selecione Uso geral C4
    • Para tipos de máquina C4A, selecione Uso geral C4A
    • Para tipos de máquina C4D, selecione Uso geral C4D
    • Para tipos de máquina C4N, selecione C4N otimizado para rede.
    • Para tipos de máquina N1, selecione Uso geral N1.
    • Para tipos de máquina N2, selecione Uso geral N2.
    • Para tipos de máquina N2D, selecione Uso geral N2D.
    • Para tipos de máquina M1, selecione M1/M2 com otimização de memória.
    • Para tipos de máquina M3, selecione M3 com otimização de memória
    • Para tipos de máquina Z3, selecione Z3 com otimização para armazenamento

  6. Para anexar uma ou mais reservas atuais ao compromisso, faça o seguinte:

    1. Marque a caixa de seleção Anexar uma reserva nova ou já criada.

    2. Clique em Anexar uma reserva. O painel Anexar reservas existentes aparece e mostra as reservas do seu projeto. Essa lista é filtrada para corresponder à região e ao tipo de compromisso especificados.

    3. No painel Anexar reservas atuais, marque a caixa de seleção de cada reserva que você quer anexar.

    4. Revise o resumo de recursos das reservas selecionadas e clique em Anexar.

    Depois de anexar as reservas, o Compute Engine preenche automaticamente os campos na seção Detalhes do compromisso para corresponder aos números e tipos de recursos das reservas anexadas. Se você inseriu manualmente valores para recursos na seção Detalhes do compromisso antes de anexar reservas, eles serão substituídos pelos valores das reservas.

  7. Na seção Detalhes do compromisso, faça o seguinte:

    1. No campo Cores, verifique o valor preenchido automaticamente. Se quiser, especifique um número diferente de vCPUs.

    2. No campo Memória, verifique a quantidade pré-preenchida de memória em GB. Se quiser, especifique um valor diferente. É possível especificar memória apenas em incrementos de 0,25 GB. Para especificar um valor de memória personalizado para seu compromisso, use a CLI gcloud ou REST.

    3. Expanda a seção GPUs e SSDs locais e verifique se os tipos e números correspondem entre o compromisso e as reservas anexadas, da seguinte forma:

      1. No campo Tipo de GPU, verifique o tipo de GPU pré-preenchido.

      2. No campo Número de GPUs, verifique o número pré-preenchido de GPUs.

      3. No campo SSDs locais, verifique o número de discos pré-preenchido.

      Se você especificar manualmente valores diferentes das reservas anexadas para qualquer um desses campos, a compra do compromisso não será concluída. Para todas as GPUs e a maioria dos discos SSD locais, os números e tipos totais precisam corresponder entre o compromisso e as reservas anexadas.

  8. Na seção Prazo, faça o seguinte:

    1. Para especificar o plano do compromisso, selecione 1 ano ou 3 anos. O plano determina a taxa de CUD e a duração predefinida do prazo do seu compromisso.

    2. Revise o campo Data de início, que mostra a data e a hora em que seu compromisso será ativado. Esse campo é definido automaticamente como 0h do horário do Pacífico (EUA e Canadá) no dia seguinte à data atual.

    3. Opcional. Para estender o período do compromisso além da duração predefinida definida pelo plano, no campo Data de término, especifique uma data de término personalizada. Para mais informações, consulte Estender prazos de compromisso.

    4. Opcional. Se você quiser que seu compromisso seja renovado automaticamente ao final do período, marque a caixa de seleção Renovar automaticamente.

  9. No painel Resumo, revise os detalhes do compromisso e as possíveis limitações de cota.

  10. Para concluir a compra do compromisso, faça o seguinte:

    1. Role até a parte de baixo da página.

    2. Leia a seção Divulgações, que contém informações sobre taxas, qualificação para descontos e termos e condições.

    3. Para confirmar sua aceitação do preço de permanência e dos termos específicos do serviço, marque a caixa de seleção.

    4. Clique em Comprar.

gcloud

Para adquirir um compromisso anexando reservas atuais, execute o comando gcloud compute commitments create. No seu comando, inclua a sinalização --existing-reservation para especificar uma reserva atual que você queira anexar ao compromisso. Inclua uma nova instância dessa sinalização para cada reserva atual que você queira anexar. É possível anexar qualquer número de reservas atuais ao compromisso.

Por exemplo, para adquirir um compromisso anexando duas reservas a ele, execute o seguinte comando:

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=PLAN \
    --type=COMMITMENT_TYPE \
    --custom-end-time=CUSTOM_END_DATE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

Substitua:

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique 12-month ou 36-month.
  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use accelerator-optimized
    • Para tipos de máquina A3 Edge e A3 High, use accelerator-optimized-a3
    • Para tipos de máquina A3 Mega, use accelerator-optimized-a3-mega
    • Para tipos de máquina G2, use graphics-optimized
    • Para tipos de máquinas G4, use graphics-optimized-g4
    • Para tipos de máquinas C2, use compute-optimized
    • Para tipos de máquina C2D, use compute-optimized-c2d
    • Para tipos de máquina C3, use compute-optimized-c3
    • Para tipos de máquina C3D, use compute-optimized-c3d
    • Para tipos de máquinas N1, use general-purpose
    • Para tipos de máquina C4, use general-purpose-c4
    • Para tipos de máquina C4A, use general-purpose-c4a
    • Para tipos de máquina C4D, use general-purpose-c4d
    • Para tipos de máquina C4N, use network-optimized-c4n
    • Para tipos de máquinas N2, use general-purpose-n2
    • Para tipos de máquinas N2D, use general-purpose-n2d
    • Para tipos de máquina M1, use memory-optimized
    • Para tipos de máquina M3, use memory-optimized-m3
    • Para tipos de máquina Z3, use storage-optimized-z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade, em MB ou GB, de memória que você quer no seu compromisso. Por exemplo, 10240MB ou 10GB. Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de espaço SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • RESERVATION_NAME_1 e RESERVATION_NAME_2: os nomes das reservas atuais que você quer anexar ao compromisso.

  • RESERVATION_ZONE_1 e RESERVATION_ZONE_2: as zonas das reservas atuais que você quer anexar ao compromisso.

Exemplo: comprar um compromisso anexando reservas atuais

Suponha que você tenha duas reservas res-01 e res-02 nas zonas us-central1-a e us-central1-b do projeto myproject. Suponha que essas reservas tenham uma capacidade combinada para quatro GPUs NVIDIA P100 e quatro discos SSD locais. Para adquirir um novo compromisso na região us-central1 deste projeto para essas GPUs e discos SSD locais e usar essas reservas atuais como reservas anexadas, execute o comando a seguir. O compromisso especifica 96 vCPUs, 624 GB de memória, 4 GPUs NVIDIA P100 e 1.500 GB de armazenamento SSD local (equivalente a 4 discos SSD locais). O valor de armazenamento do SSD local precisa ser especificado em GB (por exemplo, 375GB). Para a CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

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

REST

Para adquirir um compromisso anexando reservas atuais, faça uma solicitação POST ao método regionCommitments.insert. Na solicitação, inclua o campo existingReservations para especificar uma lista separada por vírgulas de todas as reservas atuais que você quer anexar ao compromisso. É possível anexar qualquer número de reservas existentes ao seu compromisso.

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

{
  "name": "COMMITMENT_NAME",
  "plan": "PLAN",
  "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"
    }
  ],
  "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
  "existingReservations": "RESERVATION_URLs"
}

Substitua:

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique TWELVE_MONTH ou THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use ACCELERATOR_OPTIMIZED
    • Para tipos de máquina A3 Edge e A3 High, use ACCELERATOR_OPTIMIZED_A3
    • Para tipos de máquina A3 Mega, use ACCELERATOR_OPTIMIZED_A3_MEGA
    • Para tipos de máquina G2, use GRAPHICS_OPTIMIZED
    • Para tipos de máquinas G4, use GRAPHICS_OPTIMIZED_G4
    • Para tipos de máquinas C2, use COMPUTE_OPTIMIZED
    • Para tipos de máquina C2D, use COMPUTE_OPTIMIZED_C2D
    • Para tipos de máquina C3, use COMPUTE_OPTIMIZED_C3
    • Para tipos de máquina C3D, use COMPUTE_OPTIMIZED_C3D
    • Para tipos de máquinas N1, use GENERAL_PURPOSE
    • Para tipos de máquina C4, use GENERAL_PURPOSE_C4
    • Para tipos de máquina C4A, use GENERAL_PURPOSE_C4A
    • Para tipos de máquina C4D, use GENERAL_PURPOSE_C4D
    • Para tipos de máquina C4N, use NETWORK_OPTIMIZED_C4N
    • Para tipos de máquinas N2, use GENERAL_PURPOSE_N2
    • Para tipos de máquinas N2D, use GENERAL_PURPOSE_N2D
    • Para tipos de máquina M1, use MEMORY_OPTIMIZED
    • Para tipos de máquina M3, use MEMORY_OPTIMIZED_M3
    • Para tipos de máquina Z3, use STORAGE_OPTIMIZED_Z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade de memória que você quer no compromisso. Para REST, o Compute Engine usa MB como unidade padrão. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de armazenamento SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu prazo, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate-a como 2024-04-20.

  • END_TIME: 0h no Horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7), como um ajuste do Tempo Universal Coordenado (UTC). Especifique esse valor apenas se você tiver especificado uma data de término personalizada para sua permanência. Especifique um dos seguintes valores:

    • Durante o horário de verão: 07:00:00
    • Em outros horários: 08:00:00
  • RESERVATION_URLs: uma lista separada por vírgulas de URLs das reservas atuais que você quer anexar ao compromisso. Por exemplo, para anexar duas reservas, res-1 e res-2, especifique o seguinte:

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

Exemplo: comprar um compromisso anexando reservas atuais

Suponha que você tenha duas reservas res-01 e res-02 nas zonas us-central1-a e us-central1-b do projeto myproject. Suponha que essas reservas tenham uma capacidade combinada para quatro GPUs NVIDIA P100 e quatro discos SSD locais. Para adquirir um novo compromisso na região us-central1 deste projeto para essas GPUs e discos SSD locais e usar essas reservas atuais como reservas anexadas, faça a seguinte solicitação POST. O compromisso especifica 96 vCPUs, 624 GB de memória, 4 GPUs NVIDIA P100 e 1.500 GB de armazenamento SSD local. O valor de armazenamento do SSD local precisa ser especificado em GB. Para memória, especifique o valor em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como a unidade padrão para memória.

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-p100",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1500",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b/reservations/res-02"
  ]
}

Criar novas reservas para anexar

É possível criar suas reservas anexadas ao comprar seu compromisso usando o console do Google Cloud , a Google Cloud CLI ou o REST.

Console

Antes de adquirir um compromisso usando o console Google Cloud , selecione o projeto que você quer usar para adquirir o compromisso. Se o compartilhamento de CUDs estiver ativado para uma conta do Cloud Billing, será possível adquirir o compromisso usando qualquer projeto dessa conta. Depois de selecionar o projeto, faça o seguinte:

  1. No console do Google Cloud , acesse a página Descontos por uso contínuo. Acesse "Descontos por uso contínuo"

  2. Clique em Comprar compromisso. A página Comprar um compromisso é exibida.

  3. No campo Nome, insira um nome para o compromisso.

  4. No campo Região, selecione a região em que você quer comprar o compromisso.

  5. No campo Tipo de compromisso, selecione a série da família de máquinas para o compromisso. Os seguintes tipos de compromisso oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, selecione A2 com otimização do acelerador.
    • Para os tipos de máquina A3 Edge e A3 High, selecione A3 com otimização para aceleradores.
    • Para tipos de máquinas A3 Mega, selecione A3 Mega com otimização para aceleradores.
    • Para tipos de máquina G2, selecione G2 com otimização gráfica
    • Para tipos de máquina G4, selecione G4 com otimização para gráficos
    • Para tipos de máquina C2, selecione C2 com otimização para computação.
    • Para tipos de máquina C2D, selecione C2D com otimização para computação.
    • Para tipos de máquina C3, selecione Uso geral C3
    • Para tipos de máquina C3D, selecione C3D de uso geral.
    • Para tipos de máquina C4, selecione Uso geral C4
    • Para tipos de máquina C4A, selecione Uso geral C4A
    • Para tipos de máquina C4D, selecione Uso geral C4D
    • Para tipos de máquina C4N, selecione C4N otimizado para rede.
    • Para tipos de máquina N1, selecione Uso geral N1.
    • Para tipos de máquina N2, selecione Uso geral N2.
    • Para tipos de máquina N2D, selecione Uso geral N2D.
    • Para tipos de máquina M1, selecione M1/M2 com otimização de memória.
    • Para tipos de máquina M3, selecione M3 com otimização de memória
    • Para tipos de máquina Z3, selecione Z3 com otimização para armazenamento

  6. Para criar uma reserva e anexá-la ao compromisso, faça o seguinte:

    1. Marque a caixa de seleção Anexar uma reserva nova ou já criada.

    2. Clique em Criar nova reserva. O painel Criar uma nova reserva aparece.

    3. No campo Nome, insira um nome para a reserva.

    4. Opcional: no campo Descrição, insira uma descrição.

    5. No campo Zona, selecione a zona em que você quer que os recursos reservados estejam disponíveis.

    6. Na seção Tipo de compartilhamento, especifique como você quer compartilhar essa reserva:

      • Para criar uma reserva de projeto único, selecione Local.
      • Para criar uma reserva compartilhada com vários projetos, selecione Compartilhada. Em seguida, clique em Adicionar projetos e selecione os projetos desejados.
    7. Na seção Serviços do Google Cloud, especifique se quer compartilhar essa reserva com outros serviços, como o Google Kubernetes Engine ou a Vertex AI.

    8. Na seção Usar com instância de VM, selecione como você quer que as VMs consumam a reserva:

      • Para permitir que VMs com propriedades correspondentes consumam automaticamente a reserva, selecione Usar reserva automaticamente.
      • Para consumir os recursos desta reserva apenas quando ela for direcionada especificamente por nome, selecione Selecionar reserva específica.
    9. Na seção Detalhes do recurso, faça o seguinte:

      1. No campo Número de instâncias de VM, insira o número de VMs.

      2. Na seção Configuração da máquina, especifique as propriedades selecionando Tipo de máquina. Selecione um tipo de máquina na lista ou Personalizado para especificar o número de Núcleos e a quantidade de Memória.

      3. Opcional: se você quiser reservar GPUs, clique em Adicionar GPU e especifique o Tipo de GPU e o Número de GPUs para cada VM.

      4. Opcional: se você quiser reservar discos SSD locais, especifique o Número de discos e o Tipo de interface.

      5. Opcional: se você quiser especificar uma política de posição em grupo, selecione ou crie uma política na lista Política de posição em grupo.

    10. Para concluir a especificação das propriedades desta reserva, clique em Criar e anexar.

    11. Opcional: se quiser criar e anexar mais reservas, clique em Criar nova reserva outra vez e repita as etapas.

    Depois de anexar as reservas, o Compute Engine preenche automaticamente os campos na seção Detalhes do compromisso para corresponder aos números e tipos de recursos das reservas anexadas. Se você inseriu manualmente valores para recursos na seção Detalhes do compromisso antes de anexar reservas, eles serão substituídos pelos valores das reservas.

  7. Na seção Detalhes do compromisso, faça o seguinte:

    1. No campo Cores, verifique o valor preenchido automaticamente. Se quiser, especifique um número diferente de vCPUs.

    2. No campo Memória, verifique a quantidade pré-preenchida de memória em GB. Se quiser, especifique um valor diferente. É possível especificar memória apenas em incrementos de 0,25 GB. Para especificar um valor de memória personalizado para seu compromisso, use a CLI gcloud ou REST.

    3. Expanda a seção GPUs e SSDs locais e verifique se os tipos e números correspondem entre o compromisso e as reservas anexadas, da seguinte forma:

      1. No campo Tipo de GPU, verifique o tipo de GPU pré-preenchido.

      2. No campo Número de GPUs, verifique o número pré-preenchido de GPUs.

      3. No campo SSDs locais, verifique o número de discos pré-preenchido.

      Se você especificar manualmente valores diferentes das reservas anexadas para qualquer um desses campos, a compra do compromisso não será concluída. Para todas as GPUs e a maioria dos discos SSD locais, os números e tipos totais precisam corresponder entre o compromisso e as reservas anexadas.

  8. Na seção Prazo, faça o seguinte:

    1. Para especificar o plano do compromisso, selecione 1 ano ou 3 anos. O plano determina a taxa de CUD e a duração predefinida do prazo do seu compromisso.

    2. Revise o campo Data de início, que mostra a data e a hora em que seu compromisso será ativado. Esse campo é definido automaticamente como 0h do horário do Pacífico (EUA e Canadá) no dia seguinte à data atual.

    3. Opcional. Para estender o período do compromisso além da duração predefinida definida pelo plano, no campo Data de término, especifique uma data de término personalizada. Para mais informações, consulte Estender prazos de compromisso.

    4. Opcional. Se você quiser que seu compromisso seja renovado automaticamente ao final do período, marque a caixa de seleção Renovar automaticamente.

  9. No painel Resumo, revise os detalhes do compromisso e as possíveis limitações de cota.

  10. Para concluir a compra do compromisso, faça o seguinte:

    1. Role até a parte de baixo da página.

    2. Leia a seção Divulgações, que contém informações sobre taxas, qualificação para descontos e termos e condições.

    3. Para confirmar sua aceitação do preço de permanência e dos termos específicos do serviço, marque a caixa de seleção.

    4. Clique em Comprar.

gcloud

Para criar suas reservas anexadas ao comprar seu compromisso, execute o comando gcloud compute commitments create.

Se você quer anexar uma única reserva ou várias, execute o comando de uma das seguintes maneiras:

  • Para criar e anexar uma única reserva ao seu compromisso, defina as propriedades da reserva anexada executando o seguinte comando:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan PLAN \
        --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 \
        --custom-end-time=CUSTOM_END_DATE \
        --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
    
  • Para criar e anexar várias reservas ao compromisso, defina as propriedades da reserva usando um arquivo YAML e especifique esse arquivo YAML no comando usado para adquirir seu compromisso. Outra opção é usar essa abordagem de arquivo YAML para criar e anexar uma única reserva ao compromisso. Para criar suas reservas anexadas usando essa abordagem, faça o seguinte:

    1. Crie o arquivo YAML no diretório atual e especifique a configuração para cada reserva anexada. Por exemplo, para especificar a configuração de uma reserva compartilhada compartilhada com dois projetos que especificam GPUs, dois discos SSD locais e uma plataforma mínima de CPU, inclua o texto a seguir no arquivo 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
      
      

      Para especificar a configuração de várias reservas, repita essas propriedades para cada uma delas. É possível anexar ao compromisso quantas reservas você quiser.

    2. Use o comando gcloud compute commitments create e inclua a sinalização --reservation-from-file:

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan PLAN \
          --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
      

Substitua o seguinte pelas propriedades correspondentes do compromisso e das reservas anexadas:

Compromisso

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique 12-month ou 36-month.
  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use accelerator-optimized
    • Para tipos de máquina A3 Edge e A3 High, use accelerator-optimized-a3
    • Para tipos de máquina A3 Mega, use accelerator-optimized-a3-mega
    • Para tipos de máquina G2, use graphics-optimized
    • Para tipos de máquinas G4, use graphics-optimized-g4
    • Para tipos de máquinas C2, use compute-optimized
    • Para tipos de máquina C2D, use compute-optimized-c2d
    • Para tipos de máquina C3, use compute-optimized-c3
    • Para tipos de máquina C3D, use compute-optimized-c3d
    • Para tipos de máquinas N1, use general-purpose
    • Para tipos de máquina C4, use general-purpose-c4
    • Para tipos de máquina C4A, use general-purpose-c4a
    • Para tipos de máquina C4D, use general-purpose-c4d
    • Para tipos de máquina C4N, use network-optimized-c4n
    • Para tipos de máquinas N2, use general-purpose-n2
    • Para tipos de máquinas N2D, use general-purpose-n2d
    • Para tipos de máquina M1, use memory-optimized
    • Para tipos de máquina M3, use memory-optimized-m3
    • Para tipos de máquina Z3, use storage-optimized-z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade, em MB ou GB, de memória que você quer no seu compromisso. Por exemplo, 10GB ou 10240MB. Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade de armazenamento SSD local, que precisa ser especificada em GB. Por exemplo, 375GB.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • YAML_FILE: o caminho para o arquivo YAML que contém a configuração das reservas anexadas.

Reservas anexadas

  • RESERVATION_NAME: o nome da reserva anexada.
  • RESERVATION_ZONE: a zona da reserva anexada.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica se a reserva anexada é uma reserva especificamente segmentada (true ou false). Para mais informações sobre reservas segmentadas especificamente, consulte Como funcionam as reservas.
  • NUMBER_OF_RESERVED_VMS: o número de VMs que você quer reservar na reserva anexada.
  • RESERVED_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na reserva anexada.

    • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
    • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

      Substitua:

      • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
      • CPUS: o número de vCPUs.
      • MEMORY: a memória total para uma VM reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: o número de GPUs que você quer adicionar, por VM, na reserva anexada.

  • RESERVED_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva anexada.

  • INTERFACE_1 e INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Repita o parâmetro local_ssd para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

  • OWNER_PROJECT_ID: o ID do projeto em que você quer adquirir o compromisso com a reserva anexada. Especifique esse campo se quiser compartilhar sua reserva de substituição em vários projetos de consumidor.

  • MINIMUM_CPU_PLATFORM: a plataforma de CPU mínima que você quer especificar para a reserva anexada.

  • SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse campo com o valor como projects se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores. Exclua esse campo se quiser criar uma reserva de projeto único.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1 e project-2. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o ID do projeto em que você cria essa reserva, já que esse projeto tem permissão para consumir essa reserva por padrão. Exclua esses campos se quiser criar uma reserva de projeto único.

O Compute Engine criará o compromisso com as reservas anexadas criadas somente se houver recursos suficientes do tipo de máquina especificado na zona de destino e cota suficiente no momento da solicitação. Se a compra foi bem-sucedida, você verá uma mensagem semelhante a esta:

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

Exemplos

Os cenários e comandos de exemplo a seguir mostram como comprar um compromisso para GPUs, discos SSD locais ou ambos criando novas reservas para anexar a esse compromisso.

Exemplo 1: comprar um compromisso para GPUs anexando uma única reserva nova

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral (ou de GPU) na região us-central1 com 96 vCPUs, 624 GB de memória e 4 GPUs NVIDIA V100. Você quer criar uma reserva reservation-01 na zona us-central1-a que reserve duas VMs n1-standard-32 (cada uma com 32 vCPUs, 120 GB de memória e duas GPUs NVIDIA V100) para consumir esses recursos comprometidos. Para comprar este exemplo de compromisso com a reserva anexada, execute o seguinte comando: Na CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

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

Exemplo 2: comprar um compromisso para GPUs sem especificar vCPUs ou memória

Para se comprometer e reservar GPUs e discos SSD locais sem se comprometer com vCPUs ou memória, especifique 0 como o valor para as quantidades de vCPUs e memória. Por exemplo, suponha que você queira comprar um compromisso de um ano para recursos de GPU na região us-west2 com 0 vCPUs, 0 GB de memória e uma GPU NVIDIA P4. Você também quer criar uma reserva reservation-01 na zona us-west2-b que reserve uma VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e uma GPU NVIDIA P4) para anexar ao compromisso. Para comprar este exemplo de compromisso com a reserva anexada, execute o comando a seguir. Para a CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, quando você usa REST, o Compute Engine usa MB como a unidade padrão.

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

Exemplo 3: adquirir um compromisso para GPUs e discos SSD locais anexando várias novas reservas

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral (ou recursos de GPU e SSD local) na região us-central1. Você quer o compromisso para 96 vCPUs, 624 GB de memória, uma GPU NVIDIA V100 e 750 GB de armazenamento SSD local (equivalente a dois discos SSD locais). Você também quer criar e anexar duas reservas na zona us-central1-a. Na primeira reserva, res-01, você quer reservar uma VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e uma GPU NVIDIA V100). Essa é uma reserva visada. Na segunda reserva, res-02, você quer reservar uma VM n1-standard-8 (com 8 vCPUs e 30 GB de memória) e anexar dois discos SSD locais (uma interface SCSI e uma interface NVMe).

Para comprar este exemplo de compromisso com as reservas anexadas, primeiro crie o arquivo YAML com as propriedades de ambas as reservas da seguinte maneira:

- 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

Depois de criar o arquivo YAML, para concluir a compra do compromisso com as reservas anexadas, execute o comando a seguir. O valor do armazenamento do SSD local precisa ser especificado em GB (por exemplo, 375GB). Para a CLI gcloud, é possível especificar a memória em MB ou GB. Se você não especificar uma unidade, o Compute Engine usará GB como a unidade padrão. No entanto, ao usar REST, o Compute Engine usa MB como a unidade padrão para memória.

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

Para criar as reservas anexadas ao comprar seu compromisso, faça uma solicitação POST ao método regionCommitments.insert. Na solicitação, inclua o campo reservations para definir uma lista de todas as novas reservas que você quer criar e anexar. É possível anexar quantas reservas você quiser ao compromisso.

  • Para criar sua nova reserva especificando manualmente todas as propriedades da VM, inclua o campo instanceProperties e exclua o campo sourceInstanceTemplate.

    Por exemplo, para especificar manualmente a configuração de uma reserva compartilhada com dois projetos que especificam GPUs, dois discos SSD locais e uma plataforma mínima de CPU, faça a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "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"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "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"
            }
          }
        }
      }
    ]
    }
    
    
  • Para criar a nova reserva especificando um modelo de instância, inclua o campo sourceInstanceTemplate e exclua o campo instanceProperties.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "PLAN",
    "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"
      }
    ],
    "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
    "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"
            }
          }
        }
      }
    ]
    }
    
    

Substitua o seguinte pelas propriedades correspondentes do compromisso e das reservas anexadas:

Compromisso

  • COMMITMENT_NAME: o nome do compromisso.
  • REGION: a região em que a chave está localizada.
  • PROJECT_ID: o ID do projeto em que você quer comprar o compromisso com as reservas anexadas.
  • PLAN: o plano de compromisso, que determina sua taxa de CUD e a duração predefinida do período. Especifique TWELVE_MONTH ou THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: o tipo de compromisso. Os tipos de compromisso a seguir oferecem opções para GPUs, discos SSD locais ou ambos:

    • Para tipos de máquina A2, use ACCELERATOR_OPTIMIZED
    • Para tipos de máquina A3 Edge e A3 High, use ACCELERATOR_OPTIMIZED_A3
    • Para tipos de máquina A3 Mega, use ACCELERATOR_OPTIMIZED_A3_MEGA
    • Para tipos de máquina G2, use GRAPHICS_OPTIMIZED
    • Para tipos de máquinas G4, use GRAPHICS_OPTIMIZED_G4
    • Para tipos de máquinas C2, use COMPUTE_OPTIMIZED
    • Para tipos de máquina C2D, use COMPUTE_OPTIMIZED_C2D
    • Para tipos de máquina C3, use COMPUTE_OPTIMIZED_C3
    • Para tipos de máquina C3D, use COMPUTE_OPTIMIZED_C3D
    • Para tipos de máquinas N1, use GENERAL_PURPOSE
    • Para tipos de máquina C4, use GENERAL_PURPOSE_C4
    • Para tipos de máquina C4A, use GENERAL_PURPOSE_C4A
    • Para tipos de máquina C4D, use GENERAL_PURPOSE_C4D
    • Para tipos de máquina C4N, use NETWORK_OPTIMIZED_C4N
    • Para tipos de máquinas N2, use GENERAL_PURPOSE_N2
    • Para tipos de máquinas N2D, use GENERAL_PURPOSE_N2D
    • Para tipos de máquina M1, use MEMORY_OPTIMIZED
    • Para tipos de máquina M3, use MEMORY_OPTIMIZED_M3
    • Para tipos de máquina Z3, use STORAGE_OPTIMIZED_Z3

  • COMMITTED_VCPUS: o número de vCPUs que você quer no compromisso. O número deve ser um número inteiro positivo.

  • COMMITTED_MEMORY: a quantidade de memória que você quer no compromisso. Para REST, o Compute Engine usa MB como unidade padrão. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

  • COMMITTED_LOCAL_SSD: a quantidade, em GB, de armazenamento SSD local que você quer no seu compromisso.

  • COMMITTED_ACCELERATOR_COUNT: o número de GPUs que você quer no compromisso.

  • COMMITTED_ACCELERATOR_TYPE: o tipo de GPU que você quer no compromisso.

  • CUSTOM_END_DATE: opcional. Uma data de término personalizada para seu período, que precisa ser formatada como YYYY-MM-DD. Por exemplo, para especificar uma data de término personalizada de 20 de abril de 2024, formate como 2024-04-20.

  • END_TIME: 0h no Horário do Pacífico dos EUA e do Canadá (UTC-8 ou UTC-7), como um ajuste do Tempo Universal Coordenado (UTC). Especifique esse valor apenas se você tiver especificado uma data de término personalizada para sua permanência. Especifique um dos seguintes valores:

    • Durante o horário de verão: 07:00:00
    • Em outros horários: 08:00:00

Reservas anexadas

  • RESERVATION_NAME: o nome da reserva anexada.
  • RESERVATION_ZONE: a zona da reserva anexada.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: especifica se a reserva anexada é uma reserva especificamente segmentada (true ou false). Para mais informações sobre reservas segmentadas especificamente, consulte Como funcionam as reservas.
  • NUMBER_OF_RESERVED_VMS: o número de VMs que você quer reservar na reserva anexada.
  • RESERVED_MACHINE_TYPE: o tipo de máquina que você quer para as VMs na reserva anexada.

    • Para tipos de máquina predefinidos, use o formato MACHINE_FAMILY-standard-CPUS. Por exemplo, n2-standard-4.
    • Para tipos de máquina personalizados, use o formato MACHINE_FAMILY-custom-CPUS-MEMORY. Por exemplo, n2-custom-4-5120. Para ver uma lista completa de restrições, leia as especificações dos tipos de máquina personalizados.

      Substitua:

      • MACHINE_FAMILY: a família dos tipos de máquina. Por exemplo, especifique n2 para VMs N2.
      • CPUS: o número de vCPUs.
      • MEMORY: a memória total para uma VM reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB. Por exemplo, para criar uma VM N2 com 4 vCPUs e 5 GB de memória, que é 5.120 MB, use n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: o número de GPUs que você quer adicionar, por VM, na reserva anexada.

  • RESERVED_ACCELERATOR_TYPE: o tipo de acelerador que você quer adicionar à reserva anexada.

  • INTERFACE_1 e INTERFACE_2: o tipo de interface que você quer que os discos SSD locais de cada VM reservada usem. As opções válidas são: scsi e nvme. Repita o parâmetro localSsds para cada disco SSD local que você quer adicionar. É possível especificar até 24 discos SSD locais.

  • MINIMUM_CPU_PLATFORM: a plataforma de CPU mínima que você quer especificar para a reserva anexada.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância que você quer usar para criar a reserva anexada.

  • SHARE_SETTING: o tipo de compartilhamento da reserva atual. Especifique esse campo com o valor como SPECIFIC_PROJECTS se você quiser compartilhar sua reserva de substituição em vários projetos de consumidores. Exclua este campo se quiser criar uma reserva de projeto único.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: os IDs dos projetos que podem compartilhar essa reserva. Por exemplo project-1 e project-2. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o ID do projeto em que você cria essa reserva, já que esse projeto tem permissão para consumir essa reserva por padrão. Exclua esses campos se quiser criar uma reserva de projeto único.

O Compute Engine criará o compromisso com as reservas anexadas criadas somente se houver recursos suficientes do tipo de máquina especificado na zona de destino e cota suficiente no momento da solicitação. Se a compra foi bem-sucedida, o Computee Engine retornará um status 200 para a solicitação da API REST.

Exemplos

Os cenários e comandos de exemplo a seguir mostram como comprar um compromisso para GPUs, discos SSD locais ou ambos criando novas reservas para anexar a esse compromisso.

Exemplo 1: comprar um compromisso para GPUs anexando uma única reserva nova

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral na região us-central1 que inclua 96 vCPUs, 624 GB de memória (equivalente a 638.976 MB) e quatro GPUs NVIDIA V100. Você quer criar uma reserva reservation-01 na zona us-central1-a que reserve duas VMs n1-standard-8 (cada VM com oito vCPUs, 30 GB de memória e duas GPUs NVIDIA V100) para anexar a esse compromisso. Para comprar este exemplo de compromisso com a reserva anexada, faça a seguinte solicitação POST: Para REST, é necessário especificar a memória em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

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

Exemplo 2: comprar um compromisso para GPUs sem especificar vCPUs ou memória

Para se comprometer e reservar GPUs e discos SSD locais sem se comprometer com vCPUs ou memória, especifique 0 como o valor para as quantidades de vCPUs e memória. Por exemplo, suponha que você queira comprar um compromisso de um ano apenas para recursos de GPU na região us-west2, com 0 vCPUs, 0 MB de memória e 4 GPUs NVIDIA P4. Você também quer criar uma nova reserva reservation-01 na zona us-west2-b que reserve uma VM n1-standard-2 (com duas vCPUs, 7, 5 GB de memória e quatro GPUs NVIDIA P4) para anexar ao compromisso. Para comprar este exemplo de compromisso com a reserva anexada, faça a seguinte solicitação POST. Para REST, especifique a memória em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como unidade padrão.

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

Exemplo 3: adquirir um compromisso para GPUs e discos SSD locais anexando várias novas reservas

Suponha que você queira comprar um compromisso de um ano para recursos de uso geral na região us-central1, com 96 vCPUs, 624 GB de memória (equivalente a 638.976 MB), uma GPU NVIDIA V100 e 750 GB de armazenamento SSD local. Você também quer criar e anexar duas reservas na zona us-central1-a. Na primeira reserva, res-01, você quer reservar 1 VM n1-standard-2 (com 2 vCPUs, 7, 5 GB de memória e 1 GPU NVIDIA V100). Essa é uma reserva visada. Na segunda reserva, res-02, você quer reservar uma VM n1-standard-8 (com 8 vCPUs e 30 GB de memória) e anexar dois discos SSD locais (uma interface SCSI e uma NVMe). Para comprar este exemplo de compromisso com as reservas anexadas, faça a seguinte solicitação POST. O valor de armazenamento do SSD local precisa ser especificado em GB. Para a memória, especifique o valor em MB. No entanto, quando você usa a CLI gcloud, o Compute Engine usa GB como a unidade padrão para memória.

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": "750",
      "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"
    }
  ]
}