En esta página, se describe cómo puedes usar las recomendaciones de VMs inactivas para identificar y detener instancias de VMs inactivas a fin de reducir el desperdicio de recursos y la factura de procesamiento en los proyectos.
- Para obtener más información sobre cómo Compute Engine genera recomendaciones de VMs inactivas, consulta Cómo funciona la detección de instancias de VMs inactivas.
- Para obtener más información sobre cómo configurar el recomendador de VMs inactivas para recibir más o menos recomendaciones, consulta Configura las recomendaciones de VMs inactivas.
Antes de comenzar
- Revisa las limitaciones para verificar si tu VM admite recomendaciones de VMs inactivas.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud .
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
-
Precios
Las recomendaciones de VM inactivas están disponibles sin coste. El uso de recomendaciones para reducir el uso de recursos puede generar ahorros de costos.
Visualiza las recomendaciones para instancias de VM inactivas
Para ver las recomendaciones para las VMs inactivas, usa gcloud CLI o REST.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
recommender.computeInstanceIdleResourceRecommendations.list
en el proyecto
Usa el comando gcloud recommender recommendations list
con --recommender=google.compute.instance.IdleResourceRecommender
:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=ZONE \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto.ZONE
: Es la zona que contiene instancias para enumerar las recomendaciones.
Por ejemplo:
gcloud recommender recommendations list \ --project=my-project \ --location=us-central1-c \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
Si no hay VM inactivas en la ubicación, la respuesta está vacía. De lo contrario, la respuesta incluye los siguientes campos para cada recomendación:
operationGroups
: Grupos de operaciones que puedes realizar en serie para aplicar la recomendacióndescription
: Una explicación legible de la recomendación
---
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
Obtén más información sobre cómo trabajar con recomendaciones mediante gcloud en ejemplos de gcloud.
Llama al método recommendations.list
y usa el siguiente tipo de recomendación:
- google.compute.instance.IdleResourceRecommender
La llamada a la API se ve de la siguiente manera:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/ZONE /recommenders/google.compute.instance.IdleResourceRecommender/recommendations
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto.ZONE
: Es la zona que contiene instancias para enumerar las recomendaciones.
En el siguiente ejemplo, se muestra cómo enviar una solicitud con curl
y
la respuesta de muestra asociada.
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
Ejemplo de respuesta JSON para una recomendación de VM inactiva:
{
"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"
}
Puedes encontrar más detalles sobre cada campo en la documentación de la API de recomendador.
Interpreta la respuesta de las recomendaciones
Cada recomendación que recibes a través de la CLI de gcloud o la API contiene un grupo de operaciones, algunas de las cuales puedes realizar en serie para aplicar la recomendación. Los grupos de operaciones de recomendación de VM inactiva incluyen dos operaciones:
Una operación de prueba para verificar el
status
actual de la VM. Por ejemplo:{ "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" }
Una operación de reemplazo para cambiar el
status
de la VM. Por ejemplo:{ "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" }
La primera operación es una test
, lo que significa que debes probar si el resource
todavía está RUNNING
. Para ello, verifica el estado de la VM.
La segunda operación, replace
, significa que debes reemplazar el status
del recurso con un valor nuevo, TERMINATED
. Para ello, detén la VM, como se describe a continuación.
Aplica las recomendaciones de VM inactivas
Después de recibir una recomendación de VM inactiva y decidir que ya no necesitas la instancia, usa la consola de Google Cloud, la CLI de gcloud, o la API para detener y, de forma opcional, borrar la instancia.
Si detienes una instancia y sus discos, pero no los borras, seguirás pagando por ellos.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instances.stop
en la instancia para detenerlacompute.instances.delete
en la instancia para borrarla
- En la consola de Google Cloud, ve a la página Instancias de VM.
- Selecciona la instancia que deseas detener.
- Haz clic en Detener.
Usa el comando instances stop
y especifica el VM_NAME
que deseas detener.
gcloud compute instances stopVM_NAME --zone=ZONE
Reemplaza lo siguiente:
VM_NAME
: Es el nombre de la instancia de VM que deseas detener.ZONE
: Es la zona que contiene la instancia que deseas detener.
Crea una solicitud POST
para detener una instancia.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances/VM_NAME /stop
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto.ZONE
: Es la zona que contiene la instancia que deseas detener.VM_NAME
: Es el nombre de la instancia de VM que deseas detener.
Si estás seguro de que la instancia de VM y sus discos se pueden quitar, puedes borrar la instancia.
¿Qué sigue?
- Obtén más información sobre cómo detener, restablecer y borrar una instancia de VM afecta la instancia y los recursos.
- Obtén más información para configurar las recomendaciones de VMs inactivas.