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 conectados, 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 para ela. Os sistemas operacionais convidados atuais estão configurados para realizar um encerramento limpo antes de desligar em resposta ao sinal de desligamento. O Compute Engine aguarda um breve período para que o convidado termine o encerramento, em seguida passa a instância para o estado TERMINATED.

Uma instância interrompida não sofre alterações, mas todos os recursos anexados a ela ainda sofrerão alterações. 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.

Faturamento

O Google não cobra pelos recursos da VM quando elas estão em um estado TERMINATED.

Especificamente, quando uma VM está no estado RUNNING e em processo de interrupção (mas ainda não está no estado TERMINATED), o Google cobra por vCPUs, memória, GPUs e uso de SSD local. Depois que o estado STOPPING é encerrado e a VM entra no estado TERMINATED, o Google deixa de cobrar por esses recursos.

Lembre-se de que quaisquer outros recursos ainda vinculados a uma VM no estado TERMINATED incorrerão em cobranças, como discos permanentes, endereços IP externos estáticos, entre outros.

Para mais informações sobre 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 Google Cloud Platform Console, a ferramenta gcloud ou a API.

Console

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

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

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

gcloud

Use o comando instances stop e especifique uma ou mais instâncias que deseja parar.

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://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/stop

Uma instância TERMINATED ainda existe com as configurações, ajustes e metadados de instância, mas perde os dados contidos na memória e o estado de máquina virtual. Quaisquer recursos ainda anexados à instância encerrada continuarão assim até você desanexá-los manualmente ou excluir a instância.

Com a instância no estado TERMINATED, será possível reiniciá-la ou excluí-la. Você também pode deixar uma instância no estado TERMINATED indefinidamente. Contudo, 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 So convidado.

Linux

Use os comandos sudo shutdown -h now ou sudo poweroff. Execute um destes enquanto estiver conectado à máquina virtual:

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

Windows

Para reinicializar uma instância do Windows, semelhante ao comando sudo reboot acima, use o menu Iniciar. No menu Iniciar, clique na seta ao lado de Fazer logoff e em Reiniciar.

Como iniciar uma instância parada

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 em estado start pode ser reiniciada com o método TERMINATED. No entanto, os métodos reset() e sudo reboot só funcionam com instâncias em execução. A maioria das instâncias pode ser reiniciada, desde que estejam em um estado TERMINATED, com exceção das instâncias com SSDs locais conectados, que não podem ser reiniciados.

Console

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

    Acessar a página "Instâncias da 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 sua instância com o gcloud compute:

gcloud compute instances start example-instance

API

Na API, faça uma solicitação POST para o seguinte URI, 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 sua instância usando as bibliotecas de cliente, construa 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 saber mais 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 tentar reiniciá-la.

Console

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

    Ir para a página "Instâncias de VMs"

  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 o sinalizador --csek-key-file e o nome do disco ao iniciar a instância. Se você estiver usando uma chave incorporada por RSA, use o componente gcloud beta.

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

onde:

  • [INSTANCE_NAME] é o nome da instância;
  • [ENCRYPTION_KEY] é a chave de criptografia 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://www.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]"
       }
    }
  ]
}

onde:

  • [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;
  • [DISK_NAME] é o disco anexado, criptografado com uma chave de criptografia fornecida pelo cliente;
  • [ENCRYPTION_KEY] é a chave de criptografia 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 pressiona e segura 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 desligamento limpo 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. Entretanto, os dados armazenados na memória são redefinidos, a menos que você faça um backup.

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

Console

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

    Acessar a página "Instâncias da 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 sua instância com o gcloud compute:

gcloud compute instances reset example-instance

API

Na API, faça uma solicitação POST para o seguinte URI, 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 sua instância usando as bibliotecas cliente, construa 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 saber mais sobre esse método, consulte a documentação de referência de instances().reset.

Depois de executar o comando reset, a zona de operação subsequente retornará como DONE quando a instância estiver totalmente encerrada.

Como usar outros métodos de reinicialização

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

  • sudo reboot (somente Linux): chamado a partir 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 cria uma instância com as informações passadas para o 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