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


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

始める前に

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

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

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

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

    REST

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

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

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

次のステップ