Visualizza e applica i suggerimenti per le VM inattive

Questa pagina descrive come utilizzare i suggerimenti sulle VM inattive per identificare e arrestare le istanze VM inattive al fine di ridurre lo spreco di risorse e i costi di elaborazione per i progetti.

Prima di iniziare

  • Esamina le limitazioni per verificare se la tua VM supporta i suggerimenti relativi alle VM inattive.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Prezzi

I suggerimenti sulle VM inattive sono disponibili senza costi aggiuntivi. L'utilizzo dei suggerimenti per ridurre l'utilizzo delle risorse può comportare risparmi sui costi.

Visualizzazione dei suggerimenti per le istanze VM inattive

Per visualizzare i suggerimenti sulle VM inattive, utilizza gcloud CLI o REST.

gcloud

Utilizza il 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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto
  • ZONE: la zona che contiene istanze per elencare i suggerimenti

Ad esempio:

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

Se nella località non sono presenti VM inattive, la risposta è vuota. In caso contrario, la risposta include i seguenti campi per ogni suggerimento:


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

Scopri di più sull'utilizzo dei suggerimenti utilizzando gcloud negli esempi di gcloud.

REST

Richiama il metodo recommendations.list e utilizza il seguente tipo di consiglio:

  • google.compute.instance.IdleResourceRecommender

La chiamata API ha il seguente aspetto:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/recommendations

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto.
  • ZONE: la zona che contiene istanze per cui elencare i suggerimenti.

L'esempio seguente mostra come inviare una richiesta con curl e la risposta di esempio associata.

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

Esempio di risposta JSON per un suggerimento relativo a una VM inattiva:

{
"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"
}

Puoi trovare ulteriori dettagli su ciascun campo nella documentazione relativa all'API Recommender.

Interpretazione della risposta al consiglio

Ogni suggerimento che ricevi tramite REST o gcloud CLI contiene un gruppo operazioni con operazioni che puoi eseguire in serie per applicare il suggerimento. I gruppi operativi per suggerimenti sulle VM inattive includono due operazioni:

  1. Un'operazione di test per verificare l'attuale status della VM. Ad esempio:

     {
       "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. Un'operazione di sostituzione per modificare il valore status della VM. Ad esempio:

     {
       "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 prima operazione è di tipo test, il che significa che devi verificare che resource sia ancora RUNNING. Puoi farlo controllando lo stato della VM.

La seconda operazione, replace, indica che devi sostituire il valore status della risorsa con un nuovo valore, TERMINATED. Puoi farlo arrestando la VM, come descritto di seguito.

Applicazione dei suggerimenti sulle VM inattive

Dopo aver ricevuto un suggerimento per una VM inattiva e aver deciso che l'istanza non è più necessaria, utilizza la console Google Cloud, gcloud CLI o REST per arrestare ed eliminare l'istanza, se vuoi.

Se arresti un'istanza e i relativi dischi senza eliminarli, paghi comunque per i relativi dischi.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Seleziona l'istanza che vuoi arrestare.
  3. Fai clic su Arresta.

gcloud

Utilizza il comando instances stop e specifica l'elemento VM_NAME che vuoi arrestare.

gcloud compute instances stop VM_NAME --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome dell'istanza VM che vuoi arrestare
  • ZONE: la zona che contiene l'istanza da arrestare

REST

Crea una richiesta POST per arrestare un'istanza.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto
  • ZONE: la zona che contiene l'istanza da arrestare
  • VM_NAME: il nome dell'istanza VM che vuoi arrestare

Se hai la certezza che l'istanza VM e i relativi dischi possano essere rimossi, puoi eliminare l'istanza.

Passaggi successivi