Como criar e iniciar uma instância de VM

Neste documento, você entenderá como criar uma instância de máquina virtual (VM) usando uma imagem de disco de inicialização, um snapshot de disco de inicialização ou uma imagem de contêiner. Algumas imagens são compatíveis com recursos da VM protegida, que oferecem recursos de segurança, como firmware compatível com UEFI, inicialização segura e inicialização medida protegida por vTPM. Em VMs protegidas, o vTPM e o monitoramento de integridade são ativados por padrão.

É possível criar vários discos para sua instância de VM durante o processo de criação. Também é possível adicionar mais discos à instância depois que ela for criada. O Compute Engine iniciará automaticamente a instância de VM depois de criá-la.

Este documento explica maneiras básicas de criar uma instância. Para configurações de instância mais específicas ou complicadas, consulte os seguintes recursos:

Se você estiver trazendo uma licença existente, consulte Trazendo sua própria licença com nós de locação única.

Antes de começar

Como criar uma instância a partir de uma imagem

Nesta seção, você entenderá como criar uma VM a partir de uma imagem do SO pública ou de uma imagem personalizada. Uma VM contém um carregador de inicialização, um sistema de arquivos de inicialização e uma imagem do SO.

Como visualizar uma lista de imagens públicas disponíveis no Compute Engine

Antes de criar uma VM usando uma imagem pública, revise a lista de imagens públicas disponíveis no Compute Engine.

Para mais informações sobre os recursos disponíveis em cada imagem pública, consulte Suporte a recursos por sistema operacional.

Console

  1. No Console do Google Cloud, acesse a página Imagens.

    Acessar "Imagens"

gcloud

  1. Execute este comando:

    gcloud compute images list
  2. Anote o nome da imagem (ou da família de imagens) e o projeto que a contém.

  3. Opcional: determine se a imagem é compatível com os recursos da VM protegida. Para fazer isso, execute o seguinte comando e verifique se há UEFI_COMPATIBLE na saída:

    gcloud compute images describe VM_NAME \
        --project IMAGE_PROJECT
    

    Substitua:

    • VM_NAME: nome da imagem para verificar a compatibilidade com os recursos da VM protegida;
    • IMAGE_PROJECT: projeto que contém a imagem.

API

  1. Execute este comando:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
    
  2. Anote o nome da imagem (ou da família de imagens) e o projeto que a contém.

  3. Opcional: determine se a imagem é compatível com os recursos da VM protegida. Para fazer isso, execute o seguinte comando e verifique se há UEFI_COMPATIBLE na saída:

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
    

    Substitua:

    • IMAGE_PROJECT: projeto que contém a imagem;
    • IMAGE_NAME: nome da imagem para verificar a compatibilidade com os recursos da VM protegida.

Como criar uma instância de uma imagem pública

O Google, assim como as comunidades de código aberto e os fornecedores terceirizados, fornece e mantém imagens públicas do SO. Por padrão, todos os projetos do Google Cloud podem criar VMs a partir dessas imagens. No entanto, se o projeto do Cloud tiver uma lista definida de imagens confiáveis, use apenas as opções dessa lista para criar uma VM.

Se você criar uma imagem de VM protegida com um SSD local, não será possível proteger dados com o monitoramento de integridade ou o módulo de plataforma confiável virtual (vTPM).

Console

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

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância. O Compute Engine seleciona, aleatoriamente, a lista de zonas dentro de cada região para incentivar o uso em várias zonas.

  6. Selecione uma Configuração de máquina para sua instância.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização. A menos que você escolha explicitamente um disco de inicialização diferente, se o nome da nova instância corresponder ao nome de um disco permanente, ele será anexado automaticamente à nova instância como o disco de inicialização.

  8. Na guia Imagens públicas, escolha um sistema operacional e uma versão.

  9. Clique em Salvar para confirmar as opções do disco de inicialização.

  10. Para permitir o tráfego HTTP ou HTTPS para a VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS. Quando você seleciona um deles, o Compute Engine adiciona uma tag de rede à VM, que associa a regra de firewall à VM. Em seguida, o Compute Engine cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS).

  11. Opcional: se você escolher uma imagem do SO compatível com recursos da VM protegida, será possível modificar as configurações da VM protegida:

    1. Clique na guia Segurança da seção Gerenciamento, segurança, discos, rede, locação individual.

    2. Para ativar a Inicialização segura, selecione Ativar a Inicialização segura. A inicialização segura está desativada por padrão.

    3. Para desativar o vTPM, desmarque Ativar vTPM. O vTPM está ativado por padrão. A desativação do vTPM também desativa o monitoramento de integridade, porque esse recurso depende de dados coletados pela Inicialização medida.

    4. Para desativar o monitoramento de integridade, desmarque a caixa de seleção Ativar monitoramento de integridade. O monitoramento de integridade está ativado por padrão.

  12. Clique no botão Criar para criar e iniciar a instância.

gcloud

  1. Selecione uma imagem pública. Anote o nome da imagem (ou da família de imagens) e o projeto que a contém.
  2. Use o comando gcloud compute instances create para criar uma VM a partir de uma família de imagens ou de uma versão específica de uma imagem do SO.

    Se você especificar a sinalização --shielded-secure-boot opcional, o Compute Engine criará uma VM com todos os três recursos da VM protegida já ativados:

    Depois que o Compute Engine iniciar a VM, será preciso interrompê-la para modificar as opções de VM protegida.

    gcloud compute instances create VM_NAME \
        [--image IMAGE | --image-family IMAGE_FAMILY] \
        --image-project IMAGE_PROJECT

    Substitua:

    • VM_NAME: nome da nova VM;
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
      • IMAGE: versão obrigatória de uma imagem pública. Por exemplo, --image debian-10-buster-v20200309.
      • IMAGE_FAMILY: uma família de imagens. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Por exemplo, se você especificar --image-family debian-10, o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.
    • IMAGE_PROJECT: projeto que contém a imagem.
  3. Verifique se o Compute Engine criou a VM:

    gcloud compute instances describe VM_NAME
    

    Substitua VM_NAME pelo nome da VM.

API

  1. Selecione uma imagem pública. Anote o nome da imagem (ou da família de imagens) e o projeto que a contém.
  2. Use o método instances.insert para criar uma VM a partir de uma família de imagens ou de uma versão específica de uma imagem do SO:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/PROJECT_ZONE/instances
    
    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "VM_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "shieldedInstanceConfig": {
       "enableSecureBoot": ENABLE_SECURE_BOOT
     }
    }
    

    Substitua:

    • PROJECT_ID: ID do projeto em que a VM será criada.
    • PROJECT_ZONE: zona em que a VM será criada.
    • MACHINE_TYPE_ZONE: zona que contém o tipo de máquina a ser usado para a nova VM.
    • MACHINE_TYPE: tipo de máquina, predefinida ou personalizada, para a nova VM.
    • VM_NAME: nome da nova VM.
    • IMAGE_PROJECT: projeto que contém a imagem. Por exemplo, se você especificar debian-10 como a família de imagens, especifique debian-cloud como o projeto da imagem.
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
      • IMAGE: versão obrigatória de uma imagem pública. Por exemplo, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
      • IMAGE_FAMILY: uma família de imagens. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Por exemplo, se você especificar "sourceImage": "projects/debian-cloud/global/images/family/debian-10", o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.
    • ENABLE_SECURE_BOOT: opcional: se você escolher uma imagem compatível com recursos da VM protegida, o Compute Engine ativa, por padrão, o módulo de plataforma virtual confiável (vTPM) e o monitoramento de integridade. Por padrão, o Compute Engine não ativa a Inicialização segura. Se você especificar true para enableSecureBoot, o Compute Engine criará uma VM com todos os três recursos da VM protegida já ativados. Depois que o Compute Engine iniciar a VM, será preciso interrompê-la se você quiser modificar as opções de VM protegida.

Python

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

Como criar uma VM a partir de uma imagem personalizada

Uma imagem personalizada pertence apenas ao seu projeto. Para criar uma instância com uma imagem personalizada, primeiro crie a imagem. Para saber como fazer isso, leia Como criar uma imagem personalizada.

Console

  1. Acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique no botão Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância.

    Observação: a lista de zonas é organizada aleatoriamente em cada região para incentivar o uso em várias zonas.

  6. Selecione uma Configuração de máquina para sua instância.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização.
    Crie um disco de inicialização com até 2 TB para não ultrapassar as restrições das partições MBR.

  8. Selecione a guia Imagens personalizadas.

  9. Certifique-se de que seu projeto esteja selecionado na lista suspensa.

  10. Escolha a imagem desejada e clique no botão Selecionar.

  11. Para permitir o tráfego HTTP ou HTTPS para a instância da VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para obter mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  12. Clique no botão Criar para criar e iniciar a instância.

gcloud

Execute o comando gcloud compute instances create para criar uma instância com uma imagem personalizada:

gcloud compute instances create VM_NAME \
    --image-project IMAGE_PROJECT \
    [--image IMAGE | --image-family IMAGE_FAMILY]

Substitua:

  • VM_NAME: nome da VM;
  • IMAGE_PROJECT: nome do projeto que contém a imagem.
  • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:

    • IMAGE: nome da imagem personalizada. Por exemplo, --image my-debian-image-v2.
    • IMAGE_FAMILY: se você criou suas imagens personalizadas como parte de uma família de imagens personalizadas, especifique essa família. Isso cria a VM a partir da versão mais recente e não obsoleta do sistema operacional da imagem do SO na sua família de imagens personalizadas. Por exemplo, se você especificar --image-family my-debian-family, o Compute Engine criará uma VM a partir da imagem do SO mais recente na família de imagens personalizadas my-debian-family.

API

O processo de criação de uma instância de uma imagem personalizada na API é similar à criação de uma instância com uma imagem disponível publicamente.

Para criar a VM a partir de uma imagem personalizada, use o método instances.insert e, no URI sourceImage, forneça o ID do projeto (que contém a imagem personalizada) e o nome da imagem personalizada.

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

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   }
 ],
 .....
}

Substitua:

  • PROJECT_ID: ID do projeto em que a VM será criada.
  • PROJECT_ZONE: zona em que a VM será criada.
  • MACHINE_TYPE_ZONE: zona que contém o tipo de máquina a ser usado para a nova VM.
  • MACHINE_TYPE: tipo de máquina, predefinida ou personalizada, para a nova VM.
  • VM_NAME: nome da nova VM.
  • IMAGE_PROJECT: nome do projeto que contém a imagem personalizada.
  • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:

    • IMAGE: nome da imagem personalizada. Por exemplo, "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2".
    • IMAGE_FAMILY: se você criou suas imagens personalizadas como parte de uma família de imagens personalizadas, especifique essa família. Isso cria a VM a partir da versão mais recente e não obsoleta do sistema operacional da imagem do SO na sua família de imagens personalizadas. Por exemplo, se você especificar "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family", o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens personalizadas my-debian-family.

Como criar uma VM com discos extras que não são de inicialização

Console

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

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância. O Compute Engine seleciona, aleatoriamente, a lista de zonas dentro de cada região para incentivar o uso em várias zonas.

  6. Selecione uma Configuração de máquina para sua instância.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização. A menos que você escolha explicitamente um disco de inicialização diferente, se o nome da nova instância corresponder ao nome de um disco permanente, ele será anexado automaticamente à nova instância como o disco de inicialização.

  8. Na guia Imagens públicas, escolha um sistema operacional e uma versão.

  9. Clique em Salvar para confirmar as opções do disco de inicialização.

  10. Para permitir o tráfego HTTP ou HTTPS para a VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS. Quando você seleciona um deles, o Compute Engine adiciona uma tag de rede à VM, que associa a regra de firewall à VM. Em seguida, o Compute Engine cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS).

  11. Para adicionar discos secundários que não sejam de inicialização à VM, siga estes passos:

    1. Clique na seção Gerenciamento, segurança, discos, rede, locação individual.
    2. Clique na guia Discos.
    3. Em Discos adicionais, clique em Adicionar novo disco.
    4. Especifique um Nome, um Tipo, um Tipo de origem, um Modo e uma Regra de exclusão para o disco.
    5. Clique em Concluído.
    6. Adicione discos conforme necessário.
  12. Clique no botão Criar para criar e iniciar a instância.

gcloud

Execute o comando gcloud compute instances create para criar uma instância com discos extras que não sejam de inicialização.

Adicione até 128 discos secundários que não sejam de inicialização enquanto cria a instância. Especifique a sinalização --create-disk para cada disco secundário criado.

Para criar discos secundários a partir de uma imagem pública ou foto de banco de imagens, especifique as propriedades image ou image-family e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Se quiser, inclua as propriedades size e type do disco.

gcloud compute instances create VM_NAME \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --create-disk [image=DISK_IMAGE | image-family=DISK_IMAGE_FAMILY ],image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE

Substitua:

  • VM_NAME: nome da nova VM.
  • IMAGE ou IMAGE_FAMILY. Especifique uma destas opções:

    • IMAGE: versão obrigatória de uma imagem pública. Por exemplo, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: uma família de imagens. Isso cria a VM a partir da imagem do SO mais recente e não obsoleta. Por exemplo, se você especificar --image-family debian-10, o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.
  • IMAGE_PROJECT: projeto que contém a imagem.

  • Nos discos extras, substitua:

    • DISK_IMAGE ou DISK_IMAGE_FAMILY: especifique uma das seguintes opções:
      • DISK_IMAGE: nome da imagem que você quer usar como disco secundário;
      • DISK_IMAGE_FAMILY: uma família de imagens a ser usada como disco secundário;
    • DISK_IMAGE_PROJECT: projeto de imagem que contém a imagem do disco;
    • SIZE_GB: opcional: o tamanho do disco secundário;
    • DISK_TYPE: opcional. o tipo do disco permanente. Por exemplo, pd-ssd.

    Formate e ative os discos antes de usá-los.

API

Crie até 128 discos secundários que não sejam de inicialização enquanto cria uma instância de VM utilizando a propriedade initializeParams para cada disco extra. Crie discos adicionais com uma imagem pública ou privada. Para adicionar um disco vazio, defina a entrada initializeParams sem o valor sourceImage.

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

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   },
   {
     "initializeParams": {
       "diskSizeGb": "SIZE_GB",
       "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE",
       "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
     "diskSizeGb": "SIZE_GB",
     "diskType": "DISK_TYPE"
   }
    }...]

Substitua:

  • PROJECT_ID: ID do projeto em que a VM será criada.
  • PROJECT_ZONE: zona em que a VM será criada.
  • MACHINE_TYPE_ZONE: zona que contém o tipo de máquina a ser usado para a nova VM.
  • MACHINE_TYPE: tipo de máquina, predefinida ou personalizada, para a nova VM.
  • VM_NAME: nome da nova VM;
  • IMAGE_PROJECT: nome do projeto que contém a imagem personalizada;
  • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:
    • IMAGE: nome da imagem personalizada. Por exemplo, "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2".
    • IMAGE_FAMILY: se você criou suas imagens personalizadas como parte de uma família de imagens personalizadas, especifique essa família. Isso cria a VM a partir da versão mais recente e não obsoleta do sistema operacional da imagem do SO na sua família de imagens personalizadas. Por exemplo, se você especificar "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family", o Compute Engine criará uma VM a partir da versão mais recente da imagem do SO na família de imagens personalizadas my-debian-family.
  • Nos discos extras, substitua:

    • SIZE_GB: tamanho do disco;
    • DISK_IMAGE ou DISK_IMAGE_FAMILY: especifica uma imagem de origem ou família de imagens do disco secundário:
      • DISK_IMAGE: nome da imagem que você quer usar como disco secundário. Por exemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE".
      • DISK_IMAGE_FAMILY: uma família de imagens a ser usada como disco secundário. Por exemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY".
    • DISK_TYPE: tipo de disco permanente, pd-standard ou pd-ssd.

Formate e ative os discos antes de usá-los.

Como criar uma instância com uma imagem compartilhada com você

Se outro usuário compartilhou uma imagem com você, use-a para criar uma nova instância.

Console

  1. Acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique no botão Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância.

  6. Selecione uma Configuração de máquina para sua instância.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização.

    Crie um disco de inicialização com até 2 TB para não ultrapassar as restrições das partições MBR.

  8. Selecione a guia Imagens personalizadas.

  9. Selecione o projeto de imagem na lista suspensa.

  10. Escolha a imagem desejada e clique no botão Selecionar.

  11. Para permitir o tráfego HTTP ou HTTPS para a instância da VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  12. Para adicionar discos secundários que não sejam de inicialização à sua instância de VM, siga estas etapas:

    1. Clique em Gerenciamento, segurança, discos, rede, locatário único.
    2. Selecione a guia Discos.
    3. Em Discos adicionais, clique em Adicionar novo disco.
    4. Especifique um Nome, um Tipo, um Tipo de origem, um Modo e uma Regra de exclusão para o disco.
    5. Clique em Concluído.
    6. Adicione mais discos conforme necessário.
  13. Clique no botão Criar para criar e iniciar a instância.

gcloud

Crie uma instância usando o comando gcloud compute instances create e use o método --image e --image-project para especificar o nome da imagem e o projeto onde a imagem reside:

gcloud compute instances create VM_NAME \
    --image IMAGE \
    --image-project IMAGE_PROJECT

Substitua:

  • VM_NAME: nome da nova VM
  • IMAGE: nome da imagem
  • IMAGE_PROJECT: o projeto que contém a imagem.

Se o comando tiver êxito, o gcloud responderá com as propriedades da nova instância:

Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING

Adicione até 128 discos secundários que não sejam de inicialização enquanto cria a instância. Especifique a sinalização --create-disk para cada disco secundário criado. Para criar discos secundários a partir de uma imagem pública ou de banco de imagem, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Se quiser, inclua as propriedades size e type do disco.

gcloud compute instances create VM_NAME \
    --image-family IMAGE_FAMILY \
    --image-project IMAGE_PROJECT \
    --create-disk image=DISK_IMAGE,image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE

Substitua:

  • VM_NAME: nome da nova instância;
  • IMAGE_FAMILY: uma das famílias de imagens disponíveis;
  • IMAGE_PROJECT: o projeto que contém a imagem;
  • DISK_IMAGE: a imagem de origem do disco secundário. Para ver uma lista de imagens disponíveis, execute gcloud compute images list. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem;
  • DISK_IMAGE_PROJECT: projeto de imagem que contém a imagem do disco. Para discos em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • SIZE_GB: tamanho do disco secundário;
  • DISK_TYPE: tipo de disco permanente, pd-standard ou pd-ssd.

Formate e ative os discos antes de usá-los.

API

Siga as instruções da API para criar uma instância de uma imagem pública, mas especifique o campo image no corpo da solicitação. Adicione até 128 discos secundários que não sejam de inicialização especificando o campo initializeParams para cada disco complementar. Para adicionar discos em branco, não especifique uma origem da imagem. Opcionalmente, é possível especificar as propriedades diskSizeGb, diskType e labels.

[...
image: "projects/PROJECT_ID/global/images/IMAGE_NAME
{
 "initializeParams": {
    "diskSizeGb": "SIZE_GB",
    "sourceImage": "IMAGE"
       }
 }
 ...]

Substitua:

  • PROJECT_ID: projeto que contém a imagem;
  • IMAGE_NAME: imagem de origem;
  • SIZE_GB: tamanho do disco;
  • IMAGE: a imagem de origem do disco secundário. Para discos em branco, não especifique uma origem de imagem.

Formate e ative os discos antes de usá-los.

Como criar uma instância de VM a partir de um snapshot

Se você fez backup de um disco permanente de inicialização com um snapshot, poderá usar esse snapshot para criar uma instância.

Lembre-se de que, se você planeja criar muitas instâncias a partir do mesmo snapshot do disco de inicialização, considere criar uma imagem personalizada e criar instâncias dessa imagem. Imagens personalizadas podem criar os discos de inicialização para suas instâncias com mais rapidez e eficiência do que os snapshots.

Como criar um novo disco de inicialização da instância de VM a partir de um snapshot

É possível restaurar um snapshot de um disco de inicialização para um novo disco de inicialização ao criar uma nova instância.

Console

  1. Acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique no botão Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância.

  6. Selecione uma Configuração de máquina para sua instância.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização.

    Crie um disco de inicialização com até 2 TB para não ultrapassar as restrições das partições MBR.

  8. Clique na guia Snapshots e escolha um snapshot da lista.

  9. Clique em Selecionar.

  10. Para permitir o tráfego HTTP ou HTTPS para a instância da VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  11. Para adicionar discos secundários que não sejam de inicialização à sua instância de VM, siga estas etapas:

    1. Clique em Gerenciamento, segurança, discos, rede, locatário único.
    2. Selecione a guia Discos.
    3. Em Discos adicionais, clique em Adicionar novo disco.
    4. Especifique um Nome, um Tipo, um Tipo de origem, um Modo e uma Regra de exclusão para o disco.
    5. Clique em Concluído.
    6. Adicione mais discos conforme necessário.
  12. Clique no botão Criar para criar e iniciar a instância.

gcloud

Use o comando gcloud compute instances create e inclua a sinalização --source-snapshot:

gcloud compute instances create VM_NAME \
    --source-snapshot BOOT_SNAPSHOT_NAME \
    --boot-disk-size BOOT_DISK_SIZE \
    --boot-disk-type BOOT_DISK_TYPE \
    --boot-disk-device-name BOOT_DISK_NAME

Substitua:

  • VM_NAME: nome da nova VM;
  • BOOT_SNAPSHOT_NAME: nome do snapshot do disco de inicialização que você quer restaurar no disco da nova instância;
  • BOOT_DISK_SIZE: opcional: tamanho, em gigabytes, do novo disco de inicialização. O tamanho tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado.
  • BOOT_DISK_TYPE: opcional: tipo do disco permanente de inicialização. Por exemplo, pd-ssd.
  • BOOT_DISK_NAME: nome do novo disco de inicialização da instância.

Opcional: se você também quiser criar um snapshot que não seja de inicialização, anexe a sinalização --create-disk e especifique um source-snapshot. Repita a sinalização --create-disk para criar um disco que não seja de inicialização para cada snapshot que você queira restaurar. Ao criar uma instância, é possível adicionar até 15 discos que não são de inicialização.

    --create-disk source-snapshot=SNAPSHOT_NAME,name=DISK_NAME,size=DISK_SIZE,type=DISK_TYPE

Substitua:

  • SNAPSHOT_NAME: nome de um snapshot que não seja de inicialização a ser restaurado;
  • DISK_NAME: nome de um novo disco que não seja de inicialização da instância;
  • DISK_SIZE: opcional: o tamanho, em gigabytes, do novo disco. O tamanho tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado.
  • DISK_TYPE: opcional: tipo de disco permanente, pd-standard ou pd-ssd.

API

Quando você usa a API para criar uma instância a partir de um snapshot, as seguintes restrições se aplicam:

  • Somente um disco permanente pode ser usado como disco permanente de inicialização.
  • Anexe o disco permanente de inicialização como o primeiro disco da instância.
  • Se você especifica a propriedade source, não é possível definir a propriedade initializeParams. Fornecer um source indica que o disco permanente de inicialização já existe, mas a propriedade initializeParams indica que o Compute Engine tem que criar um novo disco permanente de inicialização.

    Para criar uma instância a partir de um snapshot do disco de inicialização, especifique o campo sourceSnapshot na propriedade disks. Opcionalmente, especifique as propriedades diskSizeGb e diskType do novo disco de inicialização:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "boot": true,
     "initializeParams": {
       "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
       "diskSizeGb": "BOOT_DISK_SIZE",
       "diskType": "BOOT_DISK_TYPE"
    }
   }],
 }

Substitua:

  • PROJECT_ID: o ID do projeto;
  • ZONE: zona em que você quer criar a nova instância;
  • VM_NAME: nome da VM em que você quer restaurar um snapshot;
  • MACHINE_TYPE: tipo de máquina da instância;
  • BOOT_SNAPSHOT_NAME: nome do snapshot que você quer usar para criar o disco de inicialização de uma nova instância;
  • BOOT_DISK_SIZE: opcional: tamanho, em gigabytes, do novo disco de inicialização. O tamanho tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado.
  • BOOT_DISK_TYPE: opcional: tipo do disco de inicialização, pd-standard ou pd-ssd.

Restaurar snapshots que não são de inicialização para uma nova instância

Os snapshots que não são de inicialização são backups de discos permanentes secundários que a instância usa apenas para armazenamento de dados. É possível restaurar snapshots que não são de inicialização para novos discos sempre que criar uma nova instância. Como alternativa, você também pode restaurar snapshots que não são de inicialização para uma instância existente.

Para restaurar snapshots que não são de inicialização para uma nova instância, siga estas etapas adicionais ao criar uma instância.

Console

Ao restaurar snapshots que não são de inicialização para uma nova instância no console, primeiro crie um disco de cada snapshot. Em seguida, anexe os novos discos ao criar a nova instância.

  1. Restaure cada snapshot que não seja de inicialização em um novo disco.

    1. No Console do Google Cloud, acesse a página Discos.

      Acessar "Discos"

    2. Clique em Criar disco.

    3. Especifique um Nome para o disco. Consulte a Convenção de nomenclatura de recursos.

    4. Selecione Região e Zona para o disco.

      Observação: só é possível anexar um disco a uma instância se ambos estiverem localizados na mesma zona.

    5. Selecione um Tipo de disco.

    6. Em Tipo de origem, selecione Snapshot.

    7. No novo campo Snapshot de origem, selecione um snapshot que não seja de inicialização e deseje restaurar o novo disco.

    8. Clique em Criar para criar o disco.

    9. Repita essas etapas para criar um disco de cada snapshot que quer restaurar. Ao criar uma instância, é possível adicionar até 15 discos secundários que não sejam de inicialização.

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

    Acessar instâncias de VM

  3. Clique em Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Selecione Região e Zona para a instância.

    Observação: só é possível anexar um disco a uma instância se ambos estiverem localizados na mesma zona.

  6. Selecione um Tipo de máquina para sua instância.

  7. Se você quiser permitir tráfego externo de entrada, altere as regras de Firewall para a instância.

  8. Para anexar discos à instância:

    1. Clique em Gerenciamento, segurança, discos, rede, locatário único.
    2. Selecione a guia Discos.
    3. Em Discos adicionais, clique em Anexar disco existente.
    4. No novo campo Disco, selecione um disco para anexar a essa instância.
    5. Especifique um Modo e regra de exclusão para o disco.
    6. Clique em Concluído.
    7. Repita essas etapas para cada disco que você queira anexar. Ao criar uma instância, é possível adicionar até 15 discos secundários que não sejam de inicialização.
  9. Clique em Criar para criar e iniciar a instância.

  10. Formate e ative os discos anexados antes de usá-los.

gcloud

Crie uma nova instância usando o comando gcloud compute instances create. Para cada snapshot que não seja de inicialização que você queira restaurar, inclua a sinalização --create-disk e especifique um source-snapshot. Ao criar uma instância, é possível adicionar até 15 discos secundários que não sejam de inicialização.

Por exemplo, para restaurar dois snapshots que não são de inicialização para uma nova instância, use o seguinte comando:

gcloud compute instances create VM_NAME \
    --create-disk source-snapshot=SNAPSHOT_1_NAME,name=DISK_1_NAME,size=DISK_1_SIZE,type=DISK_1_TYPE \
    --create-disk source-snapshot=SNAPSHOT_2_NAME,name=DISK_2_NAME,size=DISK_2_SIZE,type=DISK_2_TYPE

Substitua:

  • VM_NAME: nome da nova VM;
  • SNAPSHOT_1_NAME e SNAPSHOT_2_NAME: nomes de snapshots que não são de inicialização a serem restaurados;
  • DISK_1_NAME e DISK_2_NAME: nomes dos novos discos que não são de inicialização para esta instância;
  • DISK_1_SIZE e DISK_2_SIZE: opcional: tamanhos, em gigabytes, de cada novo disco que não é de inicialização. Os tamanhos precisam ser iguais ou maiores que os tamanhos dos discos de origem do qual o snapshot foi criado.
  • DISK_1_TYPE e DISK_2_TYPE: opcional: tipos de discos permanentes, pd-standard ou pd-ssd.

API

Ao usar a API para restaurar um snapshot que não seja de inicialização para uma nova instância, as seguintes restrições se aplicam:

  • Apenas um disco permanente pode ser o disco permanente de inicialização.
  • Anexe o disco permanente de inicialização como o primeiro disco da instância.
  • Se você especifica a propriedade source, não é possível definir a propriedade initializeParams. Fornecer um source indica que o disco permanente de inicialização já existe, mas a propriedade initializeParams indica que o Compute Engine tem que criar um novo disco permanente de inicialização.

Usando a API Beta, especifique o campo sourceSnapshot na propriedade initializeParams. É possível adicionar até 15 discos que não são de inicialização repetindo a propriedade initializeParams para cada disco que não seja de inicialização que você quer criar. Opcionalmente, é possível especificar as propriedades diskSizeGb e diskType para qualquer um dos discos criados.

Por exemplo, para restaurar dois snapshots que não são de inicialização para uma nova instância, faça a seguinte solicitação:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "diskSizeGb": "DISK_SIZE",
     "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_1_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_2_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
  }]
 }

Substitua:

  • PROJECT_ID: o ID do projeto;
  • ZONE: zona em que você quer criar a nova instância;
  • VM_NAME: nome da VM em que você quer restaurar um snapshot;
  • MACHINE_TYPE: tipo de máquina da instância;
  • DISK_SIZE: opcional: tamanho, em gigabytes, do disco correspondente. Quando fornecida, essa propriedade precisa ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado.
  • DISK_TYPE: opcional: tipo do disco permanente correspondente, pd-standard ou pd-ssd;
  • SNAPSHOT_1_NAME e SNAPSHOT_2_NAME: nomes de snapshots que não são de inicialização a serem restaurados nos novos discos que também não são de inicialização na nova instância.

Como criar uma instância a partir de uma imagem de contêiner

Para implantar e lançar um contêiner em uma instância do Compute Engine, especifique o nome de uma imagem de contêiner e os parâmetros de configuração opcionais ao criar a instância. O Compute Engine cria a instância usando a versão mais recente da imagem pública do sistema operacional otimizado para contêiner, que tem o Docker instalado. Em seguida, o Compute Engine lança o contêiner quando a VM é iniciada. Para mais informações, consulte Como implantar contêineres em VMs.

Console

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

    Acessar instâncias de VM

  2. Clique em Criar instância.

  3. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  4. Na seção Contêiner, marque a caixa de seleção Implantar uma imagem de contêiner nesta instância de VM.

  5. Especifique a Imagem de contêiner a ser usada, por exemplo:

    • Para selecionar uma imagem de contêiner NGINX 1.12 no Cloud Launcher:

      gcr.io/cloud-marketplace/google/nginx1:1.12

    • Para implantar uma imagem de contêiner Apache do Docker Hub, sempre especifique o nome completo da imagem do Docker:

      docker.io/httpd:2.4

  6. Opcional: clique em Opções de contêiner avançadas. Para obter mais informações, consulte Como configurar opções para executar seu contêiner.

  7. Clique em Criar para criar a instância, inicializá-la e iniciar o contêiner.

gcloud

Execute o gcloud compute instances create-with-containercomando:

gcloud compute instances create-with-container VM_NAME \
    --container-image CONTAINER_IMAGE

Substitua:

  • VM_NAME: nome da nova instância;
  • CONTAINER_IMAGE: nome da imagem do contêiner.

Por exemplo, o comando a seguir cria uma instância de VM chamada nginx-vm, que inicia e executa a imagem do contêiner:

gcr.io/cloud-marketplace/google/nginx1:1.12

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

Para implantar uma imagem de contêiner Apache do Docker Hub, sempre especifique o nome completo da imagem do Docker:

docker.io/httpd:2.4.

Como criar uma instância com acesso a outros serviços do Google Cloud

Se você planeja executar um aplicativo na instância de VM que precisa de acesso a outros serviços do Google Cloud, crie uma conta de serviço antes de criar a instância e siga as instruções para configurar uma instância para executar como conta de serviço. Uma conta de serviço é uma conta especial cujas credenciais você pode usar no código do aplicativo para acessar outros serviços do Google Cloud.

Para mais informações sobre contas de serviço, consulte Contas de serviço.

Como criar uma instância em uma sub-rede específica

Por padrão, o Google Cloud cria uma rede VPC de modo automático chamada default para cada projeto. Se você criar uma instância sem especificar os detalhes de rede, o Compute Engine usará a rede VPC padrão e a sub-rede automática na mesma região da instância.

Especifique a sub-rede ao criar a instância para usar uma rede diferente ou uma sub-rede criada manualmente em uma rede VPC de modo automático ou personalizado.

Console

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

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique no botão Criar instância.

  4. Especifique um Nome para sua instância. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta instância.

  6. Para permitir o tráfego HTTP ou HTTPS para a instância da VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  7. Expanda a seção Gerenciamento, segurança, discos, rede, locatário único.

  8. Em Interfaces de rede, na guia Rede, especifique os detalhes da rede.

    1. No campo Rede, selecione a rede VPC que contém a sub-rede que você criou.
    2. No campo Sub-rede, selecione a sub-rede que a instância usará.
  9. Para adicionar discos secundários que não sejam de inicialização à sua instância de VM, siga estas etapas:

    1. Clique em Gerenciamento, segurança, discos, rede, locatário único.
    2. Selecione a guia Discos.
    3. Em Discos adicionais, clique em Adicionar novo disco.
    4. Especifique um Nome, um Tipo, um Tipo de origem, um Modo e uma Regra de exclusão para o disco.
    5. Clique em Concluído.
    6. Adicione discos conforme necessário.
  10. Clique no botão Criar para criar e iniciar a instância.

gcloud

Usando a ferramenta de linha de comando gcloud, siga as mesmas instruções para criar uma instância a partir de uma imagem ou um snapshot, e adicione as sinalizações --subnet SUBNET_NAME e --zone ZONE_NAME quando você executar o comando gcloud compute instances create:

gcloud compute instances create VM_NAME \
    --subnet SUBNET_NAME \
    --zone ZONE_NAME

Substitua:

  • VM_NAME: nome da instância;
  • SUBNET_NAME: nome da sub-rede; A rede é inferida da sub-rede especificada;
  • ZONE_NAME: zona em que a instância é criada, como europe-west1-b. A região da instância é inferida da zona.

Adicione até 128 discos secundários que não sejam de inicialização enquanto cria a instância. Especifique a sinalização --create-disk para cada disco secundário criado. Para criar discos secundários a partir de uma imagem pública ou de banco de imagem, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Se quiser, inclua as propriedades size e type do disco.

gcloud compute instances create VM_NAME \
    --subnet SUBNET_NAME \
    --zone ZONE_NAME \
    --image-family IMAGE_FAMILY \
    --image-project IMAGE_PROJECT \
    --create-disk image=DISK_IMAGE,image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE

Substitua:

  • VM_NAME: nome da nova VM;
  • SUBNET_NAME: nome da sub-rede;
  • ZONE_NAME: nome da zona em que a instância será criada, como europe-west1-b;
  • IMAGE_FAMILY: famílias de imagens disponíveis;
  • IMAGE_PROJECT: o projeto de imagem que contém a imagem;
  • DISK_IMAGE: a imagem de origem do disco secundário. Para ver uma lista de imagens disponíveis, execute gcloud compute images list. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem;
  • DISK_IMAGE_PROJECT: projeto de imagem que contém a imagem do disco. Para discos em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • SIZE_GB: tamanho do disco secundário;
  • DISK_TYPE: tipo de disco permanente, pd-standard ou pd-ssd.

Formate e ative os discos antes de usá-los.

API

Siga as instruções da API para criar uma instância a partir de uma imagem ou um snapshot , mas especifique o campo subnet no corpo da solicitação. Para adicionar até 128 discos secundários que não sejam de inicialização, use a propriedade initializeParams para cada disco criado. Para adicionar discos em branco, não adicione uma imagem de origem. Opcionalmente, é possível especificar as propriedades diskSizeGb, diskType e labels.

...
"networkInterfaces": [
{
  "network": "global/networks/NETWORK_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNET_NAME",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "SIZE_GB",
         "sourceImage": "IMAGE"
    {
      "initializeParams": {
      "diskSizeGb": "SIZE_GB"
     }
 }...]

Substitua:

  • NETWORK_NAME: rede em que a instância será criada;
  • REGION: nome da região em que a instância será criada;
  • SUBNET_NAME: nome da sub-rede;
  • SIZE_GB: tamanho do disco;
  • IMAGE: imagem de origem do disco secundário. Para discos em branco, não especifique uma origem de imagem

Formate e ative os discos antes de usá-los.

A seguir