בדף הזה מוסבר איך אפשר להשתמש בהמלצות למכונות וירטואליות לא פעילות כדי לזהות ולהפסיק מכונות וירטואליות לא פעילות, וכך לצמצם את בזבוז המשאבים ואת חשבון החיוב על השימוש במחשוב בפרויקטים.
- מידע נוסף על האופן שבו Compute Engine יוצר המלצות לגבי מכונות וירטואליות לא פעילות זמין במאמר איך מתבצע זיהוי של מכונות וירטואליות לא פעילות.
- מידע נוסף על הגדרת כלי ההמלצות ל-VM במצב המתנה כדי לקבל יותר או פחות המלצות זמין במאמר הגדרת המלצות ל-VM במצב המתנה.
לפני שמתחילים
- כדאי לעיין בהגבלות כדי לבדוק אם המכונה הווירטואלית תומכת בהמלצות לגבי מכונות וירטואליות בלי פעילות.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-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
אם אין מכונות וירטואליות במצב סרק במיקום, התשובה ריקה. אחרת, התשובה כוללת את השדות הבאים לכל המלצה:
-
operationGroups: קבוצות של פעולות שאפשר לבצע בסדר רציף כדי להחיל את ההמלצה -
description: הסבר על ההמלצה שקריא לאנשים
---
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 מכילה קבוצת פעולות, עם פעולות שאפשר לבצע ברצף כדי ליישם את ההמלצה. קבוצות פעולות של המלצות לגבי מכונות וירטואליות לא פעילות כוללות שתי פעולות:
פעולת בדיקה לאימות
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" }פעולת החלפה לשינוי
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 כדי לעצור את המכונה, ואם רוצים גם למחוק אותה.
אם מפסיקים מכונה ודיסקים שלה אבל לא מוחקים אותם, עדיין משלמים על הדיסקים.
המסוף
- נכנסים לדף VM instances במסוף Cloud de Confiance .
- בוחרים את המופע שרוצים לעצור.
- לוחצים על 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: השם של מופע המכונה הווירטואלית שרוצים לעצור
אם אתם בטוחים שאפשר להסיר את מופע המכונה הווירטואלית ואת הדיסקים שלה, אתם יכולים למחוק את המופע.