Como interromper e iniciar uma instância

Nesta página, você verá como interromper e iniciar uma instância de VM. Para saber mais sobre como interromper uma instância, leia sobre o 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 ACPI Power Off (em inglês) para ela. 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.

Não há cobranças por uma instância interrompida, mas sim por todos os recursos anexados a ela. 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.

Antes de começar

Restrições

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

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. O Compute Engine não impede que você desligue o sistema operacional convidado em uma instância com um SSD local. Portanto, tome bastante cuidado ao desligar os sistemas operacionais convidados nas suas instâncias.

Cobrança

O Google não cobra pelos recursos das VMs quando elas têm o estado TERMINATED.

Especificamente, quando uma VM tem o estado RUNNING e está sendo interrompida (mas ainda não está no estado TERMINATED), o Google cobra por uso de vCPUs, memória, GPUs e SSD local. Depois que o estado STOPPING termina, e a VM entra no estado TERMINATED, o Google deixa de cobrar pelos recursos mencionados acima.

Lembre-se de que ainda haverá cobranças por quaisquer outros recursos anexados a uma VM no estado TERMINATED, como discos permanentes, endereços IP externos estáticos, entre outros.

Para mais informações sobre os estados da instância, leia a documentação do Ciclo de vida da instância.

Como interromper uma instância

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

Console

  1. Acesse a página "Instâncias de VM" no Console do GCP.

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

  2. Selecione uma ou mais instâncias que você queira interromper.
  3. Na parte superior da página Instâncias de VM, clique em Parar.

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 metadados de instância, mas perde os dados contidos na memória e o estado de máquina virtual. Os recursos ainda anexados à instância encerrada continuarão assim até você manualmente desanexá-los ou excluir 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 planeja reiniciá-la.

Como interromper uma instância por meio do SO

Outra opção é interromper uma instância pelo sistema operacional convidado.

Linux

Use os comandos 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

Windows

É possível reinicializar uma instância do Windows, como no método sudo reboot acima, usando o menu Iniciar. Nesse menu, clique na seta ao lado de Fazer logoff e em Reiniciar.

Como iniciar uma instância interrompida

Para iniciar uma instância interrompida, use ométodo instances().start. Ele 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. É possível reiniciar a maioria das instâncias desde que esteja em um estado TERMINATED, com exceção das instâncias com SSDs locais anexados, que não podem ser reiniciadas.

Console

  1. Acesse a página "Instâncias de VM" no Console do Google Cloud Platform.

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

  2. Selecione as instâncias que você quer reiniciar.
  3. Na parte superior à direita da página, clique no botão Iniciar para reiniciar as instâncias.

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://compute.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. Acesse a página "Instâncias de VM".

    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

Forneça a chave usando a sinalização --csek-key-file e o nome do disco ao iniciar a instância. 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]

em que:

  • [INSTANCE_NAME] é o nome da instância;
  • [ENCRYPTION_KEY] é a chave que você usa para criptografar discos permanentes anexados à instância.

API

Na API, crie uma solicitação POST para iniciar a instância com uma chave de criptografia. Se estiver usando uma chave incorporada por RSA, faça a solicitação para a Beta API, em vez de para a v1 API.

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]"
       }
    }
  ]
}

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;
  • [DISK_NAME] é o disco anexado, criptografado com uma chave de criptografia fornecida pelo cliente;
  • [ENCRYPTION_KEY] é a chave que você usa para criptografar discos permanentes anexados à instância.

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

Ao redefinir uma instância, nenhuma das propriedades dela é alterada. São mantidos o endereço IP temporário, o disco permanente, o tipo de máquina, e assim por diante. No entanto, os dados armazenados na memória são redefinidos, a menos que você faça um backup.

Para realizar uma redefinição em uma instância em execução, use o botão Redefinir no Console do GCP, o comando instances reset na gcloud ou uma solicitação POST na API.

Console

  1. Acesse a página "Instâncias de VM" no Console do Google Cloud Platform.

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

  2. Marque as caixas ao lado das instâncias que você quer redefinir.
  3. Na parte superior à direita da página, clique no botão Redefinir para redefinir as instâncias.

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://compute.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")
  response = request.execute(auth_http)

  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 posterior será retornada como DONE quando a instância for completamente encerrada e a reinicialização for iniciada.

Como usar outros métodos de reinicialização

Outra opção é redefinir a instância usando os métodos a seguir:

  • sudo reboot (somente Linux): chamado de dentro da instância. Limpa a memória e reinicializa a instância com os metadados, a imagem e os discos permanentes originais. Nenhuma versão atualizada da imagem será coletada, e a instância manterá o mesmo endereço IP temporário. Isso é parecido com a ação para reiniciar seu computador.
  • gcloud compute instances delete seguido por gcloud compute instances create: reinicialização completamente destrutiva que inicializará a instância com todas as informações transmitidas 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

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

Enviar comentários sobre…

Documentação do Compute Engine