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.

Ao criar uma VM, é possível criar um ou mais discos para ela. Também é possível adicionar mais discos à VM depois que ela for criada. O Compute Engine iniciará automaticamente a instância de VM depois de criá-la.

Para a criação de VM mais específica ou complicada, 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

Criar uma instância de VM 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.

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 nome do projeto que contém a imagem.

  3. Opcional: para determinar se a imagem é compatível com recursos de VM protegida, execute o seguinte comando:

    gcloud compute images describe IMAGE_NAME \
        --project=IMAGE_PROJECT
    

    Substitua:

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

    Se a imagem for compatível com recursos de VM protegida, a seguinte linha aparecerá na saída: type: UEFI_COMPATIBLE.

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 nome do projeto que contém a imagem.

  3. Opcional: para determinar se a imagem é compatível com recursos de VM protegida, execute o seguinte comando:

    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;

    Se a imagem for compatível com recursos de VM protegida, a seguinte linha aparecerá na saída: type: UEFI_COMPATIBLE.

Criar uma instância de VM a partir de uma imagem pública

O Google, comunidades de código aberto e fornecedores terceirizados fornecem 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 VM. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta VM. 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 VM.

  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 VM corresponder ao nome de um disco permanente atual, o disco permanente será anexado automaticamente à nova VM como o disco de inicialização.

  8. Na guia Imagens públicas, escolha o seguinte:

    • Sistema operacional
    • Versão do sistema operacional
    • Tipo de disco de inicialização
    • Tamanho do disco de inicializaçã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: Para modificar as configurações de VM protegida, clique na guia Segurança da seção Gerenciamento, segurança, discos, rede, locatário único e faça o seguinte, conforme necessário:

  12. Clique em Criar para criar e iniciar a VM.

gcloud

  1. Selecione uma imagem pública. Anote o nome da imagem ou da família de imagens e o nome do projeto que contém a imagem.
  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
        --machine-type=MACHINE_TYPE

    Substitua:

    • VM_NAME: nome da nova VM;
    • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:

      • IMAGE: uma versão específica 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

    • MACHINE_TYPE: tipo de máquina, predefinida ou personalizada, para a nova VM

      Para ver uma lista dos tipos de máquinas disponíveis em uma zona, use o comando gcloud compute machine-types list com a sinalização --zones.

  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 nome do projeto que contém a imagem.
  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/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
    • 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: uma versão específica 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()

Criar uma VM a partir de uma imagem personalizada

Uma imagem personalizada pertence apenas ao seu projeto. Para criar uma VM com uma imagem personalizada, primeiro crie uma imagem personalizada, se você ainda não tiver uma.

Console

  1. Acesse a página Instâncias da 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 VM. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta VM. 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 VM.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização. Em seguida, faça o seguinte:

    1. Selecione a guia Imagens personalizadas.
    2. Selecione o projeto na lista suspensa Mostrar imagens de.
    3. Selecione a imagem que você quer na lista suspensa Imagens.
    4. Selecione um tipo de disco de inicialização.
    5. Especifique o tamanho.
    6. Clique em Selecionar.
  8. Para permitir o tráfego HTTP ou HTTPS para a VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à VM 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 à VM. Para obter mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  9. Clique em Criar para criar e iniciar a VM.

gcloud

Execute o comando gcloud compute instances create para criar uma VM 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 VM com uma imagem personalizada na API é semelhante à criação de uma VM com uma imagem disponível publicamente.

Para criar a VM a partir de uma imagem personalizada, use o método instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/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
  • 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 imagem do SO mais recente e não obsoleta da família de imagens personalizada. 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.

Criar uma instância de 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 VM. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta VM. 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 VM.

  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 VM corresponder ao nome de um disco permanente atual, o disco permanente será anexado automaticamente à nova VM como o disco de inicialização.

  8. Na guia Imagens públicas, escolha o seguinte e clique em Salvar:

    • Sistema operacional
    • Versão do sistema operacional
    • Tipo de disco de inicialização
    • Tamanho do disco de inicialização
  9. 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).

  10. Para adicionar à VM discos que não são de inicialização:

    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. Para mais informações sobre como adicionar novos discos, consulte Como criar e anexar um disco.
    5. Clique em Concluído.
  11. Clique em Criar para criar e iniciar a VM.

gcloud

Execute o gcloud compute instances create comando para criar uma VM com discos adicionais que não sejam de inicialização.

É possível incluir até 128 discos que não sejam de inicialização durante a criação da VM. Especifique a sinalização --create-disk para cada disco que não seja de inicialização criado.

Para criar discos que não são de inicialização a partir de uma imagem pública ou de banco de imagem, 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. Como opção, é possível incluir propriedades para o disco size e type.

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: uma versão específica 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 que não é de inicialização
      • DISK_IMAGE_FAMILY: uma família de imagens a ser usada como disco que não é de inicialização
    • DISK_IMAGE_PROJECT: o projeto de imagem que contém a imagem do disco.
    • SIZE_GB: opcional: tamanho do disco que não é de inicialização
    • DISK_TYPE: opcional. o tipo do disco permanente

      Por exemplo, pd-ssd Para ver uma lista de tipos de disco, consulte o comando gcloud compute disk-types list.

    Para discos vazios, não especifique os parâmetros DISK_IMAGE, DISK_IMAGE_FAMILY ou DISK_IMAGE_PROJECT.

API

Crie até 128 discos que não sejam de inicialização no momento em que criar uma VM usando a propriedade initializeParams para cada disco extra. Crie discos extras 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/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
  • 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: especifique uma imagem de origem ou família de imagens para o disco que não é de inicialização:

      • DISK_IMAGE: nome da imagem que você quer usar como disco que não é de inicialização

        Por exemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE".

      • DISK_IMAGE_FAMILY: uma família de imagens a ser usada como disco que não é de inicialização

        Por exemplo, "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY".

    • DISK_TYPE: tipo do disco permanente

      Por exemplo, pd-ssd

    Para discos vazios, não especifique os parâmetros DISK_IMAGE, DISK_IMAGE_FAMILY ou DISK_IMAGE_PROJECT.

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

Criar uma instância de VM a partir de uma imagem compartilhada

Se outro usuário tiver compartilhado uma imagem com você, será possível usá-la para criar uma VM.

Console

  1. Acesse a página Instâncias da 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 VM. Consulte a Convenção de nomenclatura de recursos.
  5. Opcional: altere a zona desta VM. 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 VM.
  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização. Depois, faça o seguinte:
    1. Selecione a guia Imagens personalizadas.
    2. Selecione o projeto de imagem na lista suspensa Mostrar imagens de.
    3. Selecione a imagem que você quer na lista suspensa Imagens.
    4. Clique em Selecionar.
  8. Para permitir o tráfego HTTP ou HTTPS para a VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à VM 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 à VM. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  9. Clique em Criar para criar e iniciar a VM.

gcloud

Crie uma VM usando o comando gcloud compute instances create command e use as sinalizações --image e --image-project para especificar o nome da imagem e o projeto em que 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 VM:

    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

API

Siga as instruções da API para criar uma VM usando uma imagem pública, mas especifique o campo image no corpo da solicitação. Para incluir discos vazios, 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: imagem de origem do disco que não é de inicialização
  • Para discos vazios, não especifique uma origem de imagem.

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

Para criar rapidamente mais de uma VM com o mesmo disco de inicialização, crie uma imagem personalizada e, em seguida, crie VMs com base nessa imagem em vez de no snapshot.

Criar um 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 quando você cria uma VM.

Console

  1. Acesse a página Instâncias da 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 VM. Consulte a Convenção de nomenclatura de recursos.

  5. Opcional: altere a zona desta VM. 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 VM.

  7. Na seção Disco de inicialização, clique em Alterar para configurar o disco de inicialização. Em seguida, faça o seguinte:

    1. Clique na guia Snapshots e escolha um snapshot da lista.
    2. Clique em Selecionar.
  8. Para permitir o tráfego HTTP ou HTTPS para a VM, selecione Permitir tráfego HTTP ou Permitir tráfego HTTPS.

    O Console do Cloud adiciona uma tag de rede à VM 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 à VM. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

  9. Clique em Criar para criar e iniciar a VM.

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 VM;
  • 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 para essa VM

API

Quando você usa a API para criar uma VM 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 VM.
  • 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 precisa criar um novo disco permanente de inicialização.

    Para criar uma VM 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: ID do projeto
  • ZONE: zona em que você quer criar a nova VM
  • VM_NAME: nome da VM em que você quer restaurar um snapshot
  • MACHINE_TYPE: tipo de máquina da VM
  • BOOT_SNAPSHOT_NAME: nome do snapshot que você quer usar para criar o disco de inicialização de uma nova VM
  • 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.

    Por exemplo, pd-ssd

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

Os snapshots que não são de inicialização são backups de discos permanentes secundários que a VM 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 VM. Como alternativa, também é possível restaurar snapshots que não sejam de inicialização para uma VM atual.

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

Console

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

  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. O disco e a VM precisam estar 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.

    Repita essas etapas para criar um disco a partir de cada snapshot que você queira restaurar. Ao criar uma VM, é possível incluir até 15 discos que não são 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 VM. Consulte a Convenção de nomenclatura de recursos.

  5. Selecione Região e Zona para a VM. O disco e a VM precisam estar na mesma zona.

  6. Selecione um Tipo de máquina para sua VM.

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

  8. Para anexar discos à VM:

    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 VM.
    5. Especifique um Modo e uma regra de exclusão para o disco.
    6. Clique em Concluído.

    Repita essas etapas para cada disco que você queira anexar. Ao criar uma VM, é possível incluir até 15 discos que não são de inicialização.

  9. Clique em Criar para criar e iniciar a VM.

gcloud

Crie uma VM usando o gcloud compute instances create comando. 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 VM, é possível incluir até 15 discos que não são de inicialização.

Por exemplo, para restaurar dois snapshots que não são de inicialização em uma nova VM, 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 VM
  • 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 dos discos permanentes

    Por exemplo, pd-ssd

API

Ao usar a API para restaurar um snapshot que não é de inicialização para uma nova VM, 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 VM.
  • 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 precisa 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 é de inicialização que você quer criar. Opcionalmente, é possível especificar as propriedades diskSizeGb e diskType para qualquer um dos discos a serem criados.

Por exemplo, para restaurar dois snapshots que não são de inicialização para uma nova VM, 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: ID do projeto
  • ZONE: zona em que você quer criar a VM
  • VM_NAME: nome da VM em que você quer restaurar um snapshot
  • MACHINE_TYPE: tipo de máquina da VM
  • 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: o tipo do disco permanente

    Por exemplo, pd-ssd

  • SNAPSHOT_1_NAME e SNAPSHOT_2_NAME: nomes de snapshots que não são de inicialização a serem restaurados em novos discos que também não são de inicialização na nova VM

Criar uma instância de VM a partir de uma imagem de contêiner

Para implantar e iniciar um contêiner em uma VM do Compute Engine, especifique o nome de uma imagem de contêiner e os parâmetros de configuração opcionais ao criar a VM. O Compute Engine cria a VM 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.

Para criar uma VM a partir de uma imagem de contêiner, use o Console do Cloud ou gcloud.

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 VM. 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 do contêiner para usar. 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 VM, inicializar a VM 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 VM;
  • CONTAINER_IMAGE: nome da imagem do contêiner.

Por exemplo, o comando a seguir cria uma 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

Criar uma instância de VM com acesso a outros serviços do Google Cloud

Se você planeja executar um aplicativo na VM que precisa de acesso a outros serviços do Google Cloud, crie uma conta de serviço antes de criar a VM e configure a VM para ser executada como uma 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, consulte Contas de serviço.

Criar uma instância de VM 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. Especifique a sub-rede ao criar a VM para usar uma rede diferente ou uma sub-rede criada manualmente em uma rede VPC de modo automático ou personalizado.

Ao criar uma VM em uma sub-rede, considere estas regras:

  • Se você não especificar uma rede ou sub-rede, o Compute Engine usará a rede VPC padrão e a sub-rede automática que estiver na mesma região da VM.
  • Se você não especificar uma rede, o Compute Engine inferirá a rede pela sub-rede especificada.
  • Se você especificar uma rede, especifique uma sub-rede que pertença à mesma rede. Caso contrário, a criação da VM falhará.

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 VM. Consulte a Convenção de nomenclatura de recursos.

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

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

    O Console do Cloud adiciona uma tag de rede à VM 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 à VM. 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. Clique na guia Rede. Em Interfaces de 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 a ser usada pela VM.
  9. Clique em Criar para criar e iniciar a VM.

gcloud

Usando a ferramenta de linha de comando gcloud, siga as mesmas instruções para criar uma VM a partir de uma imagem ou um snapshot e adicione as sinalizações --subnet=SUBNET_NAME e --zone=ZONE ao executar o comando gcloud compute instances create:

gcloud compute instances create VM_NAME \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE

Substitua:

  • VM_NAME: nome da VM
  • NETWORK_NAME: opcional: nome da rede
  • SUBNET_NAME: nome da sub-rede;

    Para ver uma lista de sub-redes na rede, use o comando gcloud compute networks subnets list.

  • ZONE: zona em que a VM é criada, como europe-west1-b

    A região da VM é inferida da zona.

API

Siga as instruções da API para criar uma VM a partir de uma imagem ou um snapshot, mas especifique o campo subnet no corpo da solicitação. Para adicionar discos vazios, 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: opcional: nome da rede
  • REGION: região onde a sub-rede especificada existe
  • SUBNET_NAME: nome da sub-rede;
  • SIZE_GB: tamanho do disco;
  • IMAGE: imagem de origem do disco que não é de inicialização

    Para discos vazios, não especifique uma origem de imagem.

Solução de problemas

Para encontrar métodos para resolver erros comuns de criação de VM, consulte Solução de problemas de criação de VM.

A seguir

Faça um teste

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

Faça uma avaliação gratuita do Compute Engine