Como criar e iniciar uma instância de VM

Neste documento, explicaremos como criar uma instância de máquina virtual usando uma imagem do disco de inicialização, um instantâneo do disco de inicialização ou uma imagem de contêiner. Ao criar uma instância de VM de uma imagem de disco de inicialização, use uma imagem normal ou uma de VM protegidaBETA. 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

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.

Crie uma instância com uma imagem no console do Google Cloud Platform usando a ferramenta de linha de comando gcloud ou a API.

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 receber uma lista das famílias de imagens disponíveis, consulte imagens públicas.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  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 um Tipo 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 à sua 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 mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

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

    1. Clique na seção Gerenciamento, segurança, discos, rede, locação exclusiva.
    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 o Secure Boot, 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 ver mais informações, consulte Inicialização segura.
    3. Se você quiser desativar o módulo de plataforma confiável virtual (vTPM, na sigla em inglês), desmarque a opção Ativar vTPM. O vTPM ativa a Inicialização medida, que valida a pré-inicialização da VM e a integridade da inicialização. Para ver mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

    4. Se você quiser desativar o monitoramento de integridade, desmarque 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 ver 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. Use o comando gcloud compute images list sem nenhuma sinalização para ver a lista completa de imagens públicas de VM não protegidas com os respectivos códigos, famílias e projetos de imagem:

gcloud compute images list

Use o comando gcloud compute images list com as sinalizações a seguir para ver a lista completa de imagens públicas da VM protegida:

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 as sinalizações --image-family e --image-project. Por exemplo, debian-9 é uma família de imagens que retorna a versão mais recente da imagem Debian 9 não 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://www.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 use 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 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 com base em uma imagem pública ou de estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Como opção, inclua propriedades de 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 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 em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • [DISK_IMAGE_PROJECT] é o projeto de imagem a que a imagem do disco pertence. Para discos em branco, 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, é possível alterar as configurações de VM protegida da instância usando uma das sinalizações a seguir:

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

  • --no-shielded-vm-integrity-monitoring: desative o monitoramento de integridade. O monitoramento de integridade permite monitorar a integridade da inicialização das instâncias de VM protegida usando o Stackdriver. Para ver 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-uefi --image-project gce-uefi-images \
  --no-shielded-vm-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 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: ative ou desative 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 ver mais informações, consulte Inicialização segura.
    • enableVtpm: ative ou desative o módulo de plataforma confiável virtual (vTPM, na sigla em inglês). O vTPM permite a inicialização segura, que valida a pré-inicialização da VM e a integridade da inicialização. Para ver mais informações, consulte Módulo da plataforma virtual confiável (vTPM).

    • enableIntegrityMonitoring: ative ou desative 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 ver 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

Se você usa a biblioteca de cliente da API, pode iniciar uma nova instância chamando diretamente a API REST ou usando 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 no momento em que criar uma instância de VM usando 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. Também é possível incluir as propriedades diskSizeGb e diskType.

def addInstance(http, listOfHeaders):
  url = "https://www.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]"
       }
     },
     {
       "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 código do projeto;
  • [ZONE] é a zona da instância;
  • [MACHINE_TYPE] é o tipo de máquina da instância;
  • [IMAGE_PROJECT] é o projeto que contém a imagem, 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 utiliza a versão mais recente da imagem Debian 9. Se preferir, use uma versão de imagem específica, como debian-9-stretch-v20170619 sem o caminho family/. Para discos em branco, não especifique uma origem da imagem;
  • [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.

Biblioteca de cliente do 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 Criar uma imagem personalizada.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias da VM"

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  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 um Tipo 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. Verifique se o seu projeto foi selecionado no menu suspenso.

  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 à sua 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 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

Use as ferramentas de linha de 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 particular 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 com base em uma imagem pública ou de estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Como opção, inclua propriedades de 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 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 em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • [DISK_IMAGE_PROJECT] é o projeto de imagem a que a imagem do disco pertence. Para discos em branco, 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 código do projeto e o nome da imagem:

Crie até 128 discos secundários que não sejam de inicialização no momento em que criar uma instância de VM usando a propriedade initializeParams para cada disco adicional. Crie discos adicionais com uma imagem pública ou privada. Para adicionar um disco em branco, 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 código 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 Debian 9;
  • [IMAGE] é a imagem de origem para o disco secundário. Para discos em branco, não especifique uma origem da 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 VMs".

    Acessar a página "Instâncias de VMs"

  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 um Tipo 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 à sua instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

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

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

gcloud

Crie uma instância usando o comando gcloud compute instances create e use 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 [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://www.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 com base em uma imagem pública ou de estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Como opção, inclua propriedades de 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 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 em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • [DISK_IMAGE_PROJECT] é o projeto de imagem a que a imagem do disco pertence. Para discos em branco, 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 initalizeParams para cada disco adicional. Para adicionar discos em branco, não especifique uma origem da imagem. Também é possível especificar as propriedades diskSizeGb e diskType.

...
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 para o disco secundário. Para discos em branco, não especifique uma origem da 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 imagem de um instantâneo

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

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  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 um Tipo 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 Instantâneos e escolha um instantâneo 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 à sua instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

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

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

gcloud

Ao usar a ferramenta de linha de comando gcloud, não use um instantâneo para criar diretamente uma instância da mesma maneira como no console. Primeiro, crie um novo disco permanente de inicialização independente de um instantâneo. Em seguida, use esse disco para criar uma nova instância.

  1. Crie um disco permanente de inicialização independente com um instantâneo usando o comando gcloud compute disks create.

    gcloud compute disks create [DISK_NAME] --source-snapshot [SNAPSHOT_NAME]
    
  2. Use o comando gcloud compute instances create para criar uma nova instância e anexe o disco com a sinalização --disk e a propriedade boot=yes.

    gcloud compute instances create [INSTANCE_NAME] --disk name=[DISK_NAME],boot=yes
    

    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 com base em uma imagem pública ou de estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Como opção, inclua propriedades de 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 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 em branco, não especifique uma imagem de disco ou um projeto de imagem;
    • [DISK_IMAGE_PROJECT] é o projeto de imagem a que a imagem do disco pertence. Para discos em branco, 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

Na API, não é possível usar um instantâneo para criar diretamente uma instância como é feito no console. Primeiro, crie um novo disco permanente de inicialização independente de um instantâneo. Em seguida, use esse disco para criar uma nova instância.

Restrições:

  • 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 uma source indica que o disco permanente de inicialização já existe, mas a propriedade initializeParams indica que o Compute Engine precisa criar um novo.

Para criar uma instância de um instantâneo, siga estas etapas:

  1. Crie um disco permanente de inicialização autônomo de um instantâneo.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
      "name": "[DISK_NAME]",
      "sourceSnapshot": "zones/[ZONE]/snapshots/[SNAPSHOT_NAME]"
    }
    
  2. Anexe o disco quando criar uma nova instância. No corpo da solicitação, inclua as propriedades para criar uma nova instância. Na propriedade disks, inclua o campo source com um URL para o disco permanente que você quer anexar. Para adicionar até 128 discos secundários que não sejam de inicialização, use a propriedade initializeParams para cada disco. Para adicionar discos em branco, não inclua uma imagem de origem. Também é possível especificar as propriedades diskSizeGb e diskType.

    POST https://www.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": [{
         "source": "zones/[ZONE]/disks/[DISK_NAME]",
         "boot": true
       }],
       "initializeParams": [{
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage": "[IMAGE]"
        }
       {
       "initializeParams": {
       "diskSizeGb": "[SIZE_GB]"
       }
    }...]
    

    em que:

    • [IMAGE] é a imagem de origem para o disco secundário. Para discos em branco, não especifique uma origem da 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 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 mais informações.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VM"

  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 a ser usada.
    • 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, especifique o nome da imagem a seguir para implantar uma imagem de contêiner do Apache: docker.io/httpd:2.4.
  6. Se quiser, clique em Opções de contêiner avançadas. Para 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

Use 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 nova instância de VM chamada nginx-vm, que lançará e executará 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, especifique o seguinte nome da imagem para implantar uma imagem de contêiner do Apache: docker.io/httpd:2.4.

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

Se você planeja executar um aplicativo na instância da máquina virtual que precisa de acesso a outros serviços do Google Cloud Platform, crie uma conta de serviço antes de criar a instância. Na sequência, siga as instruções para configurar uma instância para execução como uma conta de serviço. Uma conta de serviço é uma conta especial cujas credenciais podem ser usadas no código do aplicativo para acessar outros serviços do Google Cloud Platform.

Para mais informações sobre contas de serviço, leia a Visão geral de 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 VMs".

    Acessar a página "Instâncias da VM"

  2. Selecione o projeto e clique em Continuar.
  3. Clique no botão Criar instância.
  4. Especifique um Nome para sua instância.
  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 à sua instância e cria a regra de firewall de entrada correspondente que permite todo o tráfego de entrada em tcp:80 (HTTP) ou tcp:443 (HTTPS). A tag de rede associa a regra de firewall à instância. Para ver mais informações, consulte Visão geral sobre regras de firewall na documentação da nuvem privada virtual.

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

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

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

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

gcloud

Para usar a ferramenta de linha de comando gcloud, siga as mesmas instruções para criar uma instância de uma imagem ou um instantâneo e adicione os --subnet [SUBNET_NAME] e --zone [ZONE_NAME] ao usar 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 com base em uma imagem pública ou de estoque, especifique as propriedades image e image-project na sinalização --create-disk. Para criar um disco em branco, não inclua essas propriedades. Como opção, inclua propriedades de 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 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 em branco, não especifique uma imagem de disco ou um projeto de imagem;
  • [DISK_IMAGE_PROJECT] é o projeto de imagem a que a imagem do disco pertence. Para discos em branco, 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 ou um instantâneo, 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. Também é possível especificar as propriedades diskSizeGb e diskType.

...
"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 para o disco secundário. Para discos em branco, não especifique uma origem da 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.

Próximas etapas

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

Enviar comentários sobre…

Documentação do Compute Engine