Visualizzare e applicare i consigli per le VM inattive


Questa pagina descrive come utilizzare i consigli per le VM inutilizzate per identificare e interrompere le istanze VM inutilizzate al fine di ridurre lo spreco di risorse e la fattura per il calcolo nei tuoi progetti.

Prima di iniziare

  • Esamina le limitazioni per verificare se la tua VM supporta i suggerimenti per le VM inattive.
  • Se non l'hai ancora fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Prezzi

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

Visualizzazione dei suggerimenti per le istanze VM inattive

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

gcloud

Utilizza la 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 non sono presenti VM inattive nella località, la risposta è vuota. In caso contrario, la risposta include i seguenti campi per ogni consiglio:


---
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 mediante gcloud in Esempi di gcloud.

REST

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

  • google.compute.instance.IdleResourceRecommender

La chiamata API ha questo 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 contenente le istanze per le quali elencare i consigli.

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 per 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 ogni campo nel Documentazione dell'API Recommender.

Interpretazione della risposta al consiglio

Ogni consiglio che ricevi tramite la CLI gcloud o REST contiene un gruppo di operazioni, con operazioni che puoi eseguire in serie per applicare il consiglio. Suggerimento per VM inattiva I gruppi operativi comprendono due operazioni:

  1. Un'operazione di prova per verificare lo stato 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 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 è un test, il che significa che devi verificare che il valore resource sia ancora RUNNING. A tale scopo, procedi nel seguente modo: controllando lo stato della VM.

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

Applicazione dei suggerimenti per le VM inattive

Dopo aver ricevuto un suggerimento per le VM inattive e decidi che non per utilizzare l'istanza, utilizza la console Google Cloud gcloud CLI, oppure REST per arrestare ed eliminare, facoltativamente l'istanza.

Se interrompi, ma non elimini un'istanza e i relativi dischi, dovrai comunque pagare i 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

Utilizzare il comando instances stop e specifica il VM_NAME che vuoi interrompere.

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 che ti interessa per interrompere

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 contenente l'istanza che vuoi interrompere
  • VM_NAME: il nome dell'istanza VM che vuoi arrestare

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

Passaggi successivi