アイドル状態の VM の推奨事項を構成する


このページでは、アイドル状態の VM の推奨事項の構成を表示し、変更を加える方法について説明します。構成に変更を加えることで、受信する推奨事項数を増やすか、意図的にワークロードのサイズを小さくした VM が誤ってアイドル状態の VM として分類されないようにすることができます。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

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

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

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

      gcloud init

料金

構成可能な推奨事項は、料金なしで利用できます。推奨事項を使用してリソース使用量を減らすと、費用を節約できます。

推奨事項を構成する

アイドル状態の VM の推奨事項を構成するには、次の手順を行います。

  1. 構成の JSON ファイルを取得するために、現在の構成を取得します。
  2. JSON 形式の構成ファイルを編集します。
  3. 新しい構成ファイルをアップロードして、変更を適用します。

現在の構成を取得する

プロジェクトのアイドル状態の VM の推奨事項に関する現在の構成は、Google Cloud CLI または REST を使用して取得できます。

gcloud

現在の構成パラメータを取得するには、gcloud recommender recommender-config describe コマンドを使用し、Recommender ID として google.compute.instance.IdleResourceRecommender を指定します。

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=PROJECT_ID \
  --location=ZONE

次のように置き換えます。

  • PROJECT_ID: オブジェクトの ID
  • ZONE: 現在の構成を取得する対象のゾーン

次に例を示します。

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=my-project \
  --location=us-central1-c

このコマンドから返される Recommender 構成に、変更可能なサブフィールド params.observation_period が含まれています。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

REST

現在の構成を取得するには、recommenders.getConfig メソッドを使用し、Recommender ID として google.compute.instance.IdleResourceRecommender を指定します。

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

次のように置き換えます。

  • PROJECT_ID: Recommender 構成を取得する対象のプロジェクトの ID。
  • ZONE: プロジェクトを含むゾーン。

コマンドラインから次のコマンドを実行して、プロジェクトの Recommender 構成を取得します。

PROJECT_ID=PROJECT_ID
ZONE=ZONE
curl -X GET -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/google.compute.instance.IdleResourceRecommender/config

このコマンドから返される Recommender 構成に、変更可能なサブフィールド params.observation_period が含まれています。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

プロジェクトに対する構成を更新する

アイドル状態の VM の推奨事項の構成を更新するには、observation_period の値を変更し、プロジェクトに対する新しい構成をアップロードします。

観察期間として、1 日から 14 日までの値を設定できます。値を設定するには、合計秒数の後に文字 s を続けた文字列を使用します。

  • 観察期間が 1 日の場合は、"86400s" を使用します。
  • 観察期間が 14 日の場合は、"1209600s" を使用します。

新しい構成をアップロードした後、変更が適用されるまでに約 48 時間かかります。それまでは、以前の構成に従って推奨事項が生成されます。

gcloud

構成パラメータを更新するには、gcloud recommender recommender-config update コマンドを使用し、Recommender ID として google.compute.instance.IdleResourceRecommender を指定します。

gcloud recommender recommender-config update google.compute.instance.IdleResourceRecommender\
  --project=PROJECT_ID \
  --location=ZONE \
  --config-file=CONFIG_FILE_PATH \
  --etag=ETAG

次のように置き換えます。

  • PROJECT_ID: オブジェクトの ID
  • ZONE: 現在の構成を取得する対象のゾーン
  • CONFIG_FILE_PATH: 現在の構成を含む JSON ファイルのパス
  • ETAG: 現在の構成の ETag 値

構成ファイル内で、構成パラメータを更新した recommenderGenerationConfig オブジェクトのみを指定します。たとえば、5 日の観察期間を指定するには、構成ファイル内で次の設定を使用します。

{
  "params": {
    "observation_period": "432000s"
  }
}

コマンドが成功すると、パラメータが変更された新しい構成を示す、次のようなレスポンス本文が返されます。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

REST

構成を更新するには、recommenders.updateConfig メソッドを使用し、Recommender ID として google.compute.instance.IdleResourceRecommender を指定します。

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

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\""
}

次のように置き換えます。

  • PROJECT_ID: Recommender の構成を変更する対象のプロジェクトの ID。
  • ZONE: プロジェクトを含むゾーン。

リクエスト本文をファイル(config.json など)に保存します。これにより、プロジェクトに対する Recommender の構成を更新するときに、次のようなコマンドを使用してファイルを参照できます。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "x-goog-user-project: ${PROJECT_ID}" \
-d @config.json \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

POST コマンドは、パラメータが変更された新しい構成を示す、次のようなレスポンス本文を返します。

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

次のステップ