Como interromper e iniciar uma instância


Nesta página, você verá como interromper e iniciar uma instância de máquina virtual (VM, na sigla em inglês). Para suspender e retomar uma instância, leia Como suspender e retomar uma instância. Para mais informações sobre como interromper e suspender uma instância, consulte Ciclo de vida da instância.

É possível interromper uma instância temporariamente, caso não precise mais dela, e reiniciá-la depois. Uma instância interrompida mantém os discos permanentes, IPs internos e endereços MAC. No entanto, ela encerra o SO convidado e perde o estado do aplicativo. Basicamente, ela é redefinida para o estado de ativação e nenhum dado é salvo. Interrompa uma instância se quiser alterar o tipo de máquina, adicionar ou remover discos anexados, alterar a plataforma mínima da CPU, adicionar ou remover GPUs ou aplicar recomendações de dimensionamento.

Interromper uma instância faz com que o Compute Engine envie o sinal de desligamento da ACPI para a instância. Os sistemas operacionais convidados atuais estão configurados para realizar um encerramento simples antes de desligar em resposta ao sinal relacionado. O Compute Engine aguarda um breve período para que o convidado termine o encerramento e passa a instância para o estado TERMINATED.

Uma instância interrompida não incorre em cobranças, mas todos os recursos vinculados à instância continuam sendo cobrados. Por exemplo, você será cobrado por discos permanentes e endereços IP externos de acordo com a tabela de preços, mesmo que a instância esteja interrompida. Para não ser cobrado pelos recursos anexados, é possível reconfigurar uma instância interrompida para não usar esses recursos e, em seguida, excluí-los.

Se você precisar manter o SO convidado e o estado do aplicativo, suspenda a instância.

Antes de começar

Restrições

Não é possível interromper uma instância com um SSD local anexado. Nesse caso, tome cuidado, já que o Compute Engine não impede que você desligue uma instância a partir do SO convidado, caso a instância tenha um SSD local.

SSDs locais

Não é possível interromper uma instância que tenha um SSD local anexado. Em vez disso, é necessário migrar os dados importantes do SSD local para um disco permanente ou outra instância antes de excluí-la por definitivo. Nesse caso, tome cuidado, já que o Compute Engine não impede que você desligue o SO convidado em uma instância com SSD local.

Faturamento

As instâncias que estão no estado TERMINATED não são cobradas pelo uso por segundo e não são contabilizadas na cota de CPU regional. Portanto, é possível optar por interromper as instâncias que não estão em uso, poupando a cobrança de instâncias que não estão ativas. Quando estiver pronto, volte e inicie as mesmas instâncias novamente, com propriedades, metadados e recursos iguais a antes.

Suas instâncias não são cobradas pelo uso por segundo enquanto estão no estado TERMINATED, mas todos os recursos anexados à máquina virtual, como IPs estáticos e discos permanentes, são cobrados até serem excluídos.

Como interromper uma instância

Para interromper uma instância, use o Console do Google Cloud, a ferramenta gcloud ou a API Compute Engine.

Console

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

    Acessar instâncias de VM

  2. Selecione uma ou mais instâncias a serem interrompidas.

  3. Clique em Interromper.

gcloud

Use o comando instances stop e especifique uma ou mais instâncias que você quer interromper.

gcloud compute instances stop example-instance-1 example-instance-2

API

Na API, crie uma solicitação POST para interromper uma instância.

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/stop

Uma instância TERMINATED ainda existe com as configurações e os metadados da instância, mas perde os dados na memória e o estado da máquina virtual. Todos os recursos anexados à instância encerrada permanecem anexados até que você os desanexe manualmente ou exclua a instância.

Com a instância no estado TERMINATED, será possível reiniciá-la ou excluí-la. Também é possível deixar a instância no estado TERMINATED indefinidamente. No entanto, exclua a instância se você não planejar reiniciá-la.

Como interromper uma instância por meio do SO

Outra opção é interromper uma instância por meio do sistema operacional convidado com o comando sudo shutdown -h now ou sudo poweroff. Execute um destes comandos enquanto estiver conectado à máquina virtual:

me@example-instance:~$ sudo shutdown -h now
me@example-instance:~$ sudo poweroff

Como reiniciar uma instância interrompida que não tem um disco criptografado

Para iniciar uma instância interrompida, use o método instances().start. Isso inicializa uma instância de máquina virtual interrompida que está atualmente no estado TERMINATED.

Uma instância no estado TERMINATED pode ser reiniciada com o método start. No entanto, métodos como reset() e sudo reboot só funcionam com instâncias em execução. Quase todas as instâncias podem ser reiniciadas enquanto estiverem no estado TERMINATED.

Console

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

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

  2. Marque as caixas ao lado de uma ou mais instâncias para iniciar.

  3. Clique em Iniciar.

gcloud

Para redefinir a instância usando a gcloud compute:

gcloud compute instances start example-instance

API

Na API, faça uma solicitação POST para o URI a seguir, usando o projeto, a zona e o nome de instância adequados:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/start

Para reiniciar a instância usando as bibliotecas de cliente, crie uma solicitação para o método instances().start:

def restartInstance(auth_http, gce_service):
  request = gce_service.instances().start(project="myproject", zone="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

Para mais informações sobre esse método, consulte a documentação de referência de instances().start.

Como reiniciar uma instância que tem discos criptografados

Se a instância a ser reiniciada usar chaves de criptografia fornecidas pelo cliente, forneça essas chaves ao reiniciá-la.

Console

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

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

  2. Clique no nome da instância que você quer iniciar. A página de detalhes da instância será aberta.

  3. Clique no botão Iniciar. Uma janela se abre, em que é possível especificar as chaves de criptografia para os dispositivos anexados a essa instância.

  4. Especifique as chaves de criptografia de cada um dos discos criptografados anexados a essa instância.

  5. Clique em Iniciar para iniciar a instância.

gcloud

Ao iniciar a instância, forneça a chave com a sinalização --csek-key-file e o nome do disco. Se você estiver usando uma chave incorporada por RSA, utilize o componente gcloud beta:

 gcloud compute instances start INSTANCE_NAME \
     --csek-key-file ENCRYPTION_KEY

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância.
  • ENCRYPTION_KEY: a chave de criptografia que você usa para criptografar os discos permanentes que estão anexados à instância.

API

Na API, crie uma solicitação POST para iniciar a instância que usa uma chave de criptografia. Se estiver usando uma chave incorporada por RSA, faça a solicitação para a API versão Beta, e não para a API v1.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey
{
  "instanceEncryptionKey": {
    "rsaEncryptedKey": "ENCRYPTION_KEY
  },
  "disk": [
    {
       "source": "DISK_NAME",
       "diskEncryptionKey": {
         "rsaEncryptedKey": "ENCRYPTION_KEY"
       }
    }
  ]
}

Substitua o seguinte:

  • PROJECT_ID é o código do projeto;
  • ZONE é a zona da instância;
  • INSTANCE_NAME é o nome da instância;
  • ENCRYPTION_KEY é a chave que você usa para criptografar discos permanentes anexados à instância;
  • DISK_NAME é o disco anexado, criptografado com uma chave de criptografia fornecida pelo cliente.

Redefinir uma instância

Redefinir uma instância é como fazer uma reinicialização forçada no computador: ou você pressiona um botão de redefinição ou mantém pressionado o botão liga/desliga. A reinicialização forçada limpa o conteúdo da memória da máquina e redefine a máquina virtual para o estado inicial. A instância não executa um encerramento simples do SO convidado. Durante todo esse processo, ela permanece no estado RUNNING.

Você pode redefinir uma instância em execução usando o botão "Redefinir" no Console do Cloud, o comando instances reset em gcloud, ou fazendo uma solicitação POST na API.

Console

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

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

  2. Selecione uma ou mais instâncias para redefinir.

  3. Clique em Redefinir.

gcloud

Para redefinir a instância usando a gcloud compute:

gcloud compute instances reset example-instance

API

Na API, faça uma solicitação POST para o URI a seguir, usando o projeto, a zona e o nome de instância adequados:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/reset

Para redefinir a instância usando as bibliotecas de cliente, crie uma solicitação para o método instances().reset:

def resetInstance(auth_http, gce_service):
  request = gce_service.instances().reset(project="myproject", zone="us-central1-a", instance="example-instance")

  print response

Para mais informações sobre esse método, consulte a documentação de referência de instances().reset.

Depois de executar o comando reset, a operação de zona subsequente retorna DONE após o encerramento completo da instância.

Como usar outros métodos de reinicialização

Para reiniciar sua instância, use também os seguintes métodos:

  • sudo reboot (somente Linux): chame esse método de dentro da instância. Esse método limpa a memória e reinicializa a instância com os metadados, a imagem e os discos permanentes originais. Esse comando não escolhe as versões atualizadas da imagem, e a instância retém o mesmo endereço IP temporário. Isso é parecido com a ação para reiniciar seu computador.
  • Reinicializando uma instância do Windows: é possível reinicializar uma instância do Windows, semelhante ao sudo reboot acima, usando o menu Iniciar. No menu Iniciar, clique na seta ao lado de Sair e depois em Reiniciar.
  • gcloud compute instances delete seguido por gcloud compute instances create: é uma reinicialização completamente destrutiva que inicializa a instância com todas as informações passadas para gcloud compute instances create. Selecione novas imagens e outros recursos que pretende usar. A instância reiniciada terá provavelmente um endereço IP diferente. Esse método talvez troque a máquina física que hospeda a instância.

A seguir