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.
Com isso, você confirma sua identidade para acesso a Google Cloud serviços e APIs do. Para executar
código ou amostras de um ambiente de desenvolvimento local, faça a autenticação no
Compute Engine selecionando uma destas opções:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o Google Cloud console para acessar Google Cloud serviços e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a Google Cloud CLI. 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.
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 Google Cloud CLI.
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 .
Preços
As recomendações de VM inativas estão disponíveis sem custo financeiro. 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
statusatual 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
statusda 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 Google Cloud console, 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 VM.
- Selecione a instância que você quer interromper.
- Clique em Parar para interromper a VM. Se não houver a opção Parar, clique em Mais ações > Parar.
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.