VM 인스턴스 크기 추천자

VM 인스턴스 크기 추천자는 Compute Engine 가상 머신 인스턴스의 리소스 사용률을 최적화하는 데 도움이 됩니다. 권장사항은 Cloud Monitoring 서비스가 이전 8일 동안 수집한 시스템 측정항목 또는 측정항목을 기반으로 자동 생성됩니다. 이 권장사항으로 인스턴스 머신 유형의 크기를 조절하여 VM 리소스를 보다 효율적으로 사용할 수 있습니다.

크기 권장사항을 적정 크기 권장사항이라고도 합니다.

자세한 내용은 VM 인스턴스에 크기 권장사항 적용을 참조하세요.

추천자 ID

VM 인스턴스 크기 추천자 ID는 다음과 같습니다.

google.compute.instance.MachineTypeRecommender

gcloud 명령어 또는 REST, RPC API를 사용하여 권장사항을 보고 수정할 때 이 ID를 사용합니다.

위치

추천자 gcloud 명령어와 API를 사용하려면 보거나 수정하는 권장사항의 위치를 지정해야 합니다. VM 인스턴스 크기 권장사항의 경우 Compute Engine 영역gcloud 및 API 상호작용의 위치로 사용하세요.

권한

필수 권한

VM 인스턴스 크기 권장사항을 보려면 필요한 권한입니다.

  • recommender.computeInstanceMachineTypeRecommendations.get
  • recommender.computeInstanceMachineTypeRecommendations.list

VM 인스턴스 크기 권장사항의 상태를 수정하려면 필요한 권한입니다.

  • recommender.computeInstanceMachineTypeRecommendations.update

권한 부여

이러한 권한을 부여하려면 다음과 같이 역할을 할당합니다.

  • 권장사항만 보려면 Compute 추천자 뷰어(roles/recommender.computeViewer) 역할을 부여합니다.
  • 권장사항을 보고 수정하려면 Compute 추천자 관리자(roles/recommender.computeAdmin) 역할을 부여합니다.
  • serviceusage.services.use 권한을 부여하려면 서비스 사용량 소비자 역할(roles/serviceusage.serviceUsageConsumer)을 부여합니다.

또는 다음과 같은 기본 역할도 부여할 수 있습니다.

  • 권장사항만 보려면 뷰어(roles/viewer) 역할을 부여합니다.
  • 권장사항을 보고 수정하려면 소유자(roles/owner) 또는 편집자(roles/editor) 역할을 부여합니다.
    • 이러한 역할에는 serviceusage.services.use 권한도 포함됩니다.

권장사항 하위유형

이 추천자는 다음 하위유형을 지원합니다.

  • CHANGE_MACHINE_TYPE - 현재 사용량을 기준으로 가상 머신 인스턴스의 현재 머신 유형을 변경하는 것이 좋습니다.

작업 그룹

VM 인스턴스 크기 추전자에서 생성한 각 권장사항에는 권장사항을 적용하기 위해 수행해야 하는 작업 집합을 설명하는 작업 그룹이 있습니다.

독립형 VM 인스턴스의 크기 권장사항

독립형 VM 인스턴스의 크기 권장사항에는 compute.googleapis.com/Instance 리소스에 대한 두 가지 작업이 포함된 OperationGroup 하나가 포함됩니다.

  1. test 작업은 현재 머신 유형이 권장 시점과 동일한지 확인합니다. 예:

    {
     "action": "test",
     "resourceType": "compute.googleapis.com/Instance",
     "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name",
     "path": "/machineType",
     "valueMatcher": {
       "matchesPattern": ".*zones/us-central1-f/machineTypes/n1-standard-32"
     }
    }
    
  2. replace 작업은 머신 유형을 권장 유형으로 대체합니다. 예:

     {
       "action": "replace",
       "resourceType": "compute.googleapis.com/Instance",
       "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name",
       "path": "/machineType",
       "value": "zones/us-central1-f/machineTypes/n1-standard-4"
     }
    

다음 예시에서는 VM 인스턴스 크기 권장사항을 나열하는 방법을 보여줍니다.

  1. 필수 환경 변수를 설정합니다.

    PROJECT=TARGET_PROJECT_ID
    LOCATION=LOCATION_ID
    RECOMMENDER=google.compute.instance.MachineTypeRecommender
    

    각 매개변수는 다음과 같습니다.

    • TARGET_PROJECT_ID는 권장사항을 나열할 프로젝트입니다. 이 프로젝트는 현재 프로젝트와 다른 프로젝트일 수 있습니다.

      • gcloud 명령어의 경우 프로젝트 ID를 사용해야 합니다.
      • API 요청의 경우 프로젝트 번호 또는 프로젝트 ID를 사용할 수 있습니다. 프로젝트 번호를 사용하는 것이 좋습니다.

      프로젝트 번호는 API 및 gcloud 명령어의 응답으로 반환됩니다.

    • LOCATION_ID는 권장사항과 관련된 리소스가 있는 Google Cloud 위치입니다(예: us-central1-a).

  2. VM 인스턴스 크기 권장사항을 나열합니다.

    gcloud

    다음을 입력합니다.

    gcloud recommender recommendations list \
        --project=${PROJECT} \
        --location=${LOCATION} \
        --recommender=${RECOMMENDER} \
        --format=json
    

    REST

    다음을 입력합니다.

    curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
        -H "x-goog-user-project: ${PROJECT}" \
        "https://recommender.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/recommenders/${RECOMMENDER}/recommendations"
    

결과는 다음과 비슷합니다.

[
  {
    "content": {
     "operationGroups": [
        {
          "operations": [
            {
              "action": "test",
              "path": "/machineType",
              "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-1",
              "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-1",
              "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": "280b34810bba8a1a",
    "lastRefreshTime": "2019-06-28T06:49:21Z",
    "name": "projects/548293842938/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
    "primaryImpact": { ... }
    },
    "stateInfo": {
      "state": "ACTIVE"
    },
    "recommenderSubtype": "CHANGE_MACHINE_TYPE"
  }
]

추천자 gcloud 명령어 및 API를 사용하여 권장사항에 대한 추가 태스크를 수행하는 방법은 API 사용을 참조하세요.