Nesta página, descrevemos como usar recomendações de VMs inativas para identificar e interromper instâncias de VM inativas para minimizar o desperdício de recursos e reduzir sua conta de computação nos projetos.
- Para mais informações sobre como o Compute Engine gera recomendações de VMs inativas, consulte Como funciona a detecção de instâncias de VM inativas.
- Para mais informações sobre como configurar o Recomendador de VMs inativas para receber mais ou menos recomendações, consulte Configurar recomendações de VMs inativas.
Antes de começar
- Analise as limitações para verificar se a VM é compatível com recomendações de VMs inativas.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da 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 da seguinte maneira.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Preços
As recomendações de VM inativas estão disponíveis gratuitamente. Usar recomendações para reduzir o uso de recursos pode resultar em economia de custos.
Como visualizar recomendações de instância de VM inativa
Para visualizar recomendações sobre VMs inativas, use a CLI gcloud ou o REST.
gcloud
Use o comando gcloud recommender recommendations list
com --recommender=google.compute.instance.IdleResourceRecommender
:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=ZONE \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
Substitua:
PROJECT_ID
: ID do projetoZONE
: zona que contém as instâncias para listar as recomendações
Exemplo:
gcloud recommender recommendations list \ --project=my-project \ --location=us-central1-c \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
Se não houver VMs inativas no local, a resposta será vazia. Caso contrário, a resposta incluirá os seguintes campos para cada recomendação:
operationGroups
: grupos de operações que podem ser executadas em série para aplicar a recomendaçãodescription
: uma explicação legível da recomendação
---
content:
...
operationGroups:
- operations:
- action: test
path: /status
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
resourceType: compute.googleapis.com/Instance
value: RUNNING
- action: replace
path: /status
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
resourceType: compute.googleapis.com/Instance
value: TERMINATED
description: Save cost by stopping Idle VM 'vm-name'.
etag: '"83da314c23f634e1"'
lastRefreshTime: '2020-02-24T07:56:40Z'
name: projects/141732092341/locations/us-central1-c/recommenders/google.compute.instance.IdleResourceRecommender/recommendations/0e061a3a-f921-4216-b1b4-62e16942cd1a
primaryImpact:
category: COST
costProjection:
cost:
currencyCode: USD
nanos: -91533961
units: '-262'
duration: 2592000s
recommenderSubtype: STOP_VM
stateInfo:
state: ACTIVE
Saiba mais sobre como trabalhar com recomendações usando o gcloud em exemplos do gcloud.
REST
Chame o método recommendations.list
e use o seguinte tipo de recomendação:
- google.compute.instance.IdleResourceRecommender
A chamada da API tem esta aparência:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/recommendations
Substitua:
PROJECT_ID
: ID do projeto.ZONE
: a zona que contém as instâncias que receberão a lista de recomendações.
O exemplo a seguir mostra o envio de uma solicitação com curl
e a amostra de resposta associada.
PROJECT_ID=my-project ZONE=us-central1-c RECOMMENDER_ID=google.compute.instance.IdleResourceRecommender curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: $PROJECT_ID" \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/$RECOMMENDER_ID/recommendations
Exemplo de resposta JSON para uma recomendação de VM inativa:
{
"description" : "Save cost by stopping Idle VM `vm-name`",
"name": "projects/1574864402/locations/us-central1-c/recommenders/"
"google.compute.instance.IdleResourceRecommender/"
"recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1",
"lastRefreshTime": {
"seconds": 1543912652
},
"primaryImpact": {
"category": COST,
"costProjection": {
"cost": {"currencyCode": "USD", "units": -50},
"duration": { "seconds": 2592000 }
}
},
"stateInfo": ACTIVE,
"content":
"groups" : [
{
"operations" : [
{
"action": "test",
"resourceType": "compute.googleapis.com/Instance",
"resource": "//compute.googleapis.com/projects/my-project/"
"zones/us-central1-c/instances/vm-name",
"path": "/status",
"value": "RUNNING"
},
{
"action": "replace",
"resourceType": "compute.googleapis.com/Instance",
"resource": "//compute.googleapis.com/projects/my-project/"
"zones/us-central1-c/instances/vm-name",
"path": "/status",
"value": "TERMINATED"
}
]
}
]
},
"etag" : "cb0e6ac2cfc0b591"
}
Encontre mais detalhes sobre cada campo na documentação da API Recommender.
Como interpretar a resposta da recomendação
Cada recomendação recebida por meio da CLI gcloud ou da REST contém um grupo de operações, com operações que podem ser executadas em série para aplicar a recomendação. Os grupos de operações de recomendação de VM inativa incluem duas operações:
Uma operação de teste para verificar o
status
atual da VM. Exemplo:{ "action": "test", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name", "path": "/status", "value": "RUNNING" }
Uma operação de substituição para alterar o
status
da VM. Exemplo:{ "action": "replace", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name", "path": "/status", "value": "TERMINATED" }
A primeira operação é um test
, o que significa que você precisa testar se o resource
ainda é RUNNING
. Para fazer isso, verifique o estado da VM.
A segunda operação, replace
, significa que você precisa substituir o status
do recurso por um novo valor, TERMINATED
. Para fazer isso, interrompa a VM, que é descrita abaixo.
Como aplicar recomendações de VM inativas
Depois de receber uma recomendação de VM inativa e decidir que não precisa mais da instância, use o console do Google Cloud, a CLI gcloud ou a REST para interromper e, opcionalmente, excluir a instância.
Se você interromper, mas não excluir uma instância e os discos dela, ainda pagará pelos discos.
Console
- No console do Google Cloud, acesse a página Instâncias de VMs.
- Selecione a instância que você quer interromper.
- Clique em Interromper.
gcloud
Use o comando instances stop
e especifique o VM_NAME
que você quer interromper.
gcloud compute instances stop VM_NAME --zone=ZONE
Substitua:
VM_NAME
: o nome da instância de VM que você quer pararZONE
: a zona que contém a instância que você quer parar
REST
Crie uma solicitação POST
para interromper uma instância.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Substitua:
PROJECT_ID
: ID do projetoZONE
: a zona que contém a instância que você quer pararVM_NAME
: o nome da instância de VM que você quer parar
Se você tiver certeza de que a instância da VM e os discos dela podem ser removidos, exclua a instância.
A seguir
- Saiba mais sobre como interromper, redefinir e excluir uma instância de VM afeta a instância e os recursos dela.
- Saiba como configurar recomendações de VMs inativas.