Como criar e iniciar uma instância de VM

Este documento explica como criar uma instância de máquina virtual (VM, na sigla em inglês) usando uma imagem de disco de inicialização, um snapshot de disco de inicialização ou uma imagem de contêiner. Ao criar uma instância de VM a partir de uma imagem de disco de inicialização, use uma imagem normal ou uma imagem de VM protegida. As imagens de VMs protegidas oferecem recursos de segurança como firmware compatível com UEFI, inicialização segura e inicialização medida e segura de vTPM. O Compute Engine iniciará automaticamente a instância de VM depois de criá-la.

Crie vários discos para a instância de VM durante o processo de criação. Adicione mais discos à instância depois que ela for criada.

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

Antes de começar

Como criar uma instância de uma imagem

Nesta seção, há detalhes sobre como criar uma instância de uma imagem de um sistema operacional específico. Uma imagem do disco de inicialização contém um sistema operacional executado na instância, o sistema de arquivos e o carregador de inicialização.

Para usuários avançados, crie uma imagem personalizada a ser usada em lugar das imagens públicas oferecidas pelo Compute Engine.

É possível criar uma instância com uma imagem no Console do Google Cloud Platform, na ferramenta de linha de comando gcloud ou na API.

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

Imagens públicas são fornecidas e mantidas pelo Google, pelas comunidades de código aberto e por fornecedores terceirizados. Por padrão, todos os projetos têm acesso a essas imagens e podem usá-las para criar instâncias com imagens comuns do sistema operacional.

Para criar uma instância, especifique a família de imagens para o sistema operacional que você precisa. O Compute Engine oferece várias distribuições do Linux, algumas delas estão disponíveis como imagens normais e de VM protegidas. Se você escolher o armazenamento SSD local para sua instância, não poderá usar os recursos de monitoramento de integridade da VM protegida e não poderá usar o vTPM para proteger os dados. Para uma lista das famílias de imagens disponíveis, consulte imagens públicas.

Console

  1. Acesse a página Instâncias de VM (em inglês).

    Acesse a página Instâncias de VM (em inglês)

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  5. Se quiser, altere a Zona dessa 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. Na guia Imagens do SO, escolha uma imagem.
    Selecione Exibir imagens com recursos de VM protegida para ver apenas imagens de VMs protegidas.

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

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

    1. Clique na seção Gerenciamento, segurança, discos, rede, locatário único.
    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 mais discos conforme necessário.
  12. Como opção, altere as configurações da VM protegida da instância se você escolher uma imagem compatível com a VM protegida:

    1. Clique na guia Segurança da seção Gerenciamento, segurança, discos, rede, locatário único.
    2. Se você quiser desativar a inicialização segura, desmarque Ativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para obter mais informações, consulte Inicialização segura.
    3. Se quiser desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês), desmarque Ativar vTPM. O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para obter mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

    4. Se quiser desativar o monitoramento de integridade, desmarque a caixa de seleção Ativar monitoramento de integridade. O monitoramento de integridade permite monitorar a integridade da inicialização das instâncias de VM protegida usando o Stackdriver. Para obter mais informações, consulte Monitoramento de integridade.

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

gcloud

Antes de criar uma instância, selecione uma imagem do sistema operacional para usar no disco de inicialização da instância. Para obter uma lista de imagens públicas de VM não protegidas com seus IDs de imagem, famílias de imagens e projetos de imagem, execute o comando gcloud compute images list sem sinalizações:

gcloud compute images list

Para obter uma lista de imagens públicas de VM protegida, execute o comando gcloud compute images list com as seguintes sinalizações:

gcloud compute images list --project gce-uefi-images --no-standard-images

Depois de selecionar uma imagem, crie uma instância usando o comando gcloud compute instances create.

Para usar a versão mais recente de uma imagem do sistema operacional, especifique os sinalizadores --image-family e --image-project. Por exemplo, debian-9 é uma família de imagens que retorna a versão mais recente da imagem do Debian 9 que não está obsoleta, e debian-cloud é o projeto da imagem.

Crie uma instância com a imagem mais recente de uma família de imagens:

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT]

em que:

Exemplo de resposta:

Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/[ZONE]/instances/[INSTANCE_NAME]].
NAME            ZONE   MACHINE_TYPE  INTERNAL_IP   EXTERNAL_IP    STATUS
[INSTANCE_NAME] [ZONE] n1-standard-1 10.105.155.92 173.255.114.53 RUNNING

Se você precisar usar uma versão de imagem específica em vez da versão mais recente, especifique as sinalizações --image e --image-project. Por exemplo, para criar uma instância que usa a imagem Debian debian-9-stretch-v20170619, especifique --image debian-9-stretch-v20170619 e --image-project debian-cloud.

Crie uma instância com uma versão específica de uma imagem:

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE_ID] \
    --image-project [IMAGE_PROJECT]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_ID] é uma imagem específica;
  • [IMAGE_PROJECT] é o projeto de imagem que contém a imagem.

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 estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco vazio, não inclua essas propriedades. Opcionalmente, inclua propriedades para o disco size e type.

gcloud compute instances create [INSTANCE_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]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_FAMILY] é uma das 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] é o projeto de imagem que contém a imagem do disco. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem.
  • [SIZE_GB] é o tamanho do disco secundário.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.

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

Se for escolhida uma imagem compatível com a VM protegida, será possível alterar as configurações de VM protegida da instância usando uma das sinalizações a seguir:

  • --no-shielded-secure-boot: desativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para obter mais informações, consulte Inicialização segura.
  • --no-shielded-vtpm: desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês). O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para obter mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

  • --no-shielded-integrity-monitoring: desativar o monitoramento de integridade. O monitoramento de integridade permite monitorar a integridade da inicialização das instâncias de VMs protegidas usando o Stackdriver. Para obter mais informações, consulte Monitoramento de integridade.

O exemplo a seguir cria uma instância de VM protegida do Ubuntu com a inicialização segura desativada:

gcloud beta compute instances create my-instance \
  --image-family ubuntu-1804-lts --image-project gce-uefi-images \
  --no-shielded-secure-boot

API

Para iniciar uma instância na API, envie uma solicitação e especifique as seguintes propriedades:

  • Imagem de origem
  • Interface de rede
  • Tipo de máquina
  • A sub-rede em que pretende criar a instância, se for uma rede VPC de modo personalizado
  • Se você tiver escolhido uma imagem compatível com VM protegida, será possível alterar as configurações da VM protegida da instância usando os itens do corpo da solicitação booleana a seguir:

    • enableSecureBoot: ativar ou desativar a inicialização segura. A inicialização segura ajuda a proteger as instâncias de VM contra malware e rootkits nos níveis de inicialização e kernel. Para obter mais informações, consulte Inicialização segura.
    • enableVtpm: ativar ou desativar o módulo da plataforma virtual confiável (vTPM, na sigla em inglês). O vTPM permite a Inicialização medida, que valida a integridade da VM antes e durante a inicialização. Para obter mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

    • enableIntegrityMonitoring: ativar ou desativar o monitoramento de integridade. O monitoramento de integridade permite monitorar e verificar a integridade da inicialização do ambiente de execução das instâncias de VM protegidas usando os relatórios do Stackdriver. Para obter mais informações, consulte Monitoramento de integridade.

Depois de definir suas propriedades de recurso, crie um corpo de solicitação e faça sua solicitação de API. Para saber mais, leia a documentação Como criar solicitações de API e manipular respostas.

Como fazer a solicitação de API

Ao usar a biblioteca de cliente da API, é possível iniciar uma nova instância chamando diretamente a API REST ou usando o método instances().insert. Veja um exemplo de cada opção:

REST

Na API, construa uma solicitação POST para as instâncias de URI com o mesmo corpo de solicitação. Adicione 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 adicional. Crie discos adicionais com uma imagem pública ou particular. Para adicionar discos em branco, não especifique uma origem da imagem. Opcionalmente, é possível incluir as propriedades diskSizeGb, diskType e labels.

def addInstance(http, listOfHeaders):
  url = "https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances"

  body = {
    "name": "[INSTANCE_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",
       "initializeParams": {
         "sourceImage": "projects/[IMAGE_PROJECT]/global/images/family/[IMAGE]",
         "labels": {
           "key": "[LABEL_KEY]",
           "value": "[LABEL_VALUE]",
         }
       }
     },
     {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage":"[IMAGE]"
       },
       {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]"
       }
     }]

  bodyContentURLEncoded = urllib.urlencode(bodyContent)
  resp, content = http.request(uri=url, method="POST", body=dumps(bodyContent), headers=listOfHeaders)

  print resp
  print content

em que:

  • [INSTANCE_NAME] é o nome da instância;
  • [PROJECT_ID] é o ID do projeto.
  • [ZONE] é a zona da instância;
  • [MACHINE_TYPE] é o tipo de máquina da instância;
  • [IMAGE_PROJECT] é o projeto de imagem a que a imagem pertence, como debian-cloud, ubuntu-os-cloud e assim por diante.
  • [IMAGE] é uma das famílias de imagens públicas disponíveis. Por exemplo, family/debian-9 usa a versão mais recente da imagem do Debian 9. Como alternativa, é possível usar uma versão de imagem específica, como debian-9-stretch-v20170619, sem o caminho family/. Para discos vazios, não especifique uma origem de imagem.
  • [LABEL_KEY] e [LABEL_VALUE] são marcadores para aplicar no disco. O campo labels é opcional.
  • [SIZE_GB] é o tamanho do disco.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.

Se você criar uma instância com discos secundários em branco, formate e ative esses discos. Dessa maneira, o sistema operacional convidado pode usá-los.

Bibliotecas de cliente em nuvem para 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 instância 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 (em inglês).

    Acessar a página Instâncias de VM (em inglês)

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  5. Se quiser, altere a Zona dessa 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 GCP 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. Para adicionar discos secundários que não sejam de inicialização à sua instância de VM:

    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

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

gcloud compute instances create [INSTANCE_NAME] \
--image [IMAGE_NAME] \
--image-family [IMAGE_FAMILY]

em que:

  • [INSTANCE_NAME] é o nome da instância.
  • [IMAGE_NAME] é o nome da imagem.
  • [IMAGE] é um campo opcional. Use uma imagem privada ou pública. Se nenhuma imagem for especificada, o disco ficará em branco.

Se você criou suas imagens personalizadas como parte de uma família de imagens, especifique essa família em vez do nome da imagem. Ao fazê-lo, a instância usa automaticamente a imagem mais recente e não obsoleta na família de imagens.

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 estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco vazio, não inclua essas propriedades. Opcionalmente, inclua propriedades para o disco size e type.

gcloud compute instances create [INSTANCE_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]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_FAMILY] é uma das 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] é o projeto de imagem que contém a imagem do disco. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem.
  • [SIZE_GB] é o tamanho do disco secundário.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.

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

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. No URI sourceImage, insira o próprio ID do projeto e o nome da imagem:

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 adicional. Crie discos adicionais com uma imagem pública ou privada. Para adicionar um disco vazio, defina a entrada initializeParams sem o valor sourceImage.

...
"initializeParams" :{
   "sourceImage": "global/images/[IMAGE_NAME]"
},
{
"initializeParams": {
   "diskSizeGb": "[SIZE_GB]",
   "sourceImage": "[IMAGE]",
   "diskType": "[DISK_TYPE]"
 },
 {
 "initializeParams": {
 "diskSizeGb": "[SIZE_GB]",
 "diskType": "[DISK_TYPE]"
 }
}...]

em que:

  • [PROJECT_ID] é o ID do projeto.
  • [IMAGE_NAME] é a imagem específica, como debian-9-stretch-v20170619. Como alternativa, é possível especificar uma família de imagens. Por exemplo, family/debian-9 retorna a versão mais recente da imagem do Debian 9.
  • [IMAGE] é a imagem de origem do disco secundário. Para discos vazios, não especifique uma origem de imagem.
  • [SIZE_GB] é o tamanho do disco.
  • [DISK_TYPE] é o 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 (em inglês).

    Acesse a página Instâncias de VM (em inglês)

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  5. Se quiser, altere a Zona dessa 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 GCP 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:

    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 [INSTANCE_NAME] \
    --image [IMAGE] \
    --image-project [IMAGE_PROJECT]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE] é o 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  n1-standard-1               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 estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco vazio, não inclua essas propriedades. Opcionalmente, inclua propriedades para o disco size e type.

gcloud compute instances create [INSTANCE_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]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [IMAGE_FAMILY] é uma das 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] é o projeto de imagem que contém a imagem do disco. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem.
  • [SIZE_GB] é o tamanho do disco secundário.
  • [DISK_TYPE] é o 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]

{
 "initializeParams": {
    "diskSizeGb": "[SIZE_GB]",
    "sourceImage": "[IMAGE]"
       }
   {
  "initializeParams": {
  "diskSizeGb": "[SIZE_GB]"
   }
 }...]

em que:

  • [PROJECT_ID] é o projeto que contém a imagem.
  • [IMAGE] é a imagem de origem.
  • [SIZE_GB] é o tamanho do disco.
  • [IMAGE] é a imagem de origem do disco secundário. Para discos vazios, não especifique uma origem de imagem.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.

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 (em inglês).

    Acessar a página Instâncias de VM (em inglês)

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  5. Se quiser, altere a Zona dessa 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 GCP 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:

    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 [INSTANCE_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]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [BOOT_SNAPSHOT_NAME] é o nome do snapshot do disco de inicialização que você quer restaurar no disco de inicialização da nova instância.
  • [BOOT_DISK_NAME] é o nome do novo disco de inicialização para esta instância.
  • [BOOT_DISK_SIZE] é o tamanho, em GB, 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. Esta propriedade é opcional.
  • [BOOT_DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd. Essa sinalização é opcional.

Opcionalmente, se também quiser restaurar um snapshot que não seja de inicialização, anexe o sinalizador --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]

em que:

  • [SNAPSHOT_NAME] é o nome de um snapshot que não é de inicialização que você queira restaurar.
  • [DISK_NAME] é o nome de um novo disco que não é de inicialização para esta instância.
  • [DISK_SIZE] é o tamanho, em GB, do novo disco. O tamanho tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado. Esta propriedade é opcional.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd. Essa sinalização é opcional.

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

em que:

  • [PROJECT_ID] é o ID do projeto.
  • [ZONE] é a zona em que você quer criar a nova instância.
  • [INSTANCE_NAME] é o nome da instância que você quer restaurar um snapshot.
  • [MACHINE_TYPE] é o tipo de máquina da instância.
  • [BOOT_SNAPSHOT_NAME] é o nome do snapshot que você quer usar para criar o disco de inicialização de uma nova instância.
  • [BOOT_DISK_SIZE] é o tamanho, em GB, 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. Esta propriedade é opcional.
  • [BOOT_DISK_TYPE] é o tipo do disco de inicialização, pd-standard ou pd-ssd. Esta propriedade é opcional.

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 para um novo disco.

    1. Acesse a página "Discos".

      Acessar a página Discos

    2. Clique em Criar disco.
    3. Especifique um Nome para o disco.
    4. Selecione Região e Zona para este 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. Acesse a página Instâncias de VM (em inglês).

    Acessar a página Instâncias de VM (em inglês)

  3. Clique em Criar instância.

  4. Especifique um Nome para sua instância.

  5. Selecione Região e Zona para esta 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 --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 \
    --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]

em que:

  • [SNAPSHOT_1_NAME] e [SNAPSHOT_2_NAME] são os nomes dos snapshots que não são de inicialização que você quer restaurar.
  • [DISK_1_NAME] e [DISK_2_NAME] são os nomes dos novos discos que não são de inicialização para esta instância.
  • [DISK_1_SIZE] e [DISK_2_SIZE] são os tamanhos, em GB, de cada novo disco que não é de inicialização. O tamanho tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado. Esta propriedade é opcional.
  • [DISK_1_TYPE] e [DISK_2_TYPE] são os tipos de discos permanentes, pd-standard ou pd-ssd. Essa sinalização é opcional.

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": "[INSTANCE_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]"
     }
  }]
 }

em que:

  • [PROJECT_ID] é o ID do projeto.
  • [ZONE] é a zona em que você quer criar a nova instância.
  • [INSTANCE_NAME] é o nome da instância de que você quer restaurar um snapshot.
  • [MACHINE_TYPE] é o tipo de máquina da instância.
  • [SNAPSHOT_1_NAME] e [SNAPSHOT_2_NAME] são os nomes dos snapshots que não são de inicialização que você quer restaurar em discos novos e que não são de inicialização na nova instância.
  • [DISK_SIZE] é o tamanho, em GB, do disco correspondente. Essa propriedade é opcional, mas tem que ser igual ou maior que o tamanho do disco de origem do qual o snapshot foi criado.
  • [DISK_TYPE] é o tipo do disco permanente correspondente, pd-standard ou pd-ssd. Esta propriedade é opcional.

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. Consulte Como implantar contêineres em VMs para obter mais informações.

Console

  1. Acesse a página Instâncias de VM (em inglês).

    Acessar a página Instâncias de VM (em inglês)

  2. Clique em Criar instância.
  3. Especifique um Nome para sua instância.
  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.
    • Por exemplo, especifique gcr.io/cloud-marketplace/google/nginx1:1.12 para selecionar uma imagem de contêiner NGINX 1.12 do Cloud Launcher.
    • Se você usar uma imagem de contêiner do Docker Hub, sempre especifique o nome completo da imagem do Docker. Por exemplo, forneça o seguinte nome para implantar uma imagem do contêiner Apache: docker.io/httpd:2.4
  6. Se quiser, 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 comando gcloud compute instances create-with-container:

gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [CONTAINER_IMAGE]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [CONTAINER_IMAGE] é o 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

Ao usar uma imagem de contêiner do Docker Hub, você precisa sempre especificar um nome da imagem completo do Docker. Por exemplo, forneça o seguinte nome para implantar uma imagem do contêiner Apache: docker.io/httpd:2.4

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

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

Para obter mais informações sobre contas de serviço, leia a Visão geral das contas de serviço.

Como criar uma instância em uma sub-rede compartilhada

Por padrão, o Google Cloud Platform (GCP) 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. Acesse a página Instâncias de VM (em inglês).

    Acessar a página Instâncias de VM (em inglês)

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  5. Se quiser, altere a Zona dessa 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 GCP 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:

    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.
  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 [INSTANCE_NAME] --subnet [SUBNET_NAME] \
--zone [ZONE_NAME]

em que:

  • [INSTANCE_NAME] é o nome da instância;
  • [SUBNET_NAME] é o nome da sub-rede. A rede é inferida da sub-rede especificada;
  • [ZONE_NAME] é o nome da 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 estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco vazio, não inclua essas propriedades. Opcionalmente, inclua propriedades para o disco size e type.

gcloud compute instances create [INSTANCE_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]

em que:

  • [INSTANCE_NAME] é o nome da nova instância.
  • [SUBNET_NAME] é o nome da sub-rede.
  • [ZONE_NAME] é o nome da zona em que a instância é criada, como europe-west1-b.
  • [IMAGE_FAMILY] é uma das 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] é o projeto de imagem que contém a imagem do disco. Para discos vazios, não especifique uma imagem de disco ou um projeto de imagem.
  • [SIZE_GB] é o tamanho do disco secundário.
  • [DISK_TYPE] é o 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]"
     }
 }...]

em que:

  • [IMAGE] é a imagem de origem do disco secundário. Para discos vazios, não especifique uma origem de imagem.
  • [SIZE_GB] é o tamanho do disco.
  • [DISK_TYPE] é o tipo de disco permanente, pd-standard ou pd-ssd.

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

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine