Melihat dan menerapkan rekomendasi tentang VM yang tidak ada aktivitas


Halaman ini menjelaskan cara menggunakan rekomendasi tentang VM yang tidak ada aktivitas untuk mengidentifikasi dan menghentikan instance VM yang tidak ada aktivitas guna mengurangi pemborosan resource dan mengurangi tagihan komputasi pada project Anda.

Sebelum memulai

  • Tinjau batasan untuk memeriksa apakah VM Anda mendukung rekomendasi tentang VM yang tidak ada aktivitas.
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

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

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Harga

Rekomendasi tentang VM yang tidak ada aktivitas tersedia tanpa biaya. Menggunakan rekomendasi untuk mengurangi penggunaan resource dapat menghemat biaya.

Melihat rekomendasi tentang instance VM yang tidak ada aktivitas

Untuk melihat rekomendasi tentang VM yang tidak ada aktivitas, gunakan gcloud CLI atau REST.

gcloud

Gunakan perintah gcloud recommender recommendations list dengan --recommender=google.compute.instance.IdleResourceRecommender:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Anda
  • ZONE: zona yang berisi instance untuk mencantumkan rekomendasi

Contoh:

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

Jika tidak ada VM yang tidak ada aktivitas di lokasi, respons akan kosong. Jika tidak, respons akan menyertakan kolom berikut untuk setiap rekomendasi:


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

Pelajari lebih lanjut cara menggunakan rekomendasi menggunakan gcloud di contoh gcloud.

REST

Panggil metode recommendations.list dan gunakan jenis rekomendasi berikut:

  • google.compute.instance.IdleResourceRecommender

Panggilan API terlihat seperti ini:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.
  • ZONE: zona yang berisi instance untuk mencantumkan rekomendasi.

Contoh berikut menunjukkan cara mengirim permintaan dengan curl, dan contoh respons terkait.

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

Contoh respons JSON untuk rekomendasi tentang VM yang tidak ada aktivitas:

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

Anda dapat menemukan detail selengkapnya tentang setiap kolom dalam dokumentasi API Pemberi Rekomendasi.

Menafsirkan respons rekomendasi

Setiap rekomendasi yang Anda terima melalui gcloud CLI atau REST berisi grup operasi, dengan operasi yang dapat Anda lakukan secara berangkai untuk menerapkan rekomendasi. Grup operasi rekomendasi tentang VM yang tidak ada aktivitas mencakup dua operasi:

  1. Operasi pengujian untuk memverifikasi status VM saat ini. Contoh:

     {
       "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. Operasi penggantian untuk mengubah status VM. Contoh:

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

Operasi pertama adalah test, yang berarti Anda harus menguji bahwa resource masih RUNNING. Anda dapat melakukannya dengan memeriksa status VM.

Operasi kedua, replace, berarti Anda harus mengganti status resource dengan nilai baru, TERMINATED. Anda dapat melakukannya dengan menghentikan VM, yang dijelaskan di bawah ini.

Menerapkan rekomendasi tentang VM yang tidak ada aktivitas

Setelah Anda menerima rekomendasi tentang VM yang tidak ada aktivitas dan memutuskan bahwa Anda tidak lagi memerlukan instance tersebut, gunakan Konsol Google Cloud, gcloud CLI, atau REST untuk menghentikan dan secara opsional menghapus instance.

Jika Anda menghentikan, tetapi tidak menghapus instance dan disk-nya, Anda tetap perlu membayar disk-nya.

Konsol

  1. Di Konsol Google Cloud, buka halaman VM instances.

    Buka halaman Instance VM

  2. Pilih instance yang ingin Anda hentikan.
  3. Klik Stop.

gcloud

Gunakan perintah instances stop dan tentukan VM_NAME yang ingin Anda hentikan.

gcloud compute instances stop VM_NAME --zone=ZONE

Ganti kode berikut:

  • VM_NAME: nama instance VM yang ingin Anda hentikan
  • ZONE: zona yang berisi instance yang ingin Anda hentikan

REST

Buat permintaan POST untuk menghentikan instance.

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

Ganti kode berikut:

  • PROJECT_ID: ID project Anda
  • ZONE: zona yang berisi instance yang ingin Anda hentikan
  • VM_NAME: nama instance VM yang ingin Anda hentikan

Jika Anda yakin bahwa instance VM dan disk-nya dapat dihapus, Anda dapat menghapus instance.

Langkah berikutnya