Como criar uma instância de VM com um tipo de máquina personalizado

No Compute Engine, há tipos de máquinas predefinidos que podem ser utilizados quando você cria uma instância de máquina virtual (VM). Um tipo de máquina predefinido tem um número predefinido de vCPUs e uma quantidade de memória, mas é cobrado um preço fixo conforme descrito na página Todos os preços.

Se os tipos de máquinas predefinidos não atendem às suas necessidades, é possível criar uma instância de VM com configurações personalizadas de hardware virtualizado. Especificamente, é possível criar uma instância de VM com um número personalizado de vCPUs e quantidade de memória, usando efetivamente um tipo de máquina personalizado. Os tipos de máquina personalizados estão disponíveis somente para tipos de máquinas de uso geral. Ao criar um tipo de máquina personalizado, você está efetivamente implantando um tipo da família de máquinas E2, N2, N2D ou N1.

Tipos de máquina personalizados são ideais para os seguintes cenários:

  • Cargas de trabalho que não são adequadas para os tipos de máquinas predefinidos que estão disponíveis para você.
  • Cargas de trabalho que exigem mais poder de processamento ou mais memória, mas não precisam de todos os upgrades fornecidos pelo próximo nível de tipo de máquina.

Antes de começar

Especificações

Geral

  • A memória total para um tipo de máquina personalizado precisa ser um múltiplo de 256 MB. Por exemplo, 6,9 GB não é uma opção, mas 6,75 GB e 7 GB são.

  • VMs com tipos de máquina personalizados têm as mesmas limitações de capacidade de disco permanente que as instâncias com tipos de máquina predefinidos.

  • Os tipos de máquina personalizados estão sujeitos aos mesmos limites de disco permanente que os tipos de máquina de uso geral. No momento, o tamanho total máximo do disco permanente para cada tipo de máquina por instância é de 257 TB, e o número máximo de discos permanentes é 128.

Tipos de máquina personalizados E2

  • Os tipos de máquina E2 aceitam plataformas predefinidas com processadores Intel ou AMD EPYC Rome. É possível criar tipos de máquinas personalizados E2 com vCPUs em múltiplos de 2 a 32 vCPUs. O número mínimo aceitável de vCPUs é 2.

  • Por padrão, a memória por vCPU que pode ser selecionada para um tipo de máquina personalizado é determinada pela família de tipos de máquinas. Para os tipos de máquina E2, selecione de 0,5 GB a 8 GB por vCPU.

Exemplos de tipos de máquinas inválidos

  • 1 vCPU, 1024 MB de memória. Inválido porque a contagem de vCPU é muito pequena. Os tipos de máquina personalizados E2 exigem no mínimo 2 vCPUs.
  • 32 vCPUs, 1 GB de memória total: inválido porque a proporção de memória para vCPUs está abaixo de 0,5 GB por vCPU.

Exemplos de tipos de máquinas válidos

  • 32 vCPUs, 16 GB de memória total. Válido porque o número total de vCPUs é par e a memória total é uma proporção aceitável de memória para vCPU.
  • 2 vCPUs, 8 GB de memória total: válido porque tem 2 vCPUs, que é o valor mínimo, e a memória total é um múltiplo de 256 MB. A quantidade de memória por vCPU também está no intervalo aceitável de 0,5 GB a 8 GB por vCPU.

Tipos de máquina personalizados N2

  • Para tipos de máquinas N2, compatíveis apenas com a plataforma Cascade Lake, é possível criar tipos de máquinas personalizados de 2 a 80 vCPUs. É possível criar tipos de máquinas N2 personalizados com vCPUs em múltiplos de 2 até 80 vCPUs. Para tipos de máquina com pelo menos 32 vCPUs, é preciso selecionar uma contagem de vCPUs que seja um múltiplo de 4. Por exemplo, 32, 36 e 40 vCPUs são opções válidas, mas 38 não. O número mínimo de vCPUs aceitáveis é 2.

  • Por padrão, a memória por vCPU que pode ser selecionada para um tipo de máquina personalizado é determinada pela família de tipos de máquinas. Para tipos de máquinas N2, selecione entre 1 GB e 8 GB por vCPU. Selecione quantidades maiores de memória para ativar a expansão de memória.

  • As máquinas N2 estão disponíveis somente em zonas selecionadas. Para saber mais, consulte regiões e zonas.

Exemplos de tipos de máquinas inválidos

  • 2 vCPUs, 0,5 GB de memória total. Inválido porque a memória total é menor que o mínimo de 1 GB para um tipo de máquina N2.
  • 34 vCPUs, 34 GB de memória total. Inválido porque o número total de vCPUs não é divisível por 4.
  • 1 vCPU, 1024 MB de memória. Inválido porque a contagem de vCPU é muito pequena. Tipos de máquinas personalizados N2 requerem um mínimo de 2 vCPUs.

Exemplos de tipos de máquinas válidos

  • 36 vCPUs, 18 GB de memória total. Válido porque o número total de vCPUs é par e a memória total é um múltiplo de 256 MB. A quantidade de memória por vCPU é de 1 GB, o que atende ao requisito mínimo. Como o número de vCPUs é maior que 32, a quantidade de vCPUs precisa ser divisível por 4.
  • 2 vCPUs, 7 GB de memória total. válido porque tem 2 vCPUs, que é o valor mínimo, e a memória total é um múltiplo de 256 MB. A quantidade de memória por vCPU também está no intervalo aceitável de 1 GB a 8 GB por vCPU.

Tipos de máquina personalizados N2D

  • O número máximo de vCPUs permitido para um tipo de máquina personalizado é determinado pela família escolhida. Para tipos de máquina N2D, que são compatíveis com a plataforma AMD EPYC Rome, é possível implantar tipos de máquinas personalizados com 2 a 96 vCPUs.

  • É possível criar máquinas personalizadas N2D com 2, 4, 8 ou 16 vCPUs. Após 16, é possível incrementar o número de vCPUs em 16, até atingir 96 vCPUs. O número mínimo aceitável de vCPUs é 2.

  • Por padrão, a memória por vCPU que pode ser selecionada para um tipo de máquina personalizado é determinada pela família de tipos de máquinas. Para tipos de máquina N2D, selecione entre 1 GB e 16 GB por vCPU. Selecione quantidades maiores de memória para ativar a expansão de memória.

  • As máquinas N2D estão disponíveis somente em zonas selecionadas. Para saber mais, consulte regiões e zonas.

Exemplos de tipos de máquinas inválidos

  • 2 vCPUs, 0,4 GB de memória total. Inválido porque a memória total é menor que o mínimo de 1 GB para um tipo de máquina N2D.
  • 34 vCPUs, 34 GB de memória total. Inválido porque o número total de vCPUs não é divisível por 16.
  • 1 vCPU, 1024 MB de memória. Inválido porque a contagem de vCPU é muito pequena. Os tipos de máquina personalizados N2D exigem no mínimo 2 vCPUs.

Exemplos de tipos de máquinas válidos

  • 32 vCPUs, 16 GB de memória total. Válido porque o número total de vCPUs é par e a memória total é um múltiplo de 256 MB. A quantidade de memória por vCPU é de 1 GB, o que atende ao requisito mínimo. Como o número de vCPUs é maior que 8, ele precisa ser divisível por 16.
  • 2 vCPUs, 7 GB de memória total. válido porque tem 2 vCPUs, que é o valor mínimo, e a memória total é um múltiplo de 256 MB. A quantidade de memória por vCPU também está no intervalo aceitável de 1 GB a 8 GB por vCPU.

Tipos de máquina personalizados N1

  • O número máximo de vCPUs permitido para um tipo de máquina personalizado é determinado pela família de tipos de máquina escolhida. Para tipos de máquina N1:

    • se for implantado em um tipo de zona que oferece suporte à plataforma de CPU Skylake, é possível criar tipos de máquinas personalizados com até 96 vCPUs;
    • Se for implantado em zonas compatíveis com as plataformas de CPU Broadwell, Haswell ou Ivy Bridge, é possível implantar tipos de máquinas personalizados com até 64 vCPUs.

    Para ver quais plataformas estão disponíveis em cada zona, consulte regiões e zonas.

  • É possível criar tipos de máquina N1 com duas ou mais vCPUs. O número de vCPUs precisa ser um múltiplo de dois, até 96 vCPUs para a plataforma de CPU Skylake ou até 64 vCPUs para plataformas de CPU Broadwell, Haswell ou Ivy Bridge.

  • Por padrão, a memória por vCPU que pode ser selecionada para um tipo de máquina personalizado é determinada pela família de tipo de máquina. Para tipos de máquinas N1, selecione entre 0,9 GB e 6,5 GB por vCPU. Selecione quantidades maiores de memória para ativar a expansão de memória.

Exemplos de tipos de máquinas inválidos

  • 1 vCPU, 0,2 GB de memória total. Inválido porque a memória total é menor que o mínimo de 0,9 GB para um tipo de máquina N1.
  • 1 vCPU, 0,9 GB de memória total. Inválido porque a memória total precisa ser um múltiplo de 256 MB. Para 1 vCPU, use no mínimo 1.024 MB de memória.

Exemplos de tipos de máquinas válidos

  • 32 vCPUs, 29 GB de memória total: válido porque o número total de vCPUs é par, e o total de memória é um múltiplo de 256 MB. A quantidade de memória por vCPU é de 0,9 GB, o que satisfaz o requisito mínimo.
  • 1 vCPU, 1 GB de memória total. Válido porque tem 1 vCPU, que é o valor mínimo, e o total de memória é um múltiplo de 256 MB. A quantidade de memória por vCPU também está no intervalo aceitável de 0,9 GB a 6,5 GB por vCPU.

Preços

O Google cobra por tipos de máquinas personalizados com base no número de vCPUs e nas horas de memória que a instância usa. Isso é diferente de como tipos de máquinas predefinidos são cobrados. Consulte a página de preços antes de criar um tipo de máquina personalizado. Por exemplo, para consultar os preços dos tipos de máquinas personalizados E2, consulte vCPUs e memória personalizadas E2.

As instâncias de VM que executam um tipo de máquina personalizado estão sujeitas à mesma cobrança mínima de um minuto que qualquer outra instância, mas descontos por uso prolongado para tipos de máquina personalizados são calculados de maneira diferente. Para ver mais informações, consulte Descontos por uso prolongado para tipos de máquinas personalizados.

Como expressar memória em GB ou MB

Para a documentação e ferramentas do Google Cloud, a memória do tipo de máquina é calculada em gigabytes (GB), sendo que 1 GB equivale a 2 30 bytes. Essa unidade de medida também é conhecida como gibibyte (GiB). Ao converter a memória de GB para MB, 1 GB = 1.024 MB.

Na API, sempre forneça memória em megabytes. Se você usa a ferramenta de linha de comando gcloud, é possível fornecer a memória total para uma instância de VM em gigabytes ou megabytes. No entanto, a ferramenta gcloud espera que o valor da memória seja um número inteiro. Portanto, não é possível fornecer um valor flutuante. Por exemplo, para expressar 5,75 GB, converta 5,75 GB em MB. Nesse caso, 5,75 GB são 5.888 MB.

Criar uma instância de VM com um tipo de máquina personalizado

Antes de criar uma instância de VM, leia e entenda as Especificações para a criação de um tipo de máquina personalizado.

Console

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

    Acesse "Criar uma instância"

  2. Em Zona, selecione a zona em que você quer hospedar esta instância. A lista Série é filtrada para incluir apenas as famílias de tipo de máquina disponíveis na zona selecionada.

  3. Em Configuração de máquina, selecione Uso geral.

  4. Na lista Série, selecione N1 em Primeira geração para tipos de máquina personalizados N1 ou E2, N2 ou N2D para os tipos de Segunda geração.

  5. Na lista Tipo de máquina, selecione Personalizado.

  6. Para especificar o número de vCPUs e a quantidade de memória da instância de VM, arraste os controles deslizantes ou insira os valores nas caixas de texto. O console exibe um custo estimado para a instância à medida que você altera o número de vCPUs e a memória.

  7. Salve suas alterações e continue a criar a VM.

gcloud

O comando gcloud para tipos de máquinas personalizados é um pouco diferente, dependendo da família de tipos de máquinas.

Para tipos de máquinas N1, use o comando gcloud compute instances create e inclua uma das seguintes opções:

  • As sinalizações --custom-cpu e --custom-memory
  • A sinalização --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

Por exemplo, o comando a seguir criaria uma instância que executa um tipo de máquina N1 com 4 vCPUs e 5 GB de memória total:

gcloud compute instances create example-instance \
    --custom-cpu=4 --custom-memory=5

Para os tipos de máquina N2, use o comando gcloud compute instances create e inclua uma das seguintes opções:

  • As sinalizações --custom-cpu, --custom-memory e --custom-vm-type
  • A sinalização --machine-type=n2-custom-number-of-cpus-number-of-mb

Se usar a sinalização --custom-memory, especifique a quantidade total de memória em GB ou em MB. A propriedade precisa ser um número inteiro. Portanto, se você quiser especificar incrementos de 0,25 GB em memória, converta esse valor em MB.

Para especificar um valor incremental, como 2,5 GB de memória, converta o valor em MB e forneça o valor seguido do sufixo MB: O exemplo a seguir cria uma instância que executa um tipo de máquina N2:

gcloud compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=n2

Como alternativa, use este formato para especificar um tipo de máquina personalizado:

gcloud compute instances create example-instance \
    --machine-type=n2-custom-number-of-cpus-number-of-mb

Substitua:

  • number-of-cpus: o número de CPUs.
  • number-of-mb: a quantidade de memória, em MB.

Exemplo:

gcloud compute instances create example-instance --machine-type=n2-custom-6-3072

Para os tipos de máquina N2D ou E2, use o comando gcloud beta compute instances create e inclua uma das seguintes opções:

  • As sinalizações --custom-cpu, --custom-memory e --custom-vm-type
  • A sinalização --machine-type=e2-custom-number-of-cpus-number-of-mb
  • A sinalização --machine-type=n2d-custom-number-of-cpus-number-of-mb

Ao usar a sinalização --custom-memory, especifique a quantidade total de memória em GB ou em MB. A propriedade precisa ser um número inteiro. Então, se você quiser especificar incrementos de 0,25 GB em memória, converta o valor em MB.

Para especificar um valor incremental, como 2,5 GB de memória, converta o valor em MB e forneça o valor seguido do sufixo MB. O exemplo a seguir cria uma instância que executa um tipo de máquina E2:

gcloud beta compute instances create example-instance \
    --custom-cpu=6 --custom-memory=3072MB --custom-vm-type=e2

Como alternativa, use este formato para especificar um tipo de máquina personalizado:

gcloud beta compute instances create example-instance \
    --machine-type=e2-custom-number-of-cpus-number-of-mb

Substitua:

  • number-of-cpus: o número de CPUs.
  • number-of-mb: a quantidade de memória, em MB.

Exemplo:

gcloud compute instances create example-instance --machine-type=e2-custom-6-3072

API

Na API, gere sua solicitação de criação de instância como faria normalmente, mas, ao especificar um valor de machineType, use um dos formatos a seguir. Substitua number-of-cpus pelo número de CPUs e amount-of-memory-mb pela quantidade de memória que você quer usar. Forneça a memória em unidades de MB.

  • Para tipos de máquinas N1, use:

    zones/zone/machineTypes/custom-number-of-cpus-amount-of-memory-mb
    
  • Para tipos de máquinas N2, use:

    zones/zone/machineTypes/n2-custom-number-of-cpus-amount-of-memory-mb
    
  • Para tipos de máquinas N2D, use:

    zones/zone/machineTypes/n2d-custom-number-of-cpus-amount-of-memory-mb
    
  • Para tipos de máquina E2, use:

    zones/zone/machineTypes/e2-custom-number-of-cpus-amount-of-memory-mb
    

Por exemplo, o seguinte URL criaria uma instância com 4 vCPUs e 5 GB (5.120 MB) de memória:

zones/us-central1-f/machineTypes/custom-4-5120

Da mesma forma, é possível criar instâncias preemptivas e grupos de instâncias com tipos de máquina personalizados.

Adicionar memória estendida a um tipo de máquina

Dependendo do tipo de máquina, cada um pode ter até uma quantidade específica de memória por padrão. Por exemplo, se você criar uma VM com um tipo de máquina personalizado N1, a VM poderá ter até 6,5 GB de memória por vCPU. Para tipos de máquinas personalizados N2, esse número vai até 8 GB de memória por vCPU.

Para algumas cargas de trabalho, isso pode não ser memória suficiente. Por um custo extra, é possível ter mais memória por vCPU além do limite padrão. Isso é conhecido como memória estendida.

Com a memória estendida, é possível adicionar memória ao tipo de máquina sem limitações por vCPU. Você adiciona memória estendida até certos limites com base no tipo de máquina:

  • Para tipos de máquinas N1, é possível adicionar até 624 GB de memória total por VM.
  • Para tipos de máquinas N2, é possível adicionar até 640 GB de memória por VM.
  • Para tipos de máquinas N2D, é possível adicionar até 768 GB de memória por VM.
  • A memória estendida não está disponível para os tipos de máquina E2.

Se você precisar de mais memória, use um dos tipos de máquina de megamemória, que permitem criar instâncias com um total de 1,4 TB por instância de VM.

Como determinar se você precisa de memória estendida

Certas cargas de trabalho precisam de mais do que a quantidade padrão de memória por vCPU para fornecer os melhores resultados. As cargas de trabalho baseadas em bancos de dados de análise de alto desempenho na memória, incluindo bancos de dados relacionais e NoSQL, como MS SQL Server, MongoDB e MemcacheD/Redis, estão nessa categoria. O licenciamento com base em vCPU de sistemas operacionais e pilhas de software também torna a seleção de uma configuração de memória de VM ideal mais desafiadora com os tipos de máquinas predefinidos. Ao usar memória estendida, adicione a memória que suas VMs precisarem para conseguir a melhor relação custo-benefício.

Preços

Ao usar um tipo de máquina personalizado, qualquer memória até e incluindo a quantidade padrão por vCPU é cobrada de acordo com os preços de tipos de máquinas personalizados N1 ou os preços de tipos de máquinas personalizados N2. Para mais memória do que o padrão, o Compute Engine cobra por memória estendida com base nos preços de memória personalizada estendida N1 ou nos preços de memória personalizada estendida N2. O preço da memória estendida é diferente do preço da memória abaixo do limite padrão.

Os preços de memória estendida diferem conforme a região. Instâncias em execução com memória estendida estão sujeitas à mesma cobrança mínima de um minuto que qualquer outra instância. A memória estendida também se qualifica para descontos por uso prolongado.

Para mais informações, consulte descontos por uso prolongado para tipos de máquinas personalizados e preços de memória personalizada estendida.

Limitações

  • Só é possível adicionar memória estendida a tipos de máquina personalizados. Não são aceitos tipos de máquinas predefinidos.
  • Não há limite para a adição de memória por vCPU, mas há uma quantidade máxima de memória que pode ser adicionada a cada instância de VM. Para tipos de máquinas N1, é possível adicionar até 624 GB de memória. Para tipos de máquinas N2, é possível adicionar até 640 GB de memória. Para tipos de máquinas N2D, é possível adicionar até 768 GB de memória.
  • Os tipos de máquina N2 e N2D estão disponíveis somente em determinadas regiões e zonas.
  • A memória precisa ser especificada em incrementos de 256 MB.
  • A memória estendida não se qualifica para os descontos por compromisso de uso.

Adicionar memória estendida durante a criação da instância

Para criar uma instância de VM com memória estendida, siga as instruções abaixo.

Console

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

    Acesse "Criar uma instância"

  2. Em Zona, selecione a zona em que você quer hospedar esta instância. A lista Série é filtrada para incluir apenas as famílias de tipo de máquina disponíveis na zona selecionada.

  3. Em Configuração de máquina, selecione Uso geral.

  4. Na lista suspensa Series, selecione N1 em Primeira geração para tipos de máquina personalizados N1. Para os de Segunda geração, selecione N2 ou N2D.

  5. Na lista suspensa Tipo de máquina, selecione Personalizado.

  6. Especifique o número de vCPUs que você quer.

  7. Para adicionar memória estendida, selecione Estender memória e especifique a quantidade de memória desejada.

  8. Salve suas alterações e continue a criar a VM.

gcloud

Para tipos de máquinas N1, use o comando gcloud e o subcomando instances create, seguido pela sinalização --custom-extensions para ativar a memória estendida. Em seguida, especifique o total de memória desejada com o parâmetro --custom- memory.

gcloud compute instances create example-instance  \
    --custom-extensions --custom-cpu=2 --custom-memory=15

Para tipos de máquinas N2, use o comando gcloud com o subcomando instances create. Defina as sinalizações --custom-extensions, --custom-cpu e --custom-memory, seguidas pela sinalização --custom-vm-type, para especificar o tipo de máquina N2:

gcloud compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2

Para os tipos de máquina N2D, use o comando gcloud beta com o subcomandoinstances create. Defina as sinalizações --custom-extensions, --custom-cpu e --custom-memory, seguidas pela sinalização --custom-vm-type, para especificar o tipo de máquina N2D:

gcloud beta compute instances create example-instance \
    --custom-extensions --custom-cpu=2 --custom-memory=16 \
    --custom-vm-type=n2d

API

Na API, faça sua solicitação de criação de instância como faria normalmente, mas ao especificar um valor machineType, use um dos formatos a seguir:

  • Para tipos de máquinas N1, use:

    zones/zone/machineTypes/custom-number-of-cpus-amount-of-memory-ext
    
  • Para tipos de máquinas N2, use:

    zones/zone/machineTypes/n2-custom-number-of-cpus-amount-of-memory-ext
    
  • Para tipos de máquinas N2D, use:

    zones/zone/machineTypes/n2d-custom-number-of-cpus-amount-of-memory-ext
    

Substitua estes itens:

  • number-of-cpus: o número de vCPUs
  • amount-of-memory: a quantidade de memória (em MB) necessária

Por exemplo, o seguinte comando especifica um tipo de máquina N2 com 2 vCPUs e 20 GB de memória:

zones/zone/machineTypes/n2-custom-2-20480-ext

Adicionar memória estendida a uma instância de VM atual

Para adicionar mais memória a uma instância atual, primeiro interrompa a instância. Depois que a instância for interrompida, siga as instruções abaixo para adicionar mais memória à VM.

Console

  1. No Console do Google Cloud, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Escolha a instância interrompida que você quer modificar na lista de instâncias.

  3. Clique em Editar no topo da página.

  4. Em Configuração de máquina, selecione Uso geral.

  5. Na lista Tipo de máquina, selecione Personalizado.

  6. Selecione o número de vCPUs desejado.

  7. Para adicionar memória estendida, selecione Estender memória e especifique a quantidade de memória desejada.

  8. Salve as alterações.

gcloud

Na ferramenta de linha de comando gcloud, use o subcomando instances set-machine-type, seguido pela sinalização --custom-extensions pareada com o parâmetro --custom-memory atual.

Por exemplo, para adicionar 2 GB de memória em uma instância de VM chamada example-instance, que atualmente tem um tipo de máquina N1 com 2 vCPUs, 13 GB, na zona us-central1-b, use o seguinte comando:

gcloud compute instances set-machine-type example-instance \
   --zone=us-central1-b --custom-cpu=2 \
   --custom-memory=15 --custom-extensions

API

Na API, faça uma solicitação POST para o método setMachineType com o tipo de máquina que você quer usar especificado no corpo da solicitação. Use um dos formatos a seguir:

  • Para tipos de máquinas N1, use:

    zones/zone/machineTypes/custom-number-of-cpus-amount-of-memory-ext
    
  • Para tipos de máquinas N2, use:

    zones/zone/machineTypes/n2-custom-number-of-cpus-amount-of-memory-ext
    
  • Para tipos de máquinas N2D, use:

    zones/zone/machineTypes/n2d-custom-number-of-cpus-amount-of-memory-ext
    

Substitua:

  • number-of-cpus: o número de vCPUs.
  • amount-of-memory: a quantidade de memória necessária, em MB.

Por exemplo, o seguinte comando usa um tipo de máquina com 2 vCPUs e 15 GB de memória total:

zones/zone/machineTypes/custom-2-15360-ext

Exemplo:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name/setMachineType

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}

A seguir