Compute Engine では、使用されていない仮想マシン(VM)インスタンスを識別できるように、アイドル状態の VM に対する推奨が表示されます。この推奨は Cloud Monitoring サービスが過去 14 日間に集めたシステム指標に基づいて自動的に生成されます。アイドル状態の VM の推奨を使用して、アイドル状態の VM インスタンスを見つけて停止することで、リソースの無駄を減らし、コンピューティング料金を削減できます。
始める前に
- このガイドのコマンドラインの例を使用する場合、以下を行ってください。
- gcloud コマンドライン ツールの最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
料金
アイドル状態の VM の推奨は無料で利用できます。
制限事項
スタンドアロン VM では、次の場合にアイドル状態の推奨を使用できません。
- ローカル SSD を使用するインスタンス
- GPU / TPU を使用するインスタンス
- App Engine フレキシブル リソース
- Dataflow リソース
- Google Kubernetes Engine のリソース
アイドル状態の VM インスタンスに関する推奨の表示
アイドル状態の VM に関する推奨を表示するには、gcloud
ツールまたは API を使用します。
gcloud
--recommender=google.compute.instance.IdleResourceRecommender
で gcloud recommender recommendations list
コマンドを使用します。
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=ZONE \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
次のように置き換えます。
PROJECT_ID
: オブジェクトの IDZONE
: 推奨を一覧表示するインスタンスを含むゾーン
例:
gcloud recommender recommendations list \ --project=my-project \ --location=us-central1-c \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
そのロケーションにアイドル状態の VM がない場合、レスポンスは空になります。それ以外の場合、レスポンスには推奨ごとに次のフィールドが含まれます。
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 の例をご覧ください。
API
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
: オブジェクトの IDZONE
: 推奨を一覧表示するインスタンスを含むゾーン
Google Cloud APIs を呼び出す際の認証の前提条件については、認証の概要をご覧ください。
次の bash スクリプトの例では、エンドユーザー認証フローで OAuth クライアント認証情報を使用しています。このスクリプトでは、Google oauth2l コマンドライン ツールを使用して、OAuth 2.0 アクセス トークンを取得し、そのトークンを使用する curl
リクエストを作成します。
PROJECT_ID=my-project ZONE=us-central1-c RECOMMENDER=google.compute.instance.IdleResourceRecommender OAUTH_JSON=~/service-account.json OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"
curl -H "$OAUTH_HEADER" -H "x-goog-user-project: $PROJECT_ID" https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/$RECOMMENDER/recommendations
アイドル状態の VM の推奨に対する 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 のドキュメントをご覧ください。
推奨のレスポンスの解釈
gcloud
ツールまたは API を介して受信する各推奨には、推奨を適用するために連続して実行できるオペレーション グループが含まれています。アイドル状態の VM の推奨のオペレーション グループには、次の 2 つのオペレーションが含まれます。
VM の現在の
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" }
VM の
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
であることをテストする必要があります。これを行うには、VM の状態を確認します。
2 番目のオペレーションである replace
は、リソースの status
を新しい値 TERMINATED
に置き換えることを意味します。これを行うには、VM を停止します。これについては以下で説明します。
アイドル状態の VM の推奨の適用
アイドル状態の VM の推奨を受け取り、インスタンスが不要になった場合は、Google Cloud Console、gcloud
ツール、または API を使用してインスタンスを停止し、必要に応じて削除します。
インスタンスとそのディスクを停止しても削除しない場合は、そのディスクの料金が発生します。
Console
- Google Cloud Console で、[VM インスタンス] ページに移動します。
- 停止するインスタンスを選択します。
- [停止] をクリックします。
gcloud
instances stop
コマンドを使用して、停止する VM_NAME
を指定します。
gcloud compute instances stop VM_NAME --zone=ZONE
次のように置き換えます。
VM_NAME
: 停止する VM インスタンスの名前ZONE
: 停止するインスタンスを含むゾーン
API
API で POST
リクエストを作成して、インスタンスを停止します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
次のように置き換えます。
PROJECT_ID
: オブジェクトの IDZONE
: 停止するインスタンスを含むゾーンVM_NAME
: 停止する VM インスタンスの名前
VM インスタンスとそのディスクを削除しても問題がない場合は、インスタンスを削除できます。
アイドル状態の VM インスタンスの検出方法
Compute Engine は、過去 14 日間の使用状況の指標に基づいて VM インスタンスに関する推奨を生成します(新しい VM の場合は、VM の作成から 5 日以降の使用状況の指標)。モニタリング期間中に CPU とネットワークの使用率が低い場合は、VM がアイドル状態として分類されます。
VM をアイドル状態として分類するには、次のすべての条件を満たす必要があります。
- CPU 使用率が、97% の VM ランタイムで 0.03 vCPU 未満。
- 受信したネットワーク トラフィックが、95% の VM ランタイムで 2,000 バイト/秒(B/s)未満。
- 送信されたネットワーク トラフィックが、95% の VM ランタイムで 1,000 B/s 未満。
推奨の頻度
アイドル状態の VM の推奨が最初に生成されるのは、VM が作成されて 5 日間実行された後です。その後は、推奨が少なくとも 1 日に 1 回更新されます。
マシンタイプの推奨サイズとの関係
マシンタイプの推奨サイズでは、VM に最適なサイズが推奨されます。アイドル状態の VM をダウンサイズするための、マシンタイプに関する推奨が表示されることがあります。
使用率が低くてもアイドル状態の VM を実行し続ける必要がある場合は、マシンタイプの推奨を使用すると、使用率の低い VM に適したサイズを選択できます。
次のステップ
- VM インスタンスの停止、リセット、削除がインスタンスとそのリソースに与える影響について学習する。