Empfehlungen für inaktive VMs ansehen und anwenden


Auf dieser Seite wird beschrieben, wie Sie die Empfehlungen zu inaktiven VMs verwenden, um inaktive VM-Instanzen zu identifizieren und zu beenden, um Ressourcenverschwendung zu reduzieren und die Kosten für die Rechenleistung bei Ihren Projekten zu reduzieren.

Hinweise

  • Prüfen Sie die Einschränkungen, um zu prüfen, ob Ihre VM Empfehlungen zu inaktiven VMs unterstützt.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    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

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

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

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Preise

Empfehlungen für inaktive VMs sind kostenlos verfügbar. Die Verwendung von Empfehlungen zur Reduzierung der Ressourcennutzung kann zu Kosteneinsparungen führen.

Empfehlungen für inaktive VM-Instanzen ansehen

Verwenden Sie die gcloud CLI oder REST, um Empfehlungen zu inaktiven VMs aufzurufen.

gcloud

Verwenden Sie den Befehl gcloud recommender recommendations list mit --recommender=google.compute.instance.IdleResourceRecommender:

gcloud recommender recommendations list \
  --project=PROJECT_ID \
  --location=ZONE \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --format=yaml

Dabei gilt:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone mit den Instanzen, für die Empfehlungen aufgelistet werden sollen

Beispiel:

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

Wenn am Standort keine inaktiven VMs vorhanden sind, ist die Antwort leer. Andernfalls enthält die Antwort für jede Empfehlung die folgenden Felder:


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

Weitere Informationen zur Verwendung von Empfehlungen mit gcloud finden Sie unter gcloud-Beispiele.

REST

Rufen Sie die Methode recommendations.list auf und verwenden Sie den folgenden Empfehlungstyp:

  • google.compute.instance.IdleResourceRecommender

Der API-Aufruf sieht etwa so aus:

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

Dabei gilt:

  • PROJECT_ID: die Projekt-ID.
  • ZONE: die Zone mit den Instanzen, für die Empfehlungen aufgelistet werden sollen.

Das folgende Beispiel zeigt, wie Sie eine Anfrage mit curl und der zugehörigen Beispielantwort senden.

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

Beispiel einer JSON-Antwort für eine Empfehlung zu einer inaktiven VM:

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

Weitere Informationen zu den einzelnen Feldern finden Sie in der Dokumentation zur Recommender API.

Empfehlungen zu inaktiven VMs verstehen

Jede Empfehlung, die Sie über die gcloud CLI oder REST erhalten, enthält eine Vorgangsgruppe mit Vorgängen, die Sie nacheinander ausführen können, um die Empfehlung anzuwenden. Vorgangsgruppen von Empfehlungen für inaktive VMs umfassen zwei Vorgänge:

  1. Einen Testvorgang zum Prüfen des aktuellen status der VM. Beispiel:

     {
       "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. Einen Ersetzungsvorgang zum Ändern des status der VM. Beispiel:

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

Beim ersten Vorgang (test) wird getestet, ob resource weiterhin RUNNING ist. Prüfen Sie dazu den VM-Status.

Beim zweiten Vorgang (replace) wird der status der Ressource durch den neuen Wert TERMINATED ersetzt. Dies erreichen Sie, indem Sie die VM wie unten beschrieben beenden.

Empfehlungen zu inaktiven VMs anwenden

Wenn Sie eine Empfehlung zu einer inaktiven VM erhalten, die sie nicht mehr benötigen, können Sie die Instanz über die Google Cloud Console, die gcloud CLI oder REST beenden und optional löschen.

Wenn Sie eine Instanz und deren Laufwerke beenden, aber nicht löschen, zahlen Sie weiterhin für die zugehörigen Laufwerke.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite "VM-Instanzen"

  2. Wählen Sie die Instanz aus, die Sie beenden möchten.
  3. Klicken Sie auf Beenden.

gcloud

Verwenden Sie den Befehl instances stop und geben Sie die VM_NAME an, die Sie beenden möchten.

gcloud compute instances stop VM_NAME --zone=ZONE

Dabei gilt:

  • VM_NAME ist der Name der VM-Instanz, die Sie beenden möchten.
  • ZONE ist die Zone mit der Instanz, die Sie beenden möchten.

REST

Erstellen Sie eine POST-Anfrage, um die Instanz anzuhalten.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID
  • ZONE ist die Zone mit der Instanz, die Sie beenden möchten.
  • VM_NAME ist der Name der VM-Instanz, die Sie beenden möchten.

Wenn Sie sich sicher sind, dass die VM-Instanz und die zugehörigen Laufwerke entfernt werden können, löschen Sie die Instanz.

Nächste Schritte