推奨事項

Recommender

Recommender は、クラウド リソースの使用方法の推奨事項を提供する Google Cloud 上のサービスです。Recommender は、単一の Google Cloud プロダクトとリソースタイプに固有のものです。1 つのプロダクトに、複数の Recommender が存在することもあります。その場合、それぞれの Recommender は、異なるリソースに対する異なるタイプの推奨事項を提供します。

各 Recommender には、サービスを内部的に識別する一意の Recommender ID があります。Recommender ID は、Recommender の gcloud コマンド、REST API、RPC API を使用して推奨事項を操作するときに使用します。

詳細については、Recommender をご覧ください。

推奨事項

推奨事項とは、機械が生成した提案のことで、クラウド リソースの使用を最適化することを目的としています。推奨事項に対処するために必要な手順を含みます。Recommender は、機械学習やヒューリスティックスを使用して、リソースの使用状況に基づいて推奨事項を提供します。Recommender は、Recommendation エンティティを使用して推奨事項を内部に保存します。

推奨事項には次のコア属性があります。

名前

推奨事項の名前は、Recommendation エンティティの name フィールドに格納されます。推奨事項に対する名前で、次の形式を持ちます。

projects/TARGET_PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations/RECOMMENDATION_ID

ここで

  • TARGET_PROJECT_ID は、推奨事項が作成されたプロジェクトの ID です。
  • LOCATION は、推奨事項に関連付けられたリソースがある Google Cloud ロケーションglobal または us-central1-a)です。
  • RECOMMENDER_ID は、完全修飾された Recommender ID です(例: google.compute.instance.MachineTypeRecommender)。
  • RECOMMENDATION_ID は推奨事項の一意の ID です。

説明

推奨事項の説明は、Recommendation エンティティの description フィールドに格納されます。英語でのみ利用できます。これは、人が読めるテキストで、推奨事項を説明するものです。Google Cloud Console では、推奨事項の詳細を表示するためにクリックすると、その説明が表示されます。

Recommender のサブタイプ

Recommender は、特定の種類の推奨事項用のサブタイプを持つ場合があります。たとえば、Identity and Access Management のロール Recommender には、サブタイプ REPLACE_ROLEREMOVE_ROLE があります。recommendation.content が大きく変更される場合や、recommendation.primary_impact.category を下位互換性のある方法で加える必要がある場合は、新しいサブタイプが導入されます。特定の Recommender のサブタイプのリストを確認するには、Recommender のセクションをご覧ください。

影響

影響は、推奨される対応で定量的なメリットが得られる推奨事項のプロパティです。

推奨事項には次の種類の影響フィールドがあります。

  • メインの影響は必須であり、Recommendation エンティティの primaryImpact フィールドに格納されます。これは、推奨事項を適用した場合に得られるメリットを表します。

  • 追加の影響はオプションで、additionalImpact フィールドに格納されます。これは、推奨事項を適用した結果として発生する可能性のある追加的な結果(ポジティブとネガティブ)を表します。たとえば、費用の増加やセキュリティ上の考慮事項などの影響です。

推奨事項の影響には、カテゴリがあります。カテゴリは、予想される影響の種類です。これは、費用、パフォーマンス、セキュリティなどのカテゴリに対応します。

影響の例を次に示します。

  • メインの影響 COST の推奨事項を適用すると、影響には費用予測も含まれます。費用予測は、推奨事項を受け入れた場合に発生すると予想される金額です。

  • メインの影響 PERFORMANCE の推奨事項を適用する場合、それが CPU やメモリの割り当てを増やしてパフォーマンスを向上させるという推奨事項であれば、費用が増加する可能性があります。

オペレーション

Operation は、提示された推奨事項の詳細な手順の 1 つとして実行される必要がある単一のアクションです。オペレーションは、次のような変更を表します。

  • Google Cloud リソースの JSON オブジェクト フィールドを、追加、削除、置換する。
  • Google Cloud リソースの JSON 配列フィールドを、追加、削除、置換する。JSON 配列要素は、パスのフィルタを定義することによって識別されます。
  • 新しい Google Cloud リソースを追加する。
  • Google Cloud リソースを削除する。
  • テスト オペレーションで、リソースの元の状態を示す。また、テスト オペレーションを使用して、推奨事項を適用する前にリソースの現在の状態を確認することもできます。
  • Google Cloud のリソースとフィールドをコピーして移動する。

Operation は、パッチの JSON パス(RFC 6902)形式を大まかに基にしています。Google Cloud では、一般的に見られる複雑なシナリオを含め、リソースの変更を反映する一貫性のある方法を提供するため、この RFC を選択しています。たとえば、IAM 推奨事項では、プリンシパルのロール バインディングの別ロールへの移行を反映するために、ネストされた配列が使用されます。

リソースごとに、次の方法で変更リスト(diff ベースの出力)を生成できます。

  • 元の状態: テスト オペレーションにより、フィールドの元の値が表されます。これは差分出力の左側に表示されます。
  • 推奨される状態: 非テスト オペレーションにより、フィールドごとの推奨される変更が表示されます。これは差分出力の右側に表示されます。

オペレーション グループ

オペレーション グループは、推奨事項を適用する際に特定の順序で実行する必要がある 1 つ以上のオペレーションのセットです。推奨事項には、オペレーション グループを 1 つ以上含めることができます。オペレーション グループは、Recommendation エンティティの operationGroups フィールドに格納されます。

たとえば、Compute Engine インスタンス グループの VM インスタンス マシンタイプの変更を提案する推奨事項には、2 つのオペレーション グループがあります。1 つはインスタンス テンプレートのマシンタイプを変更するグループで、もう 1 つは特定のインスタンス グループに変更を適用するグループです。

最初のオペレーション セットは、2 番目のセットを開始する前に完了しておく必要があるため、推奨事項では、2 つのインスタンス グループに分けて定義されます。

1 つのオペレーション グループには、1 つのテスト オペレーションを含めることができます。テスト オペレーションは、推奨事項がまだ有効であることの確認を行います。VM インスタンスのマシンタイプの変更を提案する推奨事項には、現在のマシンタイプが推奨事項の作成時と同じかどうかを確認するテスト オペレーションがあります。

状態

推奨事項では、提案された後、多くの状態遷移が発生します。推奨事項には、次の状態があります。

  • ACTIVE: 推奨事項は作成されているが、それに対するアクションが実行されていないことを意味します。推奨事項は、申請することにより適用できます。アクティブな推奨事項は、リソースが変更されると更新されます。
  • CLAIMED: 自身または別のプロセスで推奨事項を申請済みで、そのレスポンスが処理中であることを意味します。推奨事項が申請済みの場合、リソースが変更されても、Recommender は推奨事項を更新しません。
  • SUCCEEDED: 自身または別のプロセスにより、推奨事項が関連するリソースに適用されたことを意味します。
  • FAILED: 推奨事項を適用しようとして失敗したことを意味します。
  • DISMISSED: 自身または別のプロセスで、関連するリソースに適用されることなく、推奨事項が閉じられたことを意味します。この状態では、推奨事項のリストにその推奨事項が表示されなくなります。通常は、さまざまな理由でその推奨事項を無効にした管理者により適用されます。また、その推奨事項は、CLAIMED 状態に移行できなくなります。

推奨事項の状態に関する情報は、Recommendation エンティティの stateInfo フィールドに格納されます。その情報には、推奨事項の状態と、状態を補足する Recommender ごとのメタデータが含まれます。

推奨事項が CLAIMEDSUCCEEDED、または FAILED の状態に変更されると、推奨事項の内容は更新されません。また、推奨事項の有効期間は、状態の変更後 90 日間です。

etag

etag は、推奨事項の現在の状態を識別する一意のフィンガープリントです。推奨事項が変わるたびに、新しい etag 値が割り当てられます。この値は、Recommender エンティティの etag フィールドに格納されます。

gcloud コマンドや API 呼び出しを使用して Recommender から推奨事項を取得すると、後続のオペレーションでは、推奨事項 ID と etag の両方を使用してその推奨事項を参照できます。これにより、最後に取得してから推奨事項が変更されていない場合にのみ、オペレーションを実行できるようになります。

優先度

推奨事項の優先度は、最初にどのアクションを行うべきかを判断するのに役立ちます。このフィールドには、デフォルトの優先値として設定された P4P1P2P3P4 の値が含まれています。Recommender ごとに独自の優先度の戦略を定義できます。

状態のメタデータ

推奨事項の申請の際、または完了や失敗を記録する際には、状態メタデータと一緒にオペレーションに関する補足メタデータを含めることができます。

そのメタデータは、key:value ペアで指定します。次に例を示します。

{
  "stateMetadata": {
    "priority" : "high",
    "tracking_number": "12345" }
}

stateMetadata フィールドを更新すると、既存の状態メタデータが上書きされます。

最終更新時間

最終更新時間は、推奨事項が生成プロセスによって最後に更新された時刻を示します。推奨事項の内容には、最終更新時でのリソースの状態が反映されます。

Compute Engine の VM インスタンスに対するサイズ変更の推奨事項例を次に示します。

{
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "test",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "valueMatcher": {
              "matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4"
            }
          },
          {
            "action": "replace",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "value": "zones/us-central1-a/machineTypes/custom-2-5120"
          }
        ]
      }
    ]
  },
  "description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.",
  "etag": "\"923daeebe926c12f\"",
  "recommenderSubtype": "CHANGE_MACHINE_TYPE",
  "lastRefreshTime": "2019-06-13T06:44:58Z",
  "name": "projects/32428390823/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
  "primaryImpact": {
    "category": "COST",
    "costProjection": {
      "cost": {
        "currencyCode": "USD",
        "units": "-73"
      },
      "duration": "2592000s"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  }
}

推奨事項の他の例については、Recommender で個別の Recommender のドキュメントをご覧ください。

インサイトのリファレンス

関連するインサイトのリファレンス。推奨事項は、リファレンスによって関連するインサイト(ある場合)と関連付けられます。