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.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

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

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

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 serial 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 VM yang tidak ada aktivitas dan memutuskan bahwa Anda tidak lagi memerlukan instance tersebut, gunakan Google Cloud Console, gcloud CLI, atau REST untuk menghentikan dan menghapus instance secara opsional.

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 selanjutnya