Reduzir a latência usando políticas de posicionamento compacto

Neste documento, explicamos como reduzir a latência de rede entre suas instâncias do Compute Engine criando e aplicando políticas de posicionamento compacto a elas. Para saber mais sobre políticas de posicionamento, incluindo as séries de máquinas, restrições e preços compatíveis, consulte Visão geral das políticas de posicionamento.

Uma política de posicionamento compacto especifica que as instâncias de computação precisam ser colocadas fisicamente mais perto umas das outras. Isso pode ajudar a melhorar o desempenho e reduzir a latência de rede entre as instâncias de computação quando, por exemplo, você executa computação de alto desempenho (HPC), machine learning (ML) ou cargas de trabalho de servidor de banco de dados.

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ó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 .

Funções exigidas

Para receber as permissões necessárias para criar e aplicar uma política de posicionamento compacto a instâncias de computação, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar e aplicar uma política de posicionamento compacto às instâncias de computação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para criar e aplicar uma política de posicionamento compacto às instâncias de computação:

  • Para criar políticas de posicionamento: compute.resourcePolicies.create no projeto
  • Para aplicar uma política de posicionamento a instâncias de computação atuais: compute.instances.addResourcePolicies no projeto
  • Para criar instâncias de computação:
    • compute.instances.create no projeto
    • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
    • Utilizar 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
    • Atribuir uma rede legada à VM: compute.networks.use no projeto
    • 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 legada: compute.networks.useExternalIp no projeto
    • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
    • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
    • Definir os metadados da instância da 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 para a VM usar: 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
  • Para criar uma reserva: compute.reservations.create no projeto
  • Para criar um modelo de instância: compute.instanceTemplates.create no projeto
  • Para criar um grupo gerenciado de instâncias (MIG): compute.instanceGroupManagers.create no projeto
  • Para conferir os detalhes de uma instância de computação: compute.instances.get no projeto

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

Criar uma política de colocação de compactação

Antes de criar uma política de posicionamento compacto, considere o seguinte:

  • Se você quiser aplicar uma política de posicionamento compacto a uma instância de computação que não seja M3, M2, M1, N2D ou N2, recomendamos especificar um valor de distância máxima.

  • Se você quiser aplicar uma política de posicionamento compacto a uma instância A3 Mega, A3 High ou A3 Edge criada antes de 1º de outubro de 2025, entre em contato com sua equipe de conta.

Para criar uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

  • Para aplicar a política de posicionamento compacto a instâncias M3, M2, M1, N2D ou N2, crie a política usando o comando gcloud compute resource-policies create group-placement com a flag --collocation=collocated.

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.

    • REGION: a região em que a política de posicionamento será criada.

  • Para aplicar a política de posicionamento compacto a qualquer outra instância de computação com suporte, crie a política usando o comando gcloud beta compute resource-policies create group-placement com as flags --collocation=collocated e --max-distance.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.

    • MAX_DISTANCE: a configuração da distância máxima para suas instâncias de computação. O valor precisa estar entre 1, que especifica a colocação das instâncias de computação no mesmo rack para ter a menor latência de rede possível, e 3, que especifica a colocação das instâncias de computação em clusters adjacentes.

    • REGION: a região em que a política de posicionamento será criada.

REST

  • Para aplicar a política de posicionamento compacto a instâncias M3, M2, M1, N2D ou N2, crie a política fazendo uma solicitação POST ao método resourcePolicies.insert. No corpo da solicitação, inclua o campo collocation e defina-o como COLLOCATED.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a política de posicionamento.

    • REGION: a região em que a política de posicionamento será criada.

    • POLICY_NAME: o nome da política de posicionamento compacto.

  • Para aplicar a política de posicionamento compacto a qualquer outra instância de computação com suporte, crie a política fazendo uma solicitação POST para o método beta.resourcePolicies.insert. No corpo da solicitação, inclua o seguinte:

    • O campo collocation definido como COLLOCATED.

    • O campo maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a política de posicionamento.

    • REGION: a região em que a política de posicionamento será criada.

    • POLICY_NAME: o nome da política de posicionamento compacto.

    • MAX_DISTANCE: a configuração da distância máxima para suas instâncias de computação. O valor precisa estar entre 1, que especifica a colocação das instâncias de computação no mesmo rack para ter a menor latência de rede possível, e 3, que especifica a colocação das instâncias de computação em clusters adjacentes.

Aplicar uma política de posicionamento compacto

É possível aplicar uma política de posicionamento compacto a uma instância de computação ou grupo gerenciado de instâncias (MIG) atual ou ao criar instâncias de computação, modelos de instância, MIGs ou reservas de instâncias de computação.

Para aplicar uma política de posicionamento compacto a um recurso do Compute Engine, selecione um dos seguintes métodos:

Depois de aplicar uma política de posicionamento compacto a uma instância, é possível verificar o local físico da instância em relação a outras instâncias que especificam a mesma política de posicionamento.

Aplicar a política a uma instância atual

Antes de aplicar uma política de posicionamento compacto a uma instância de computação, verifique o seguinte:

Caso contrário, a aplicação da política de posicionamento compacto à instância de computação vai falhar. Se a instância de computação já especificar uma política de posicionamento e você quiser substituí-la, consulte Substituir uma política de posicionamento em uma instância de computação.

Para aplicar uma política de posicionamento compacto a uma instância de computação, selecione uma das seguintes opções:

gcloud

  1. Interrompa a instância de computação.

  2. Para aplicar uma política de posicionamento compacto a uma instância de computação atual, use o comando gcloud compute instances add-resource-policies.

    gcloud compute instances add-resource-policies INSTANCE_NAME \
        --resource-policies=POLICY_NAME \
        --zone=ZONE
    

    Substitua:

    • INSTANCE_NAME: o nome de uma instância de computação.

    • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

    • ZONE: a zona em que a instância de computação está.

  3. Reinicie a instância.

REST

  1. Interrompa a instância de computação.

  2. Para aplicar uma política de posicionamento compacto a uma instância de computação, faça uma solicitação POST ao método instances.addResourcePolicies.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto e a instância de computação existem.

    • ZONE: a zona em que a instância de computação está.

    • INSTANCE_NAME: o nome de uma instância de computação.

    • REGION: a região em que a política de posicionamento compacto está localizada.

    • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  3. Reinicie a instância de computação.

Aplicar a política ao criar uma instância

Só é possível criar uma instância de computação que especifique uma política de posicionamento compacto na mesma região da política de posicionamento.

Para criar uma instância de computação que especifique uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para criar uma instância de computação que especifique uma política de posicionamento compacto, use o comando gcloud compute instances create com as flags --maintenance-policy e --resource-policies.

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome da instância de computação a ser criada.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • MAINTENANCE_POLICY: a política de manutenção do host da instância de computação. Se a política de posicionamento compacto especificada usar um valor máximo de distância de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, é possível especificar MIGRATE ou TERMINATE.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • ZONE: a zona em que a instância de computação será criada.

REST

Para criar uma instância de computação que especifique uma política de posicionamento compacto, faça uma solicitação POST para o método instances.insert. No corpo da solicitação, inclua os campos onHostMaintenance e resourcePolicies..

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

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto está localizada.

  • ZONE: a zona em que a instância de computação será criada e onde o tipo de máquina está localizado. Só é possível especificar uma zona na região da política de posicionamento compacto.

  • INSTANCE_NAME: o nome da instância de computação a ser criada.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • 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. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • REGION: a região em que a política de posicionamento compacto está localizada.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • MAINTENANCE_POLICY: a política de manutenção do host da instância de computação. Se a política de posicionamento compacto especificada usar um valor máximo de distância de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, é possível especificar MIGRATE ou TERMINATE.

Para mais informações sobre as opções de configuração para criar uma instância de computação, consulte Criar e iniciar uma instância de computação.

Aplicar a política ao criar várias instâncias

Só é possível criar instâncias de computação em massa com uma política de posicionamento compacto na mesma região da política de posicionamento.

Para criar instâncias de computação em massa que especifiquem uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para criar instâncias de computação em massa que especifiquem uma política de posicionamento compacto, use o comando gcloud compute instances bulk create com as flags --maintenance-policy e --resource-policies.

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar um padrão de nome para elas, execute o seguinte comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Substitua:

  • COUNT: o número de instâncias de computação a serem criadas, que não pode ser maior que o número máximo permitido de instâncias de computação da política de posicionamento compacto especificada.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • MAINTENANCE_POLICY: a política de manutenção do host da instância de computação. Se a política de posicionamento compacto especificada usar um valor máximo de distância de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, é possível especificar MIGRATE ou TERMINATE.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância de computação, use uma sequência de caracteres hash (#). Por exemplo, usar vm-# para o padrão de nome gera instâncias com nomes que começam com vm-1, vm-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • ZONE: a zona em que as instâncias de computação serão criadas em massa.

REST

Para criar instâncias de computação em massa que especifiquem uma política de posicionamento compacto, faça uma solicitação POST para o método instances.bulkInsert. No corpo da solicitação, inclua os campos onHostMaintenance e resourcePolicies..

Por exemplo, para criar instâncias de computação em massa em uma única zona e especificar um padrão de nome para elas, faça uma solicitação POST da seguinte maneira:

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

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto está localizada.

  • ZONE: a zona em que as instâncias de computação serão criadas em massa.

  • COUNT: o número de instâncias de computação a serem criadas, que não pode ser maior que o número máximo permitido de instâncias da política de posicionamento compacto especificada.

  • NAME_PATTERN: o padrão de nome das instâncias de computação. Para substituir uma sequência de números no nome de uma instância, use uma sequência de caracteres hash (#). Por exemplo, usar vm-# para o padrão de nome gera instâncias de computação com nomes que começam com vm-1, vm-2 e continuam até o número de instâncias de computação especificado por COUNT.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.

  • 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. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • REGION: a região em que a política de posicionamento compacto está localizada.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • MAINTENANCE_POLICY: a política de manutenção do host da instância. Se a política de posicionamento compacto que você especificar usar um valor máximo de distância de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, é possível especificar MIGRATE ou TERMINATE.

Para mais informações sobre as opções de configuração para criar instâncias de computação em massa, consulte Criar instâncias de computação em massa.

Aplicar a política ao criar uma reserva

Se você quiser criar uma reserva de projeto único sob demanda que especifique uma política de posicionamento compacto, crie uma reserva especificamente segmentada. Ao criar instâncias de computação para consumir a reserva, verifique o seguinte:

Para criar uma reserva de projeto único com uma política de posicionamento compacto, selecione um dos seguintes métodos:

Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud , acesse a página Reservas.

    Acessar "Reservas"

  2. Clique em Criar reserva. A página Criar uma reserva é exibida.

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

  4. Nas listas Região e Zona, selecione a região e a zona em que você quer reservar recursos.

  5. Na seção Usar com instância de VM, selecione Selecionar reserva específica.

  6. Na seção Instâncias de VM e GPUs, faça o seguinte:

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

    2. Especifique uma série e um tipo de máquina que ofereçam suporte a políticas de posicionamento compacto.

  7. Na seção Política de posicionamento em grupo, clique na lista Selecionar ou criar uma política de posicionamento em grupo e faça uma das seguintes ações:

    • Para criar uma política de posicionamento compacto, siga estas etapas:

      1. Clique em Criar política de posição em grupo. O painel Criar uma política de posicionamento em grupo é exibido.

      2. No campo Nome da política, insira um nome para a política.

      3. Clique em Criar.

    • Para selecionar uma política de posicionamento compacto, escolha uma política que exista na mesma região em que você quer reservar instâncias.

  8. Para criar a reserva, clique em Criar.

gcloud

Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, use o comando gcloud compute reservations create com flags --require-specific-reservation e --resource-policies=policy.

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_INSTANCES \
    --zone=ZONE

Substitua:

  • RESERVATION_NAME: o nome da reserva.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • NUMBER_OF_INSTANCES: o número de instâncias de computação a serem reservadas, que não podem ser maior que o número máximo permitido de instâncias da política de posicionamento compacto especificada.

  • ZONE: a zona em que as instâncias de computação serão reservadas. Só é possível reservar instâncias de computação em uma zona na região da política de posicionamento compacto especificada.

REST

Para criar uma reserva de projeto único com uma política de posicionamento compacto, especificando propriedades diretamente, faça uma solicitação POST ao método reservations.insert. No corpo da solicitação, inclua o campo resourcePolicies e o campo specificReservationRequired definido como true.

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

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_INSTANCES",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto está localizada.

  • ZONE: a zona em que as instâncias de computação serão reservadas. Só é possível reservar instâncias de computação em uma zona na região da política de posicionamento compacto especificada.

  • RESERVATION_NAME: o nome da reserva.

  • REGION: a região em que a política de posicionamento compacto está localizada.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • NUMBER_OF_INSTANCES: o número de instâncias de computação a serem reservadas, que não podem ser maior que o número máximo permitido de instâncias de computação da política de posicionamento compacto especificada.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

Para mais informações sobre as opções de configuração para criar reservas de projeto único, consulte Crie uma reserva para um único projeto.

Aplicar a política ao criar um modelo de instância

Se você quiser criar um modelo de instância regional, o modelo e a política de posicionamento compacto precisam estar na mesma região. Caso contrário, a criação do modelo de instância falhará.

Depois de criar um modelo de instância que especifique uma política de posicionamento compacto, é possível usar o modelo para fazer o seguinte:

Para criar um modelo de instância que especifique uma política de posicionamento compacto, use um dos seguintes métodos:

  • Para criar um modelo de instância regional com uma nova política de posicionamento compacto, use o console Google Cloud . A nova política não especifica um valor de distância máxima e pode ser aplicada a até 22 instâncias.

  • Para criar um modelo de instância global ou regional que especifique uma política de posicionamento compacto, use a CLI gcloud ou a API REST.

Para criar o modelo de instância, selecione uma das seguintes opções:

Console

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

    Acessar "Modelos de instância"

  2. Clique em Criar modelo de instância. A página Criar um modelo de instância é exibida.

  3. No campo Região, especifique onde você quer criar a política de colocação compacta e o modelo de instância.

  4. Na seção Configuração da máquina, especifique uma série e um tipo de máquina compatíveis com políticas de posicionamento compacto.

  5. Na seção Política de posicionamento, na lista Política de posicionamento, selecione Compacta. Quando você seleciona essa opção, o consoleGoogle Cloud gera automaticamente uma política de posicionamento compacto sem um valor de distância máxima e que aceita até 22 instâncias.

  6. Clique em Criar.

gcloud

Para criar um modelo de instância que especifique uma política de posicionamento compacta, use o comando gcloud compute instance-templates create com as flags --maintenance-policy e --resource-policies.

Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento compacto, execute o seguinte comando:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • MAINTENANCE_POLICY: a política de manutenção do host. Se a política de posicionamento compacto especificada usar um valor de distância máxima de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, especifique MIGRATE ou TERMINATE.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

REST

Para criar um modelo de instância que especifique uma política de posicionamento compacto, faça uma solicitação POST para um dos seguintes métodos:

No corpo da solicitação, inclua os campos onHostMaintenance e resourcePolicies..

Por exemplo, para criar um modelo de instância global que especifique uma política de posicionamento compacto, faça uma solicitação POST da seguinte maneira:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto está localizada.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.

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

  • 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. Ela especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • MACHINE_TYPE: um tipo de máquina compatível com políticas de posicionamento compacto.

  • POLICY_NAME: o nome de uma política de posicionamento compacto existente.

  • MAINTENANCE_POLICY: a política de manutenção do host. Se a política de posicionamento compacto especificada usar um valor de distância máxima de 1 ou 2, ou se o tipo de máquina escolhido não for compatível com a migração em tempo real, só será possível especificar TERMINATE. Caso contrário, especifique MIGRATE ou TERMINATE.

Para saber mais sobre as opções de configuração para criar um modelo de instância, consulte Criar modelos de instância.

Aplicar a política a instâncias em um MIG

Depois de criar um modelo de instância que especifique uma política de posicionamento compacto, é possível usar o modelo para fazer o seguinte:

.

Aplicar a política ao criar um MIG

Só é possível criar instâncias de computação que especificam uma política de posicionamento compacto se elas estiverem localizadas na mesma região da política de posicionamento.

Para criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto, use o comando gcloud compute instance-groups managed create.

Por exemplo, para criar um MIG zonal usando um modelo de instância global que especifique uma política de posicionamento compacto, execute o seguinte comando:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG que será criado.

  • SIZE: o tamanho do MIG.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.

  • ZONE: a zona em que o MIG será criado, precisa estar na região em que a política de posicionamento compacto está localizada.

REST

Para criar um MIG usando um modelo de instância que especifique uma política de posicionamento compacto faça uma solicitação POST a um dos seguintes métodos:

Por exemplo, para criar um MIG zonal usando um modelo de instância global que especifica uma política de posicionamento compacto, faça uma solicitação POST da seguinte maneira:

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

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento compacto e o modelo de instância que especifica a política estão localizados.

  • ZONE: a zona em que o MIG será criado, precisa estar na região em que a política de posicionamento compacto está localizada.

  • INSTANCE_GROUP_NAME: o nome do MIG que será criado.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.

  • SIZE: o tamanho do MIG.

Para mais informações sobre as opções de configuração para criar MIGs, consulte Cenários básicos para criar MIGs.

Aplicar a política a um MIG atual

Só é possível aplicar uma política de posicionamento compacto a um MIG se ele estiver localizado na mesma região da política de posicionamento ou, no caso de MIGs zonais, em uma zona na mesma região.

Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto selecione uma das seguintes opções:

gcloud

Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto, use o comando gcloud compute instance-groups managed rolling-action start-update.

Por exemplo, para atualizar um MIG zonal para usar um modelo de instância que especifique uma política de posicionamento compacto e substituir as instâncias de computação atuais do MIG por novas instâncias que especifiquem as propriedades do modelo, execute o seguinte comando:

gcloud compute instance-groups managed rolling-action start-update MIG_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

Substitua:

  • MIG_NAME: o nome de um MIG existente.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.

  • ZONE: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG localizado na mesma região da política de posicionamento.

REST

Para atualizar um MIG para usar um modelo de instância que especifique uma política de posicionamento compacto e aplicar automaticamente as propriedades do modelo e da política de posicionamento às instâncias de computação atuais no MIG, faça uma solicitação PATCH a um dos seguintes métodos:

Por exemplo, para atualizar um MIG zonal para usar um modelo de instância global que especifique uma política de posicionamento compacto e substituir as instâncias de computação atuais do MIG por novas instâncias que especifiquem as propriedades do modelo, faça a seguinte solicitação PATCH:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o MIG, a política de posicionamento compacto e o modelo de instância que especifica a política de posicionamento estão localizados.

  • ZONE: a zona em que o MIG está localizado. Só é possível aplicar a política de posicionamento compacto a um MIG localizado na mesma região da política de posicionamento.

  • MIG_NAME: o nome de um MIG existente.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância global que especifica uma política de posicionamento compacto.

Para mais informações sobre as opções de configuração para atualizar as instâncias de computação em um MIG, consulte Atualizar e aplicar novas configurações a instâncias em um MIG.

Verificar o local físico de uma instância

Depois de aplicar uma política de posicionamento compacto a uma instância de computação, é possível conferir o local físico dela em relação a outras instâncias. Essa comparação é limitada a instâncias de computação que existem no seu projeto e que especificam a mesma política de posicionamento compacto. Com a visualização do local físico de uma instância de computação, você:

  • confirma se a política foi aplicada;

  • Identifique quais instâncias de computação estão mais próximas umas das outras.

Para conferir o local físico de uma instância de computação em relação a outras que especificam a mesma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para conferir o local físico de uma instância de computação que especifica uma política de posicionamento compacto, use o comando gcloud compute instances describe com o flag --format.

gcloud compute instances describe INSTANCE_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

Substitua:

  • INSTANCE_NAME: o nome de uma instância de computação existente que especifica uma política de posicionamento compacto.

  • ZONE: a zona em que a instância de computação está.

O resultado será o seguinte:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

O valor do campo PHYSICAL_HOST é composto de três partes. Cada parte representa o cluster, o rack e o host em que a instância de computação está localizada.

Ao comparar a posição de duas instâncias de computação que usam a mesma política de posicionamento compacto no projeto, quanto mais partes do campo PHYSICAL_HOST as instâncias de computação compartilharem, mais próximas elas estarão fisicamente uma da outra. Por exemplo, suponha que duas instâncias de computação especifiquem um dos seguintes valores de amostra para o campo PHYSICAL_HOST:

  • /CCCCCCC/xxxxxx/xxxx: as duas instâncias de computação são colocadas no mesmo cluster, o que equivale a um valor de distância máxima de 2. As instâncias de computação colocadas no mesmo cluster têm baixa latência de rede.

  • /CCCCCCC/BBBBBB/xxxx: as duas instâncias de computação são colocadas no mesmo rack, o que equivale a um valor de distância máxima de 1. As instâncias de computação colocadas no mesmo rack têm uma latência de rede menor do que as instâncias colocadas no mesmo cluster.

  • /CCCCCCC/BBBBBB/AAAA: as duas instâncias de computação compartilham o mesmo host. As instâncias de computação colocadas no mesmo host minimizam a latência de rede o máximo possível.

REST

Para conferir o local físico de uma instância de computação que especifica uma política de posicionamento compacto, faça uma solicitação GET para o método instances.get.

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

Substitua:

  • PROJECT_ID: o ID do projeto em que a instância de computação existe.

  • ZONE: a zona em que a instância de computação está.

  • INSTANCE_NAME: o nome de uma instância de computação existente que especifica uma política de posicionamento compacto.

O resultado será o seguinte:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

O valor do campo physicalHost é composto de três partes. Cada parte representa o cluster, o rack e o host em que a instância de computação está localizada.

Ao comparar a posição de duas instâncias de computação que usam a mesma política de posicionamento compacto no projeto, quanto mais partes do campo physicalHost as instâncias de computação compartilharem, mais próximas elas estarão fisicamente uma da outra. Por exemplo, suponha que duas instâncias de computação especifiquem um dos seguintes valores de amostra para o campo physicalHost:

  • /CCCCCCC/xxxxxx/xxxx: as duas instâncias de computação são colocadas no mesmo cluster, o que equivale a um valor de distância máxima de 2. As instâncias de computação colocadas no mesmo cluster têm baixa latência de rede.

  • /CCCCCCC/BBBBBB/xxxx: as duas instâncias de computação são colocadas no mesmo rack, o que equivale a um valor de distância máxima de 1. As instâncias de computação colocadas no mesmo rack têm uma latência de rede menor do que as instâncias colocadas no mesmo cluster.

  • /CCCCCCC/BBBBBB/AAAA: as duas instâncias de computação compartilham o mesmo host. As instâncias de computação colocadas no mesmo host minimizam a latência de rede o máximo possível.

A seguir