Visualizza e applica i suggerimenti per le VM inattive

Questa pagina descrive come utilizzare i suggerimenti per le VM inattive al fine di identificare e interrompere le istanze di VM inattive per ridurre lo spreco di risorse e abbassare l'importo della fattura per il computing 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. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

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

    Console

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

    gcloud

    1. Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:

      gcloud init
    2. Set a default region and zone.

    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.

      Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:

      gcloud init

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .

Prezzi

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

Visualizzazione di suggerimenti per 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 le istanze per le quali si desidera ottenere l'elenco di 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 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 consigli con gcloud negli esempi di gcloud.

REST

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

  • 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 le istanze per le quali si desidera ottenere l'elenco di 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 di 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 nella documentazione dell'API Recommender.

Interpretazione della risposta del suggerimento

Ogni suggerimento che ricevi tramite gcloud CLI o REST contiene un gruppo di operazioni, con operazioni che puoi eseguire in serie per applicare il suggerimento. I gruppi di operazioni di suggerimenti per le 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 lo 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, pertanto devi verificare che resource sia ancora RUNNING. Per farlo, controlla lo stato della VM.

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

Applicazione dei suggerimenti per VM inattive

Dopo aver ricevuto un suggerimento per una VM inattiva e aver deciso di non avere più bisogno dell'istanza, utilizza Trusted Cloud console, la gcloud CLI o REST per arrestare e, facoltativamente, eliminare l'istanza.

Se arresti un'istanza e i relativi dischi, ma non li elimini, dovrai comunque pagare per i dischi.

Console

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

    Vai alla pagina Istanze VM

  2. Seleziona l'istanza che vuoi arrestare.
  3. Fai clic su Arresta per arrestare la VM. Se non è presente l'opzione Arresta, fai clic su Altre azioni > Arresta.

gcloud

Utilizza il comando instances stop e specifica il 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 contenente l'istanza che vuoi 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 contenente l'istanza che vuoi 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