צפייה בהמלצות לגבי מכונות וירטואליות לא פעילות ויישום שלהן

בדף הזה מוסבר איך אפשר להשתמש בהמלצות למכונות וירטואליות לא פעילות כדי לזהות ולהפסיק מכונות וירטואליות לא פעילות, וכך לצמצם את בזבוז המשאבים ואת חשבון החיוב על השימוש במחשוב בפרויקטים.

לפני שמתחילים

  • כדאי לעיין בהגבלות כדי לבדוק אם המכונה הווירטואלית תומכת בהמלצות לגבי מכונות וירטואליות בלי פעילות.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

תמחור

ההמלצות לגבי מכונות וירטואליות לא פעילות זמינות ללא תשלום. יישום ההמלצות לצמצום השימוש במשאבים יכול להוביל לחיסכון בעלויות.

הצגת המלצות למכונות וירטואליות לא פעילות

כדי לראות המלצות לגבי מכונות וירטואליות לא פעילות, משתמשים ב-CLI של gcloud או ב-REST.

gcloud

משתמשים בפקודה gcloud recommender recommendations list עם הדגל --recommender=google.compute.instance.IdleResourceRecommender:

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור שמכיל את המכונות שרוצים לראות המלצות לגביהן

לדוגמה:

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

אם אין מכונות וירטואליות במצב סרק במיקום, התשובה ריקה. אחרת, התשובה כוללת את השדות הבאים לכל המלצה:


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

מידע נוסף על עבודה עם המלצות באמצעות gcloud זמין בדוגמאות לשימוש ב-gcloud.

REST

מבצעים קריאה לשיטה recommendations.list ומשתמשים בסוג ההמלצה הבא:

  • google.compute.instance.IdleResourceRecommender

הקריאה ל-API נראית כך:

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור שמכיל את המופעים שלגביהם רוצים להציג המלצות.

בדוגמה הבאה אפשר לראות איך לשלוח בקשה עם curl, וגם את התגובה לדוגמה שמתקבלת.

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

דוגמה לתגובת JSON להמלצה על מכונה וירטואלית בלי פעילות:

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

פרטים נוספים על כל שדה מופיעים במסמכי העזרה של Recommender API.

פירוש התשובה להמלצה

כל המלצה שמקבלים דרך ה-CLI של gcloud או REST מכילה קבוצת פעולות, עם פעולות שאפשר לבצע ברצף כדי ליישם את ההמלצה. קבוצות פעולות של המלצות לגבי מכונות וירטואליות לא פעילות כוללות שתי פעולות:

  1. פעולת בדיקה לאימות status הנוכחי של המכונה הווירטואלית. לדוגמה:

     {
       "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. פעולת החלפה לשינוי status של המכונה הווירטואלית. לדוגמה:

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

הפעולה הראשונה היא test, כלומר צריך לבדוק שresource עדיין RUNNING. כדי לעשות את זה, בודקים את מצב המכונה הווירטואלית.

הפעולה השנייה, replace, מציינת שצריך להחליף את status של המשאב בערך חדש, TERMINATED. כדי לעשות את זה, צריך להפסיק את המכונה הווירטואלית, כפי שמתואר בהמשך.

יישום המלצות לגבי מכונות וירטואליות לא פעילות

אחרי שמקבלים המלצה לגבי מכונה וירטואלית לא פעילה ומחליטים שלא צריך יותר את המכונה, אפשר להשתמש ב- Cloud de Confiance console, ב-gcloud CLI או ב-REST כדי לעצור את המכונה, ואם רוצים גם למחוק אותה.

אם מפסיקים מכונה ודיסקים שלה אבל לא מוחקים אותם, עדיין משלמים על הדיסקים.

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. בוחרים את המופע שרוצים לעצור.
  3. לוחצים על Stop כדי לעצור את המכונה הווירטואלית. אם אין אפשרות עצירה, לוחצים על עוד פעולות > עצירה.

gcloud

משתמשים בפקודה instances stop ומציינים את VM_NAME שרוצים להפסיק.

gcloud compute instances stop VM_NAME --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: השם של מופע המכונה הווירטואלית שרוצים לעצור
  • ZONE: האזור שמכיל את המכונה שרוצים להפסיק

REST

יצירת בקשת POST להפסקת מכונה.

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור שמכיל את המכונה שרוצים להפסיק
  • VM_NAME: השם של מופע המכונה הווירטואלית שרוצים לעצור

אם אתם בטוחים שאפשר להסיר את מופע המכונה הווירטואלית ואת הדיסקים שלה, אתם יכולים למחוק את המופע.

המאמרים הבאים