Consulta y aplica recomendaciones de recursos inactivos

Compute Engine proporciona recomendaciones para identificar recursos que no se usan, como discos persistentes (PD), imágenes de disco personalizadas y direcciones IP. Puedes usar recomendaciones de recursos inactivos para minimizar el desperdicio de recursos y reducir la factura de procesamiento. Para los PD que no se usan de forma activa, puedes crear una instantánea de copia de seguridad y borrar el recurso. Puedes borrar PD, imágenes y direcciones IP que no usas si no los necesitas.

Si te interesan las recomendaciones de VM inactivas, lee Consulta y aplica recomendaciones de VM inactivas.

Antes de comenzar

Precios

Las recomendaciones de recursos inactivos están disponibles de forma gratuita.

Generación de recomendaciones

Si no se vinculó un recurso a una VM o a algún otro recurso durante 15 días, el recomendador clasifica ese recurso como inactivo.

Se debe cumplir una de las siguientes condiciones para clasificar un recurso como inactivo y generar la acción recomendada correspondiente:

Recurso Condición para que el recurso se clasifique como inactivo Acción recomendada Ahorros
PD Se creó hace al menos 15 días,
nunca se conectó a una VM Y
está en blanco
Borrarlo Se ahorra el 100% del costo de ese disco (consulta Precios de discos)
PD Estuvo desconectado durante al menos 15 días Crear una instantánea y borrarlo Se reduce el costo de mantenimiento de ese disco entre un 35% y un 92% (consulta Precios de discos)
Imagen personalizada No se usó para crear un disco durante al menos 15 días Y no se usó en ninguna plantilla de instancias Borrarla Se ahorra el 100% del costo de esa imagen (consulta Precios de imágenes)
Dirección IP No se vinculó a ningún recurso durante al menos 15 días Borrarla Se ahorra el 100% del costo de esa dirección IP (consulta Precios de IP)

Frecuencia de recomendaciones

Las recomendaciones de recursos inactivos comienzan 15 días después de la creación de recursos y se actualizan una vez cada 24 horas.

Visualiza las recomendaciones

Para ver recomendaciones sobre recursos inactivos, usa la herramienta de gcloud o la API.

Console

En Console, ve a la página Recomendaciones.

Ir a Recomendaciones

Todos los recursos inactivos se muestran en la sección Recursos de Compute Engine sin usar.

gcloud

Usa el comando gcloud recommender recommendations list con la marca --recommender=RECOMMENDER_ID:

gcloud recommender recommendations list \
    --project=PROJECT_ID \
    --location=LOCATION \
    --recommender=RECOMMENDER_ID \
    --format=yaml

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación que contiene los recursos para los que deseas obtener recomendaciones.
    • Para los PD, especifica una zona o región, por ejemplo, us-central1-c.
    • Para las IP, especifica una región o global.
    • Para las imágenes personalizadas, especifica global.
  • RECOMMENDER_ID: Es el ID del recomendador.
    • Para los discos, especifica google.compute.disk.IdleResourceRecommender.
    • Para las imágenes, especifica google.compute.image.IdleResourceRecommender.
    • Para las IP, especifica google.compute.address.IdleResourceRecommender.

Por ejemplo, el siguiente comando enumera las recomendaciones de PD inactivos en us-central1-c para my-project:

gcloud recommender recommendations list \
    --project=test-project \
    --location=us-central1-c \
    --recommender=google.compute.disk.IdleResourceRecommender \
    --format=yaml


---
content:
    operationGroups:
    - operations:
      - action: add
        resource: //compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name
        resourceType: compute.googleapis.com/Disk
        path: /
        value:
        - name: $snapshot-name
          sourceDisk: projects/test-project/locations/us-central1-c/disks/pd-name
          storageLocations: us-central1
      - action: remove
        resource: //compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name
        resourceType: compute.googleapis.com/Disk
        path: /
description: Save cost by snapshotting and then deleting idle persistent disk 'pd-name'
name: projects/test-project/locations/us-central1-c/recommenders/google.compute.disk.IdleResourceRecommender/recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1
recommenderSubtype: SNAPSHOT_AND_DELETE_DISK
lastRefreshTime:
  seconds: 1543912652
primaryImpact:
  category: COST
  costProjection:
    cost:
      currencyCode: USD
      units: '-50'
    duration:
      seconds: 2592000
stateInfo: ACTIVE
etag: "cb0e6ac2cfc0b591"

Obtén más información sobre cómo usar la herramienta gcloud para trabajar con recomendaciones.

API

Llama al método recommendations.list y especifica el ID del recomendador, por ejemplo google.compute.disk.IdleResourceRecommender:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación que contiene los recursos para los que deseas obtener recomendaciones.
    • Para los PD, especifica una zona o región, por ejemplo, us-central1-c.
    • Para las IP, especifica una región o global.
    • Para las imágenes personalizadas, especifica global.
  • RECOMMENDER_ID: Es el ID del recomendador.
    • Para los discos, especifica google.compute.disk.IdleResourceRecommender.
    • Para las imágenes, especifica google.compute.image.IdleResourceRecommender.
    • Para las IP, especifica google.compute.address.IdleResourceRecommender.

Si todavía no estás familiarizado con los requisitos de autenticación para realizar llamadas a las API de Google Cloud, consulta Descripción general de la autenticación.

En la siguiente secuencia de comandos de Bash de ejemplo, se usa el flujo de autenticación de usuario final con una credencial de cliente OAuth. En la secuencia de comandos, se usa la herramienta de línea de comandos Google oauth2l para obtener un token de acceso de OAuth 2.0 y, luego, se realiza una solicitud curl mediante el token.

PROJECT_ID=test-project
LOCATION=us-central1-c
RECOMMENDER=google.compute.disk.IdleResourceRecommender
OAUTH_JSON=~/service-account.json
OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"

curl -H "$OAUTH_HEADER" https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/google.compute.disk.IdleResourceRecommender/recommendations

Ejemplo de respuesta JSON para recomendaciones de PD inactivos:

{
 "description" : "Save cost by deleting idle persistent disk 'pd-name'",
 "name": "projects/test-project/locations/us-central1-c/recommenders/"
         "google.compute.disk.IdleResourceRecommender/"
         "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1",
 "recommenderSubtype" : "SNAPSHOT_AND_DELETE_DISK",
 "lastRefreshTime": {
   "seconds": 1543912652
 },
 "primaryImpact": {
   "category": COST,
   "costProjection": {
    "cost": {"currencyCode": "USD", "units": -50},
    "duration": { "seconds": 2592000 }
   }
 },
 "stateInfo": ACTIVE,
 "content": {
   "operationGroups" : [
    {
      "operations" : [
       {
         "action": "add",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name",
         "value": {
           "name": "$snapshot-name",
           "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name",
           "storageLocations": ["us-central1"],
         }
       },
       {
         "action": "remove",
         "resourceType": "compute.googleapis/Disk",
         "resource": "//compute.googleapis.com/projects/test-project/"
                     "zones/us-central1-c/disks/pd-name"
       }
      ]
    }
   ]
 },
 "associatedInsights": [
    {
      "insight": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/31326443-bcc3-4776-9b86-48879fddb656"
    }
  ],
 "etag": "cb0e6ac2cfc0b591"
}

Interpreta la respuesta de las recomendaciones

Cada recomendación que recibes a través de la herramienta de gcloud o de la API contiene grupos de operaciones, con operaciones que puedes realizar en serie para aplicar la recomendación. Por ejemplo, los grupos de operaciones de recomendación de PD inactivos incluyen una o dos operaciones:

  • Si el PD inactivo tiene datos, la recomendación incluye una operación add para crear una instantánea a fin de realizar una copia de seguridad del PD. Por ejemplo:

       {
         "action": "add",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name",
         "path": "/",
         "value": {
           "name": "$snapshot-name",
           "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name",
           "storageLocations": ["us-central1"]
         }
       }
    
  • Una operación remove para borrar el PD inactivo de forma permanente. Por ejemplo:

       {
         "action": "remove",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name",
         "path": "/"
       }
    

Consulta Aplica recomendaciones de PD inactivos para crear una instantánea y borrar un PD, Borra las IP inactivas a fin de quitar las direcciones IP que no se usan y Borra imágenes personalizadas inactivas si deseas quitar las imágenes de disco personalizadas que no se usan.

Visualiza las estadísticas de las recomendaciones de recursos inactivos

El recomendador genera recomendaciones en función de las estadísticas de los recursos. Cuando visualizas estadísticas sobre los recursos, puedes obtener más información acerca de estos, como cuánto tiempo se desvinculó un recurso de una VM o si un PD está en blanco.

Si deseas ver las estadísticas que generó la recomendación, puedes usar la API o la herramienta de gcloud.

gcloud

Usa el comando insights list

gcloud beta recommender insights list --project=PROJECT_NAME \
  --location=LOCATION --insight-type=INSIGHT_TYPE

Reemplaza lo siguiente:

  • LOCATION: Es la ubicación que contiene los recursos para los que deseas obtener estadísticas.
    • Para los PD, especifica una zona o región, por ejemplo, us-central1-c.
    • Para las IP, especifica una región o global.
    • Para las imágenes personalizadas, especifica global.
  • INSIGHT_TYPE: Es el ID del tipo de estadísticas.
    • Para los discos, especifica google.compute.disk.IdleResourceInsight.
    • Para las imágenes, especifica google.compute.image.IdleResourceInsight.
    • Para las IP, especifica google.compute.address.IdleResourceInsight.

API

Usa el método insights.list.

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/insightTypes/INSIGHT_TYPE/insights

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la ubicación que contiene los recursos para los que deseas obtener estadísticas.
    • Para los PD, especifica una zona o región, por ejemplo, us-central1-c.
    • Para las IP, especifica una región o global.
    • Para las imágenes personalizadas, especifica global.
  • INSIGHT_TYPE: Es el ID del tipo de estadísticas.
    • Para los discos, especifica google.compute.disk.IdleResourceInsight.
    • Para las imágenes, especifica google.compute.image.IdleResourceInsight.
    • Para las IP, especifica google.compute.address.IdleResourceInsight.

A continuación, se muestra un ejemplo de respuesta de una estadística en un recurso de PD inactivo:

{
  "name": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/0ec21a13-bb04-3121-7321-dc43a11cc3e2",
  "description": "Disk 'pd-name' in zone 'us-central1-c' was last used 17 days ago. Consider taking snapshot and delete it.",
  "targetResources": [
    "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name"
  ],
  "insightSubtype": "IDLE_DISK",
  "content": {
    "diskLastUseTime": "2019-10-01 13:00:00",
    "isBlank": false,
  },
  "lastRefreshTime": "2019-10-10 13:00:00",
  "observationPeriod": "15 days",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "COST",
  "etag": "fds421j2349",
  "associatedRecommendations": [
    {
      "projects/test-project/locations/us-central1-c/recommenders/"
      "google.compute.disk.IdleResourceRecommender/"
      "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1"
    }
  ]
}

La respuesta de ejemplo incluye los siguientes campos:

  • diskLastUseTime: Es la última vez que se conectó el disco a una VM. Si el disco nunca se conectó a una VM, se establece en la hora de creación del disco.
  • isBlank: Este campo se establece en true si el disco está en blanco y nunca se conectó a la VM. De lo contrario, es false.

Para obtener más información sobre las estadísticas, consulta los documentos de referencia.

Aplica las recomendaciones de recursos inactivos

Sigue las instrucciones que se encuentran a continuación si recibes una recomendación sobre un recurso inactivo y decides seguirla.

Borra la dirección IP inactiva

Consulta la documentación sobre el método addresses.delete, el comando gcloud compute addresses delete o la página Libera una dirección IP externa estática.

Borra las imágenes personalizadas inactivas

Consulta la documentación sobre el método images.delete, el comando gcloud compute images delete o la página Borra una imagen.

Aplica recomendaciones de PD inactivos

Si necesitas crear una instantánea de un PD antes de borrarlo, consulta Crea instantáneas de discos persistentes.

Para borrar un PD inactivo, consulta el comando gcloud compute disks delete.

Para obtener información sobre cómo recuperar datos de una instantánea y volver a crear un PD, consulta Restablece instantáneas de discos persistentes.