Consultar y aplicar recomendaciones de VM inactivas

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Compute Engine proporciona recomendaciones de VM inactivas para ayudarte a identificar las instancias de máquina virtual (VM) que no se usaron. Estas recomendaciones se generan automáticamente en función de las métricas del sistema recopiladas por el servicio de Cloud Monitoring en los últimos 14 días. Puedes usar las recomendaciones de VM inactivas para encontrar y detener instancias de VM inactivas a fin de reducir el desperdicio de recursos y la factura de procesamiento.

Antes de comenzar

Precios

Las recomendaciones de VM inactivas están disponibles de forma gratuita.

Limitaciones

En el caso de las VM independientes, las recomendaciones de inactividad no están disponibles en los siguientes casos:

  • Instancias con SSD locales
  • Instancias con GPU/TPU
  • Recursos flexibles de App Engine
  • Recursos de Dataflow
  • Recursos de Google Kubernetes Engine

Visualiza las recomendaciones para instancias de VM inactivas

A fin de ver las recomendaciones para las VM inactivas, usa la CLI de gcloud o la API.

gcloud

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:


---
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.

API

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.

La siguiente secuencia de comandos de Bash de ejemplo usa un token de acceso que muestran las credenciales predeterminadas de la aplicación para una solicitud curl. A fin de obtener información sobre la configuración de las credenciales predeterminadas de la aplicación, consulta Proporciona las credenciales predeterminadas de la aplicación.

PROJECT_ID=my-project
ZONE=us-central1-c
RECOMMENDER_ID=google.compute.instance.IdleResourceRecommender

curl -H "Authorization: Bearer $(gcloud auth application-default 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:

  1. 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"
     }
    
  2. 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 Google Cloud Console, 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.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona la instancia que deseas detener.
  3. Haz clic en Detener.

gcloud

Usa el comando instances stop y especifica el VM_NAME que deseas detener.

gcloud compute instances stop VM_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.

API

En la API, 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.

Cómo funciona la detección de instancias de VM inactivas

Compute Engine genera recomendaciones sobre las instancias de VM inactivas en función de las métricas de uso de los últimos 14 días o, para las VM nuevas, 5 días después de su creación. Si el uso de la CPU y la red fue bajo durante el período observado, el Recomendador clasifica la VM como inactiva.

Para clasificar una VM como inactiva, se deben cumplir las siguientes condiciones:

  • El uso de la CPU es inferior a 0.03 CPU virtuales para el 97% del tiempo de ejecución de la VM.
  • El tráfico de red recibido es inferior a 2,600 bytes por segundo (B/s) para el 95% del tiempo de ejecución de la VM.
  • El tráfico de red enviado es inferior a 1,000 B/s durante el 95% del tiempo de ejecución de la VM.

Frecuencia de las recomendaciones

En un principio, las recomendaciones de VM inactivas se generan después de que se crea una VM y se ejecuta durante 5 días. Luego de eso, las recomendaciones se actualizan al menos una vez al día.

Relación con las recomendaciones de tipos de máquinas

Las recomendaciones de tipo de máquina recomiendan el tamaño óptimo para una VM. Es posible que recibas una recomendación de tipo de máquina para reducir el tamaño de una VM inactiva.

Si debes mantener una VM inactiva en ejecución a pesar de su bajo uso, aplica las recomendaciones de tipo de máquina para ayudarte a elegir el tamaño óptimo.

¿Qué sigue?