É possível interromper manualmente uma instância do Compute Engine quando ela não for mais usada ou para modificar as propriedades dela, por exemplo, para alterar o tipo de máquina ou remover todos os discos anexados e montados. Depois que a instância for interrompida, será possível reiniciá-la para retomar a carga de trabalho ou excluí-la se ela não for mais necessária.
Neste documento, explicamos como interromper ou reiniciar manualmente uma instância. Para automatizar a interrupção ou reinicialização de uma instância, consulte o seguinte:
Limitações
Quando você interrompe uma instância de computação, as seguintes limitações se aplicam:
Só é possível parar ou reiniciar uma instância se o estado da instância permitir.
Só é possível reiniciar uma instância se houver recursos suficientes na zona dela.
Não é possível reiniciar instâncias de TPU.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar
códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade externo (IdP), confirme se você fez login na CLI gcloud com sua identidade federada.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade externo (IdP), confirme se você fez login na CLI gcloud com sua identidade federada.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade externo (IdP), confirme se você fez login na CLI gcloud com sua identidade federada.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Go
Para usar os exemplos de Go nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para usar os exemplos de Java desta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para usar os exemplos do Node.js nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para usar os exemplos de PHP nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Funções exigidas
Para receber as permissões necessárias para
interromper ou reiniciar uma instância de computação,
peça ao administrador para conceder a você o
papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para interromper ou reiniciar uma instância de computação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para interromper ou reiniciar uma instância de computação:
-
Para interromper uma instância:
compute.instances.stopna instância -
Para interromper uma instância no SO convidado:
compute.instances.setMetadatana instância se ela usar chaves SSH públicas no nível da instância. -
Para reiniciar uma instância:
compute.instances.startna instância -
Para reiniciar uma instância que usa chaves de criptografia:
compute.instances.startWithEncryptionKeyna instância
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Interromper uma instância
Quando você interrompe uma instância de computação ou o Compute Engine faz isso por uma ação agendada, a instância retém os discos anexados, as configurações de configuração, os endereços IP e endereços MAC e os metadados da instância. Se você também quiser manter os dados na memória e o estado do aplicativo, suspenda a instância.
Dependendo se a instância tem discos SSD locais anexados e de como você quer processar os scripts de desligamento, interrompa a instância usando um dos seguintes métodos:
Interromper uma instância de Google Cloud. É possível interromper uma ou mais instâncias simultaneamente em Google Cloud. Se as instâncias tiverem discos SSD locais anexados, você poderá escolher se quer descartar ou preservar (prévia) os dados do SSD local. Todos os scripts de desligamento na instância precisam terminar de ser executados até o período de desligamento padrão.
Para ver instruções, consulte um dos seguintes links:
Interrompa uma instância no SO convidado. É possível interromper uma única instância no SO convidado. Essa abordagem permite que você interrompa uma instância somente depois que os scripts de encerramento terminarem de ser executados. Se você ativou o encerramento completo, também é possível interromper a instância sem encerrá-la completamente ou encerrar um encerramento completo em andamento. A menos que você faça backup manual dos dados de qualquer disco SSD local anexado em um volume de armazenamento durável, interromper uma instância no disco do SO convidado descarta todos os dados nesses discos.
Para instruções, consulte Interromper uma instância no SO convidado.
Interromper uma instância sem discos SSD locais
Dependendo do que você quer fazer ao interromper uma instância, use as seguintes opções:
Se você tiver ativado o encerramento completo na instância, poderá interromper a instância sem encerrá-la completamente ou encerrar um encerramento completo em andamento usando o console Google Cloud , a CLI gcloud ou a API REST.
Para interromper várias instâncias simultaneamente, use o console Google Cloud ou, no caso de instâncias localizadas na mesma zona, a CLI gcloud.
Para interromper uma ou mais instâncias, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Selecione as instâncias em execução que você quer interromper.
Clique em Interromper. Se não houver a opção Parar, clique em Mais ações > Parar.
Na caixa de diálogo exibida, execute as ações a seguir:
Opcional: para interromper as instâncias sem um encerramento completo ou encerrar um encerramento completo em andamento, marque a caixa de seleção Ignorar encerramento completo (se aplicável).
Para confirmar, clique em Interromper.
gcloud
Para interromper uma ou mais instâncias na mesma zona, use o
comando gcloud compute instances stop:
gcloud compute instances stop INSTANCE_NAMES \
--zone=ZONE
Substitua:
INSTANCE_NAMES: uma lista de nomes de instâncias separados por espaços. Por exemplo,instance-01 instance-02 instance-03.ZONE: a zona em que as instâncias estão localizadas.
Se você tiver ativado o encerramento completo em uma ou mais instâncias, poderá interrompê-las sem fazer o encerramento completo ou encerrar manualmente um encerramento completo em andamento. Para fazer isso, use o
comando gcloud beta compute instances stop
com a flag --no-graceful-shutdown:
gcloud beta compute instances stop INSTANCE_NAMES \
--no-graceful-shutdown \
--zone=ZONE
Go
Java
Node.js
PHP
Python
REST
Para interromper uma instância, faça uma solicitação POST ao
método instances.stop:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
Substitua:
INSTANCE_NAME: o nome da instância.PROJECT_ID: o ID do projeto em que a instância está localizada.ZONE: a zona em que a instância está.
Se você ativou o encerramento completo em uma instância, é possível interromper
a instância sem encerrá-la completamente ou encerrar manualmente um
encerramento completo em andamento. Para fazer isso, envie uma solicitação POST ao método instances.stop.
No URL da solicitação, inclua o parâmetro de consulta noGracefulShutdown=true:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?noGracefulShutdown=true
Interromper uma instância com discos SSD locais
Dependendo do que você quer fazer ao interromper uma instância de computação, use as seguintes opções:
Se você tiver ativado o encerramento completo na instância, poderá interromper a instância sem desligá-la normalmente ou encerrar um encerramento completo em andamento usando o console do Google Cloud , a CLI gcloud ou a API REST.
Para preservar os dados dos discos SSD locais anexados a uma instância (exceto tipos de máquinas que usam SSD Titanium), interrompa a instância usando a CLI gcloud ou a API REST.
Para interromper várias instâncias simultaneamente, use o console Google Cloud ou, no caso de instâncias localizadas na mesma zona, a CLI gcloud.
Para interromper uma ou mais instâncias com discos SSD locais anexados, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Selecione as instâncias em execução que você quer interromper.
Clique em Interromper. Se não houver a opção Parar, clique em Mais ações > Parar.
Na caixa de diálogo, faça o seguinte:
Opcional: para interromper as instâncias sem um encerramento completo ou encerrar um encerramento completo em andamento, marque a caixa de seleção Pular encerramento completo (se aplicável).
Para confirmar, clique em Interromper.
gcloud
Ao interromper uma ou mais instâncias na mesma zona que têm discos SSD locais anexados, especifique se os dados do SSD local serão descartados ou preservados da seguinte maneira:
Para descartar dados do SSD local, use o comando
gcloud compute instances stopcom a flag--discard-local-ssd=true:gcloud compute instances stop INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONEPara preservar os dados do SSD local, use o comando
gcloud beta compute instances stopcom a flag--discard-local-ssd=false:gcloud beta compute instances stop INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
Substitua:
INSTANCE_NAMES: uma lista de nomes de instâncias separados por espaços. Por exemplo,instance-01 instance-02 instance-03.ZONE: a zona em que as instâncias estão localizadas.
Se você tiver ativado o encerramento completo em uma ou mais instâncias, poderá interrompê-las sem fazer isso ou encerrar um encerramento completo em andamento. Para fazer isso, use o
comando gcloud beta compute instances stop
com a flag --no-graceful-shutdown:
gcloud beta compute instances stop INSTANCE_NAMES \
--discard-local-ssd=DISCARD_LOCAL_SSD \
--no-graceful-shutdown \
--zone=ZONE
Substitua DISCARD_LOCAL_SSD por true para descartar os dados
nos discos SSD locais ou por false para preservá-los.
REST
Ao interromper uma instância que tem discos SSD locais anexados, especifique se os dados do SSD local serão descartados ou preservados da seguinte maneira:
Para descartar dados da SSD local, faça uma solicitação
POSTao métodoinstances.stop. No URL da solicitação, inclua o parâmetro de consultadiscardLocalSsddefinido comotrue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=truePara preservar os dados do SSD local, faça uma solicitação
POSTpara o métodobeta.instances.stop. No URL da solicitação, inclua o parâmetro de consultadiscardLocalSsddefinido comofalse:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=false
Substitua:
PROJECT_ID: o ID do projeto em que a instância está.ZONE: a zona em que a instância está.INSTANCE_NAME: o nome da instância.
Se você ativou o encerramento completo em uma instância, é possível
interromper a instância sem encerrá-la completamente ou encerrar manualmente um
encerramento completo em andamento. Para fazer isso, envie uma solicitação POST ao método instances.stop.
No URL da solicitação, inclua o parâmetro de consulta noGracefulShutdown=true:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?discardLocalSsd=DISCARD_LOCAL_SSD&noGracefulShutdown=true
Substitua DISCARD_LOCAL_SSD por true para descartar os dados nos discos SSD locais ou por false para preservar os dados.
Interromper uma instância no SO convidado
Se uma instância de computação tiver discos SSD locais anexados, o encerramento do SO convidado vai descartar automaticamente os dados do SSD local. Para preservar esses dados, copie-os manualmente para uma opção de armazenamento permanente antes de interromper a instância.
Para interromper uma instância no SO convidado, selecione uma das seguintes opções:
Linux
Se ainda não tiver feito isso, conecte-se à instância.
Para interromper a instância, selecione um dos seguintes métodos:
Para um encerramento limpo que permita que a instância execute scripts de encerramento antes de encerrar o SO convidado, execute o seguinte comando:
sudo shutdown -h nowCaso contrário, para forçar um encerramento, execute o seguinte comando:
sudo poweroff
Windows
Se ainda não tiver feito isso, conecte-se à instância usando um dos seguintes métodos:
Para interromper a instância, selecione um dos seguintes métodos:
Para interromper a instância corretamente e permitir que ela execute scripts de encerramento antes de desligar o SO convidado, execute o seguinte comando:
shutdown /sPara forçar um encerramento, execute o seguinte comando:
shutdown /f
Reiniciar uma instância
É possível reiniciar uma instância de computação que foi totalmente interrompida, ou seja, quando o estado da instância é TERMINATED.
Se você escolheu preservar os dados dos discos SSD locais ao interromper a instância, talvez seja necessário remontar os discos SSD locais depois de reiniciar a instância. Para mais informações sobre como ativar discos SSD locais, consulte Formatar e ativar um dispositivo SSD local.
Para reiniciar uma instância, use um dos métodos a seguir, dependendo se ela tem discos criptografados com chaves de criptografia fornecidas pelo cliente (CSEK):
Se a instância não tiver discos criptografados com CSEK anexados, consulte Reiniciar uma instância sem discos criptografados com CSEK.
Caso contrário, consulte Reiniciar uma instância com discos criptografados por CSEK.
Reiniciar uma instância sem discos criptografados por CSEK
Para reiniciar várias instâncias simultaneamente em diferentes zonas, use o console doGoogle Cloud . Para instâncias localizadas na mesma zona, use a CLI gcloud. Caso contrário, para outros cenários de reinicialização, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Selecione uma ou mais instâncias.
Clique em Iniciar / continuar .
gcloud
Para reiniciar uma ou mais instâncias na mesma zona, use o
comando gcloud compute instances start:
gcloud compute instances start INSTANCE_NAMES \
--zone=ZONE
Substitua:
INSTANCE_NAMES: uma lista de nomes de instâncias separados por espaços. Por exemplo,instance-01 instance-02 instance-03.ZONE: a zona em que as instâncias estão localizadas.
Go
Java
Node.js
PHP
Python
REST
Para reiniciar uma instância, faça uma solicitação POST para o
método instances.start:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
Substitua:
INSTANCE_NAME: o nome da instância a ser reiniciada.PROJECT_ID: o ID do projeto em que a instância está localizada.ZONE: a zona em que a instância está.
Reiniciar uma instância com discos criptografados por CSEK
Ao reiniciar uma instância de computação interrompida com discos anexados criptografados usando chaves de criptografia fornecidas pelo cliente, é necessário fornecer as informações da chave de criptografia.
Para reiniciar várias instâncias simultaneamente em diferentes zonas, use o console doGoogle Cloud . Para instâncias localizadas na mesma zona, use a CLI gcloud. Para outros cenários de reinicialização, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Selecione as instâncias que você quer reiniciar.
Clique em Iniciar / continuar .
Especifique as chaves de criptografia para cada um dos discos criptografados anexados às instâncias e clique em Iniciar.
gcloud
Para reiniciar uma ou mais instâncias que usam discos criptografados na mesma zona,
use o
comando gcloud compute instances start
com a flag --csek-key-file. Se você estiver usando uma chave incorporada por RSA, use o
comando gcloud beta compute instances start
com a flag --csek-key-file:
gcloud compute instances start INSTANCE_NAMES \
--csek-key-file=ENCRYPTION_KEY_FILE \
--zone=ZONE
Substitua:
INSTANCE_NAMES: uma lista de nomes de instâncias separados por espaços. Por exemplo,instance-01 instance-02 instance-03.ENCRYPTION_KEY_FILE: o caminho relativo para o arquivo JSON que contém a chave de criptografia fornecida pelo cliente. Só é possível reiniciar várias instâncias simultaneamente se elas usarem a mesma chave de criptografia fornecida pelo cliente. O formato do arquivo é descrito em Formato do arquivo de chave.ZONE: a zona em que as instâncias estão localizadas.
Go
Java
Node.js
PHP
Python
REST
Para reiniciar uma instância que usa discos criptografados, faça uma solicitação POST para o
método
instances.startWithEncryptionKey:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey
{
"disks": [
{
"source": "DISK_URL",
"diskEncryptionKey": {
"ENCRYPTION_TYPE": "ENCRYPTION_KEY"
}
}
]
}
Substitua:
PROJECT_ID: o ID do projeto em que a instância está.ZONE: a zona em que a instância está.INSTANCE_NAME: o nome da instância.DISK_URL: o URL do recurso correspondente ao nome completo do recurso do disco anexado, criptografado com uma chave de criptografia fornecida pelo clienteENCRYPTION_TYPE: o tipo de criptografia de disco que você está usando, que pode ser uma das seguintes opções:rawKey,kmsKeyNameoursaEncryptedKey. Se você usar o tiporsaEncryptedKey, faça uma solicitaçãoPOSTao métodobeta.instances.startWithEncryptionKey.ENCRYPTION_KEY: a chave de criptografia usada para criptografar os discos permanentes anexados à instância. As chavesrawKeyoursaEncryptedKeyprecisam ser codificadas em base64. Além disso, para preparar umarsaEncryptedKeyChave RSA, consulte Encapsulamento de chaves por RSA.