Monitoring 측정항목을 기준으로 확장


Cloud Monitoring 측정항목을 기준으로 자동 확장을 사용하면 앱의 측정값에 따라 필요한 용량을 조정할 수 있습니다. 측정항목을 기준으로 MIG를 자동 확장하면 자동 확장 처리는 측정항목 값이 증가할 때 VM을 만들고 값이 감소할 때 VM을 삭제합니다.

예를 들어 Pub/Sub 구독의 사용자 수, 지연 시간 또는 메시지 수별로 필요한 VM 수를 정의할 수 있습니다. Monitoring 서비스에서 제공하는 기본 제공 측정항목이나 애플리케이션에서 내보내는 커스텀 측정항목을 사용할 수 있습니다.

이 문서에서는 Monitoring 측정항목을 기준으로 관리형 인스턴스 그룹(MIG)을 자동 확장하는 방법을 설명합니다.

또한 CPU 사용률, 부하 분산 서빙 용량, 일정에 따라 MIG를 자동 확장할 수 있습니다.

시작하기 전에

  • 자동 확장 처리 기초에 대해 읽어봅니다.
  • 자동 확장 구성에서 사용되는 Monitoring 측정항목 개념을 읽어보세요.
  • 운영 에이전트 측정항목을 기준으로 자동 확장하려면 운영 에이전트를 설치합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

제한사항

Monitoring 측정항목을 기준으로 한 확장에는 모든 자동 확장 처리의 제한사항과 다음 제한사항이 적용됩니다.

  • MIG당 Monitoring 측정항목 최대 5개를 기준으로 자동 확장을 구성할 수 있습니다.
  • INT64 또는 DOUBLE 값 유형만 있는 측정항목을 기준으로 자동 확장할 수 있습니다. 다른 값 유형은 지원되지 않습니다.
  • 자동 확장 정책에서 같은 측정항목을 두 번 이상 구성할 수 없습니다.

Monitoring 측정항목을 기준으로 자동 확장 구성

Monitoring 측정항목 값을 자동 확장에 사용하는 방법에는 두 가지가 있습니다.

  • 사용률 목표: 자동 확장 처리에서 측정항목을 특정 값으로 유지하게 하려면 사용률 목표를 구성합니다. 자동 확장 처리에서 측정항목 값이 목표보다 높으면 VM을 만들고 측정항목 값이 목표보다 낮으면 VM을 삭제합니다. 이는 네트워크 트래픽, 메모리/디스크 사용량 또는 애플리케이션의 평균 지연 시간과 같은 측정항목에 유용합니다. 다음 다이어그램에서는 사용률 목표가 유지되도록 자동 확장 처리에서 측정항목 값에 따라 VM을 추가하거나 삭제하는 방식을 보여줍니다.

    사용률 목표가 유지되도록 VM을 추가 및 삭제하는 자동 확장 처리

  • 단일 인스턴스 할당: 각 VM에 할당할 수 있는 작업량을 기준으로 자동 확장하려면 단일 인스턴스 할당을 구성합니다. 지정하는 단일 인스턴스 할당은 각 VM에서 처리해야 할 작업량을 나타냅니다. 자동 확장 처리는 측정항목 값을 단일 인스턴스 할당 값으로 나눠 필요한 VM 수를 계산합니다. 예를 들어 측정항목이 100이고 단일 인스턴스 할당이 5이면 자동 확장 처리에서 MIG에 VM을 20개 만듭니다. 이는 Pub/Sub 큐 길이 또는 일괄 작업 수와 같은 작업량을 반영하는 측정항목에 유용합니다. 단일 인스턴스 할당은 각 VM에서 제공하는 측정항목에 적용되지 않습니다. 다음 다이어그램에서는 단일 인스턴스 할당으로 확장할 경우 측정항목 값과 VM 수 간의 비례 관계를 보여줍니다.

    측정항목 값과 인스턴스 수 간의 비례 관계

목표 값으로 측정항목을 유지하도록 자동 확장

측정항목을 목표 값으로 유지하려면 사용률 목표를 지정합니다. 자동 확장 처리에서 측정항목 값이 목표보다 높으면 VM을 만들고 측정항목 값이 목표보다 낮으면 VM을 삭제합니다.

  • 측정항목이 MIG의 각 VM에서 제공되는 경우 자동 확장 처리는 MIG의 모든 VM에서 평균 측정항목 값을 가져와 사용률 목표와 비교합니다. 예를 들어 VM의 TCP 연결 수를 제공하는 tcp_connections 측정항목을 사용하여 자동 확장하려면 자동 확장 처리가 MIG의 모든 VM에서 평균 TCP 연결 수를 가져와 목표와 비교합니다. VM에서 시작된 이러한 측정항목을 사용하는 경우 자동 확장 처리에서 측정항목 값을 게시하려면 VM이 최소 하나 이상 필요하므로 MIG가 0으로 수평 축소될 수 없습니다.

  • 측정항목이 전체 MIG에 적용되고 MIG의 VM에서 시작되지 않으면 자동 확장 처리가 측정항목 값을 사용률 목표와 비교합니다. 예를 들어 애플리케이션의 지연 시간을 측정하는 커스텀 측정항목을 사용할 수 있습니다.

측정항목에 값이 여러 개 있으면 필터를 적용하여 측정항목의 개별 값을 사용해 자동 확장합니다. 구성에서 사용할 수 있는 측정항목 필터와 기타 필드에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 관리형 인스턴스 그룹이 없으면 하나 만듭니다. 그렇지 않으면 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 Cloud Monitoring 측정항목에 대한 신호가 있으면 클릭하여 수정하거나 신호 추가를 클릭하여 새 신호를 추가할 수 있습니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 열려 있는 리소스 및 측정항목 창에서 다음을 수행합니다.

    1. 측정항목 선택을 클릭합니다.
      1. 자동 확장에 사용할 측정항목을 선택합니다. 키워드(예: 메모리, 바이트, 디스크)를 기준으로 측정항목을 필터링할 수 있습니다.
      2. 적용을 클릭합니다. 창에 선택한 측정항목의 데이터가 표시된 차트가 표시됩니다.
    2. 측정항목의 특정 데이터를 사용하려면 다음과 같이 라벨을 기준으로 필터를 추가합니다.

      1. 필터 섹션에서 필터 추가를 클릭합니다.
      2. 라벨을 선택하고 을 입력합니다.
      3. 완료를 클릭합니다. 차트가 새로고침되어 측정항목의 필터링된 값이 표시됩니다.
    3. MIG를 자동 확장하는 데 사용할 측정항목의 집계 값을 보려면 차트에서 집계 표시 버튼을 전환합니다. 차트가 새로고침되어 집계된 값이 표시됩니다.

    4. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 사용률 목표를 선택합니다.

    5. 다음을 제공합니다.

      1. 사용률 목표: 자동 확장 처리에서 유지해야 하는 값을 지정합니다. 이 항목은 반드시 양수여야 합니다. 예를 들어 24.5와 100 모두 허용 값입니다.
      2. 사용률 목표 유형: 측정항목의 측정 종류에 해당하는 목표 유형을 선택합니다. 정확한 비교를 위해 사용률 목표를 초 단위로 측정한 경우 델타/초를 목표 유형으로 사용합니다. 마찬가지로 분 단위로 측정된 사용률 목표에는 델타/분을 사용합니다.
        • 게이지: 자동 확장 처리에서 지난 몇 분 동안 수집한 데이터의 평균값을 계산하고 사용률 목표와 비교합니다.
        • 델타/분: 자동 확장 처리에서 분당 평균 성장률을 계산하고 사용률 목표와 비교합니다.
        • 델타/초: 자동 확장 처리에서 초당 평균 성장률을 계산하고 사용률 목표와 비교합니다.
    6. 측정항목 구성을 마쳤으면 선택을 클릭합니다.

  8. 측정항목 세부정보를 검토하고 완료를 클릭합니다.

  9. 구성을 완료하려면 저장을 클릭합니다.

gcloud

Monitoring 측정항목을 기준으로 자동 확장을 구성하려면 set-autoscaling 명령어를 사용합니다.

다음 명령어를 사용하여 사용률 목표가 있는 Monitoring 측정항목을 기준으로 자동 확장합니다.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

측정항목에 값이 여러 개 있고 자동 확장에 개별 값을 사용하려면 다음 명령어에 지정된 대로 --stackdriver-metric-filter 플래그를 사용합니다.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=METRIC_URL \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE \
  --stackdriver-metric-filter="METRIC_FILTER"

다음을 바꿉니다.

  • MIG_NAME: 자동 확장 처리를 추가할 MIG입니다.
  • MAX_INSTANCES: MIG에 포함할 수 있는 최대 VM 수입니다.
  • MIN_INSTANCES: MIG에 필요한 최소 VM 수입니다.
  • METRIC_URL: Monitoring 측정항목의 프로토콜 없는 URL입니다. 예: compute.googleapis.com/instance/uptime 커스텀 측정항목을 사용하는 경우 커스텀 측정항목 요구사항을 충족해야 합니다.
  • TARGET_VALUE: 자동 확장 처리가 유지하려고 하는 측정항목 값입니다.
  • TARGET_TYPE: 측정항목의 값 유형입니다.
    • gauge: 자동 확장 처리에서 지난 몇 분 동안 수집한 데이터의 평균값을 계산하고 사용률 목표와 비교합니다.
    • delta-per-minute: 자동 확장 처리에서 분당 평균 성장률을 계산하고 사용률 목표와 비교합니다.
    • delta-per-second: 자동 확장 처리는 초당 평균 성장률을 계산하고 사용률 목표와 비교합니다. 정확한 비교를 위해 사용률 목표를 초 단위로 설정한 경우 delta-per-second를 목표 유형으로 사용합니다. 마찬가지로 분 단위 사용률 목표에 delta-per-minute를 사용합니다.
  • METRIC_FILTER: 값이 여러 개 있는 측정항목의 개별 값을 사용하고 모니터링 리소스 유형을 지정하려면 필터를 적용합니다. 각 VM에서 제공하는 측정항목을 사용하는 경우 gce_instance가 기본값으로 사용되므로 모니터링 리소스 유형을 지정할 필요가 없습니다. 다른 측정항목의 경우 필터 표현식에 resource.type을 사용하여 모니터링 리소스를 지정합니다. 측정항목 필터에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.

gcloud CLI에 사용 가능한 플래그와 명령어의 전체 목록은 gcloud 참조에서 확인할 수 있습니다.

REST

영역 MIG의 Monitoring 측정항목을 기준으로 자동 확장을 구성하려면 autoscalers 리소스를 사용하거나 리전 MIG의 경우 regionAutoscalers 리소스를 사용합니다.

사용률 목표를 사용하여 Monitoring 측정항목을 기준으로 영역 MIG를 자동 확장하려면 다음을 호출합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE
    }
  ],
 }
}

측정항목에 값이 여러 개 있고 자동 확장에 개별 값을 사용하려면 다음 API 호출에 지정된 대로 filter 매개변수를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "utilizationTarget": TARGET_VALUE,
      "utilizationTargetType": TARGET_TYPE,
      "filter": "METRIC_FILTER"
    }
  ],
 }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: MIG가 있는 영역입니다.
  • AUTOSCALER_NAME: 자동 확장 처리 이름입니다.
  • MIG_NAME: 자동 확장 처리를 추가할 MIG입니다.
  • MAX_INSTANCES: MIG에 포함할 수 있는 최대 VM 수입니다.
  • MIN_INSTANCES: MIG에 필요한 최소 VM 수입니다.
  • METRIC_URL: Monitoring 측정항목의 프로토콜 없는 URL입니다. 예: compute.googleapis.com/instance/uptime 커스텀 측정항목을 사용하는 경우 커스텀 측정항목 요구사항을 충족해야 합니다.
  • TARGET_VALUE: 자동 확장 처리가 유지하려고 하는 측정항목 값입니다.
  • TARGET_TYPE: 측정항목의 값 유형입니다.
    • GAUGE: 자동 확장 처리에서 지난 몇 분 동안 수집한 데이터의 평균값을 계산하고 사용률 목표와 비교합니다.
    • DELTA_PER_MINUTE: 자동 확장 처리에서 분당 평균 성장률을 계산하고 사용률 목표와 비교합니다.
    • DELTA_PER_SECOND: 자동 확장 처리에서 초당 평균 성장률을 계산하고 사용률 목표와 비교합니다. 정확한 비교를 위해 사용률 목표를 초 단위로 설정한 경우 DELTA_PER_SECOND를 목표 유형으로 사용합니다. 마찬가지로 분 단위 사용률 목표에 DELTA_PER_MINUTE를 사용합니다.
  • METRIC_FILTER: 값이 여러 개 있는 측정항목의 개별 값을 사용하고 모니터링 리소스 유형을 지정하려면 필터를 적용합니다. 각 VM에서 제공하는 측정항목을 사용하는 경우 gce_instance가 기본값으로 사용되므로 모니터링 리소스 유형을 지정할 필요가 없습니다. 다른 측정항목의 경우 resource.type 선택기를 사용하여 모니터링 리소스를 지정해야 합니다. 측정항목 필터에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.

MIG에서 각 VM에 사용할 수 있는 작업을 기준으로 자동 확장

MIG의 각 VM에 사용할 수 있는 작업량을 기준으로 자동 확장하려면 단일 인스턴스 할당을 지정합니다. 설정한 단일 인스턴스 할당 값은 각 VM에서 처리해야 할 작업량을 나타냅니다. 자동 확장 처리는 측정항목 값을 단일 인스턴스 할당 값으로 나눠 필요한 VM 수를 계산합니다.

측정항목 값이 0인 경우 이는 MIG에서 완료할 작업이 없음을 나타냅니다. MIG의 최소 인스턴스 수가 0으로 설정되고 측정항목 값이 0으로 떨어지면 MIG는 측정항목 값이 증가할 때까지 0으로 수평 축소됩니다.

측정항목에 값이 여러 개 있으면 필터를 적용하여 측정항목의 개별 값을 사용해 자동 확장합니다. 구성에서 사용할 수 있는 측정항목 필터와 기타 필드에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 관리형 인스턴스 그룹이 없으면 하나 만듭니다. 그렇지 않으면 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 Monitoring 측정항목에 대한 신호가 있으면 클릭하여 수정하거나 신호 추가를 클릭하여 새 신호를 추가할 수 있습니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 열려 있는 리소스 및 측정항목 창에서 다음을 수행합니다.

    1. 측정항목 선택을 클릭합니다.
      1. 자동 확장에 사용할 측정항목을 선택합니다. 키워드(예: 메모리, 바이트, 디스크)를 기준으로 측정항목을 필터링할 수 있습니다.
      2. 적용을 클릭합니다. 창에 선택한 측정항목의 데이터가 표시된 차트가 표시됩니다.
    2. 측정항목의 특정 데이터를 사용하려면 다음과 같이 라벨을 기준으로 필터를 추가합니다.

      1. 필터 섹션에서 필터 추가를 클릭합니다.
      2. 라벨을 선택하고 을 입력합니다.
      3. 완료를 클릭합니다. 차트가 새로고침되어 필터링된 측정항목 값이 표시됩니다.
    3. MIG를 자동 확장하는 데 사용할 측정항목의 집계 값을 보려면 차트에서 집계 표시 버튼을 전환합니다. 차트가 새로고침되어 집계된 값이 표시됩니다.

    4. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 단일 VM 인스턴스 할당을 선택합니다.

    5. MIG의 각 VM에 할당할 작업량을 나타내는 단일 인스턴스 할당 값을 입력합니다.

    6. 측정항목 구성을 마쳤으면 선택을 클릭합니다.

  8. 측정항목 세부정보를 검토하고 완료를 클릭합니다.

  9. 구성을 완료하려면 저장을 클릭합니다.

gcloud

Monitoring 측정항목을 기준으로 자동 확장을 구성하려면 set-autoscaling 명령어를 사용합니다.

명령어에서 --stackdriver-metric-single-instance-assignment 플래그를 지정하여 그룹의 각 VM에서 처리해야 하는 작업량을 표시합니다.

다음 명령어는 각 VM의 작업 할당을 기준으로 자동 확장 처리를 만듭니다.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    --max-num-replicas=MAX_INSTANCES \
    --min-num-replicas=MIN_INSTANCES \
    --update-stackdriver-metric=METRIC_URL \
    --stackdriver-metric-filter="METRIC_FILTER" \
    --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT

다음을 바꿉니다.

  • MIG_NAME: 자동 확장 처리를 추가할 MIG의 이름입니다.
  • MAX_INSTANCES: MIG에 포함할 수 있는 최대 VM 수입니다.
  • MIN_INSTANCES: MIG에 필요한 최소 VM 수입니다.
  • METRIC_URL: Monitoring 측정항목의 프로토콜 없는 URL입니다. 예: compute.googleapis.com/instance_group/size 커스텀 측정항목을 사용하는 경우 커스텀 측정항목 요구사항을 충족해야 합니다.
  • METRIC_FILTER: 값이 여러 개 있는 측정항목의 개별 값을 사용하고 모니터링 리소스 유형을 지정하려면 필터를 적용합니다. 측정항목 필터에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.
  • INSTANCE_ASSIGNMENT: MIG의 각 VM 인스턴스에 할당할 작업량입니다.

REST

영역 MIG의 Monitoring 측정항목을 기준으로 자동 확장을 구성하려면 autoscalers 리소스를 사용하거나 리전 MIG의 경우 regionAutoscalers 리소스를 사용합니다.

singleInstanceAssignment 매개변수를 사용하여 각 VM에서 처리해야 하는 작업량을 지정합니다.

예를 들어 인스턴스 할당을 기준으로 영역 MIG를 확장하는 자동 확장 처리를 만들려면 다음을 호출합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers

{
 "name": "AUTOSCALER_NAME",
 "target": "zones/ZONE/instanceGroupManagers/MIG_NAME",
 "autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "metric": "METRIC_URL",
      "filter": "METRIC_FILTER",
      "singleInstanceAssignment": INSTANCE_ASSIGNMENT
    }
  ],
 }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: MIG가 있는 영역입니다.
  • AUTOSCALER_NAME: 자동 확장 처리 이름입니다.
  • MIG_NAME: 자동 확장 처리를 추가할 MIG의 이름입니다.
  • MAX_INSTANCES: MIG에 포함할 수 있는 최대 VM 수입니다.
  • MIN_INSTANCES: MIG에 필요한 최소 VM 수입니다.
  • METRIC_URL: Monitoring 측정항목의 프로토콜 없는 URL입니다. 예: compute.googleapis.com/instance_group/size 커스텀 측정항목을 사용하는 경우 커스텀 측정항목 요구사항을 충족해야 합니다.
  • METRIC_FILTER: 값이 여러 개 있는 측정항목의 개별 값을 사용하고 모니터링 리소스 유형을 지정하려면 필터를 적용합니다. 측정항목 필터에 대한 자세한 내용은 Monitoring 측정항목 개념을 참조하세요.
  • INSTANCE_ASSIGNMENT: MIG의 각 VM 인스턴스에 할당할 작업량입니다.

측정항목을 기준으로 자동 확장 예시

이 섹션에서는 자동 확장에 사용되는 몇 가지 측정항목의 예시를 제공합니다. 전체 측정항목 목록을 보려면 Google Cloud 측정항목을 참조하세요.

커스텀 측정항목을 기준으로 자동 확장

관련 신호를 제공하는 측정항목이 사용 가능한 총 작업량이나 그룹에 적용 가능한 다른 리소스를 나타내는 대신 평균, 백분위수 또는 기타 통계적 특성을 나타낼 수도 있습니다. 이 예시에서는 그룹의 평균 처리 지연 시간을 기준으로 크기를 조절한다고 가정합니다.

다음 설정을 가정해보겠습니다.

  • our-instance-group이라는 이름의 MIG가 특정 작업을 수행하도록 할당됩니다. 그룹은 us-central1-a 영역에 있습니다.
  • 특정 수준으로 유지할 값을 내보내는 Monitoring 커스텀 측정항목이 존재합니다. 이번 예시에서는 측정항목이 그룹에 할당된 쿼리 처리의 평균 지연 시간을 나타냅니다.
    • 커스텀 측정항목이 custom.googleapis.com/example_average_latency로 명명됩니다.
    • 커스텀 측정항목에는 group_name이라는 이름의 키와 MIG의 이름인 our-instance-group과 동일한 값이 있는 라벨이 존재합니다.
    • 커스텀 측정항목은 전역 모니터링 리소스, 즉 어떤 특정 VM과도 연결되지 않은 리소스의 데이터를 내보냅니다.

측정항목 값이 특정 값을 초과하면 부하를 처리하도록 그룹에 VM을 더 추가해야 하고 반면 특정 값 이하이면 일부 리소스를 확보할 수 있습니다. 자동 확장 처리에서 측정항목이 목표보다 높거나 낮은 정도에 비례해 VM을 점진적으로 추가하거나 삭제하려고 합니다. 이 예시에서는 목표 값을 250 delta/sec으로 결정했다고 가정합니다.

사용률 목표 250을 사용하여 그룹의 자동 확장을 구성할 수 있습니다. 이 수치는 자동 확장 처리가 유지하려고 하는 측정항목 값의 변경 속도를 나타냅니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 리소스 및 측정항목 창이 열립니다.

    1. 측정항목 선택을 클릭합니다.
      1. 전역 > 커스텀 측정항목에서 측정항목을 선택합니다.
      2. 적용을 클릭합니다.
    2. 필터 섹션에서 다음을 수행합니다.
      1. 필터 추가를 클릭합니다.
      2. 라벨 드롭다운에서 group_name을 선택합니다.
      3. 필드에 our-instance-group을 입력합니다.
      4. 완료를 클릭합니다. 차트가 새로고침되어 측정항목의 필터링된 값이 표시됩니다.
    3. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 다음을 수행합니다.
      1. 사용률 목표를 선택합니다.
      2. 사용률 목표 값을 250으로 입력합니다.
      3. 사용률 목표 유형을 델타/초로 설정합니다.
    4. 측정항목을 구성한 후 선택을 클릭합니다.
  8. 측정항목 세부정보를 검토한 후 완료를 클릭합니다.

  9. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling our-instance-group \
  --zone=us-central1-a \
  --max-num-replicas=50 \
  --min-num-replicas=0 \
  --update-stackdriver-metric=custom.googleapis.com/example_average_latency \
  --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \
  --stackdriver-metric-utilization-target=250 \
  --stackdriver-metric-utilization-target-type=delta-per-second

REST

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers
{
"name": "our-instance-group-autoscaler",
"target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group",
"autoscalingPolicy": {
  "maxNumReplicas": 50,
  "minNumReplicas": 0,
  "customMetricUtilizations": [
    {
      "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"",
      "utilizationTargetType": "delta-per-second",
      "utilizationTarget": 250.0,
      "metric": "custom.googleapis.com/example_average_latency"
    }
  ]
}
}

Pub/Sub의 미확인 메시지를 기준으로 자동 확장

Pub/Sub 구독에서 확인되지 않은 메시지를 기준으로 자동 확장을 구성하려면 pubsub에서 제공하는 subscription/num_undelivered_messages 측정항목을 사용하고 subscription ID를 기준으로 필터링합니다.

subscription/num_undelivered_messages 측정항목은 처리 중이지만 아직 확인하지 않은 메시지를 포함하여 구독의 총 메시지 수를 내보냅니다. 처리 중인 메시지가 포함되지 않는 측정항목을 사용하지 않는 것이 좋습니다. 이러한 측정항목은 작업이 완료될 때 0으로 감소해 자동 확장을 수평 축소하고 실제 작업을 방해할 수 있기 때문입니다.

구독이 없는 경우 자동 확장을 구성하기 전에 가져오기, 푸시 또는 BigQuery 구독을 만들 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Pub/Sub 큐로 설정합니다.

  7. 주제를 선택합니다. 새 주제를 만들려면 주제 만들기를 클릭하여 주제를 만듭니다.

  8. 자동 확장할 MIG를 기준으로 구독을 선택합니다. 새 구독을 만들려면 구독 만들기를 클릭하여 구독을 만듭니다.

  9. 각 VM에 할당할 메시지 수 필드에서 각 VM에서 처리해야 하는 미확인 메시지 수를 지정합니다.

  10. 완료를 클릭합니다.

  11. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \
  --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \
  --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM

REST

영역 MIG의 자동 확장을 구성하려면 autoscalers 리소스를 사용하거나 리전 MIG의 경우 regionAutoscalers 리소스를 사용합니다.

예를 들어 영역 MIG의 자동 확장 처리를 만들려면 다음을 호출합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM,
      "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"",
      "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages"
    }
  ]
}
}

수신 네트워크 트래픽을 기준으로 자동 확장

MIG의 VM에 대한 수신 네트워크 트래픽을 기준으로 자동 확장을 구성하려면 compute에서 제공하는 instance/network/received_bytes_count 측정항목을 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 리소스 및 측정항목 창이 열립니다.

    1. 측정항목 선택을 클릭합니다.
      1. VM 인스턴스 > 인스턴스 > 수신된 바이트(compute.googleapis.com/instance/network/received_bytes_count)를 선택합니다.
      2. 적용을 클릭합니다.
    2. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 다음을 수행합니다.
      1. 사용률 목표가 선택되었는지 확인합니다.
      2. 사용률 목표 값을 입력합니다.
      3. 사용률 목표 유형을 설정합니다.
    3. 측정항목을 구성한 후 선택을 클릭합니다.
  8. 측정항목 세부정보를 검토한 후 완료를 클릭합니다.

  9. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
    {
      "utilizationTargetType": "TARGET_TYPE",
      "utilizationTarget": TARGET_VALUE,
      "metric": "compute.googleapis.com/instance/network/received_bytes_count"
    }
  ]
}
}

메모리 사용량을 기준으로 자동 확장

사용된 메모리 비율을 기준으로 자동 확장을 구성하려면 메모리 운영 에이전트 측정항목에서 제공하는 percent_used 측정항목을 지정합니다. used 메모리 상태만 사용하려면 측정항목을 state를 기준으로 필터링해야 합니다. 필터를 지정하지 않으면 자동 확장 처리는 모든 메모리 상태에 buffered, cached, free, slab, used 라벨을 지정하여 메모리 사용량 합계를 가져옵니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 인스턴스 그룹 개요 페이지에서 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 리소스 및 측정항목 창이 열립니다.

    1. 측정항목 선택을 클릭합니다.
      1. VM 인스턴스 > 메모리 > 메모리 사용률(compute.googleapis.com/instance/memory/percent_used)을 선택합니다.
      2. 적용을 클릭합니다.
    2. 필터 섹션에서 다음을 수행합니다.
      1. 필터 추가를 클릭합니다.
      2. 라벨 드롭다운에서 상태 측정항목 라벨을 선택합니다.
      3. 필드에 used를 입력합니다.
      4. 완료를 클릭합니다.
    3. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 다음을 수행합니다.
      1. 사용률 목표가 선택되었는지 확인합니다.
      2. 사용률 목표 값을 입력합니다.
      3. 사용률 목표 유형을 게이지로 설정합니다.
    4. 측정항목을 구성한 후 선택을 클릭합니다.
  8. 측정항목 세부정보를 검토한 후 완료를 클릭합니다.

  9. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \
  --stackdriver-metric-filter="metric.labels.state = \"used\""
  --stackdriver-metric-utilization-target-type=gauge \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "filter": "metric.labels.state=\"used\"",
    "utilizationTargetType": "GAUGE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/memory/percent_used"
  }
  ]
}
}

디스크 I/O를 기준으로 자동 확장

총 디스크 I/O 작업 수를 기준으로 자동 확장을 구성하려면 디스크 운영 에이전트 측정항목에서 제공하는 operation_count 측정항목을 사용합니다. 읽기 작업이나 쓰기 작업을 기준으로 확장하려면 direction 라벨을 사용하여 측정항목을 필터링합니다. 마찬가지로 특정 기기의 디스크 작업을 기준으로 확장하려면 측정항목 필터에서 device 라벨을 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 인스턴스 그룹 개요 페이지에서 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 리소스 및 측정항목 창이 열립니다.

    1. 측정항목 선택을 클릭합니다.
      1. VM 인스턴스 > 디스크 > 디스크 작업(agent.googleapis.com/disk/operation_count)을 선택합니다.
      2. 적용을 클릭합니다.
    2. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 다음을 수행합니다.
      1. 사용률 목표가 선택되었는지 확인합니다.
      2. 사용률 목표 값을 입력합니다.
      3. 사용률 목표 유형을 설정합니다.
    3. 측정항목을 구성한 후 선택을 클릭합니다.
  8. 측정항목 세부정보를 검토한 후 완료를 클릭합니다.

  9. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --max-num-replicas=MAX_INSTANCES  \
  --min-num-replicas=MIN_INSTANCES  \
  --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \
  --stackdriver-metric-utilization-target=TARGET_VALUE  \
  --stackdriver-metric-utilization-target-type=TARGET_TYPE

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "utilizationTargetType": "TARGET_TYPE",
    "utilizationTarget": TARGET_VALUE,
    "metric": "agent.googleapis.com/disk/operation_count"
  }
  ]
}
}

다른 MIG 크기를 기준으로 자동 확장

동일한 프로젝트 내 다른 MIG 크기를 기준으로 MIG를 자동 확장할 수 있습니다. 예를 들어 부하 분산기를 기준으로 자동 확장하는 프런트엔드 MIG와 프런트엔드에 비례하여 자동 확장되는 백엔드 MIG가 있는 다중 계층 애플리케이션이 있을 수 있습니다. 단일 인스턴스 할당을 사용하여 모든 프런트엔드 VM에 필요한 백엔드 VM 수를 정의합니다. 프런트엔드 VM 4개마다 백엔드 VM 1개가 필요한 경우 백엔드 MIG에서 단일 인스턴스 할당을 4로 설정합니다.

다른 MIG(MIG_2) 크기를 기준으로 MIG(MIG_1)를 자동 확장하려면 compute에서 제공하는 instance_group/size 측정항목을 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 목록에서 MIG 이름을 클릭하여 인스턴스 그룹 개요 페이지를 엽니다.

  3. 인스턴스 그룹 개요 페이지에서 수정을 클릭합니다.

  4. 자동 확장 구성이 없는 경우:

    1. 자동 확장에서 자동 확장 구성을 클릭합니다.
    2. 자동 확장 모드에서 켜기: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  5. 자동 확장 아래의 자동 확장 신호 섹션에서 신호 추가를 클릭합니다.

  6. 신호 유형Cloud Monitoring 측정항목으로 설정합니다.

  7. 구성을 클릭합니다. 리소스 및 측정항목 창이 열립니다.

    1. 측정항목 선택을 클릭합니다.
      1. 인스턴스 그룹 > Instance_group > 인스턴스 그룹 크기(compute.googleapis.com/instance_group/size)를 선택합니다.
      2. 적용을 클릭합니다.
    2. 필터 섹션에서 다음을 수행합니다.
      1. 필터 추가를 클릭합니다.
      2. 라벨 드롭다운에서 instance_group_name 리소스 라벨을 선택합니다.
      3. 필드에 자동 확장하려는 MIG를 기준으로 MIG(MIG_2) 이름을 입력합니다.
      4. 완료를 클릭합니다.
    3. 자동 확장을 위한 측정항목 대상 옵션 섹션에서 다음을 수행합니다.
      1. 단일 VM 인스턴스 할당을 선택합니다.
      2. MIG_2의 VM 4개마다 현재 MIG(MIG_1)에 VM 1개를 유지하려면 단일 VM 인스턴스 할당 필드에 4를 입력합니다.
    4. 측정항목을 구성한 후 선택을 클릭합니다.
  8. 측정항목 세부정보를 검토한 후 완료를 클릭합니다.

  9. 완료되면 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed set-autoscaling MIG_1 \
  --max-num-replicas=MAX_INSTANCES \
  --min-num-replicas=MIN_INSTANCES \
  --update-stackdriver-metric=compute.googleapis.com/instance_group/size \
  --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \
  --stackdriver-metric-single-instance-assignment=4

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers
{
"name": "AUTOSCALER_NAME",
"target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1",
"autoscalingPolicy": {
  "maxNumReplicas": MAX_INSTANCES,
  "minNumReplicas": MIN_INSTANCES,
  "customMetricUtilizations": [
  {
    "singleInstanceAssignment": 4,
    "filter": "resource.type = \"instance_group\" and resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"",
    "metric": "compute.googleapis.com/instance_group/size"
  }
  ]
}
}

Monitoring 측정항목 개념

이 섹션에서는 Monitoring 측정항목을 기준으로 자동 확장을 구성하는 동안 알아야 하는 Monitoring 측정항목 개념을 간략하게 설명합니다.

  • 측정항목 식별자 또는 측정항목 URL: 프로토콜 없는 URL 형식의 측정항목 이름입니다. 측정항목 목록에서 기본 제공 측정항목 URL의 URL을 찾을 수 있습니다.

    예를 들어 확인되지 않은 메시지 수를 제공하는 Pub/Sub 측정항목의 URL은 pubsub.googleapis.com/subscription/num_undelivered_messages입니다.

  • 모니터링 리소스 유형: 측정항목 값의 소스입니다. 측정항목 목록에서 측정항목의 모니터링 리소스 유형을 찾을 수 있습니다.

    예를 들어 pubsub.googleapis.com/subscription/num_undelivered_messages 측정항목의 모니터링 리소스 유형은 pubsub_subscription입니다. 각 모니터링 리소스 유형에 대한 자세한 내용은 모니터링 리소스 유형을 참조하세요.

  • 측정항목 필터: 측정항목에 값이 여러 개 있으면 자동 확장 처리는 가능한 측정항목 값 집합에서 특정 측정항목 값을 식별하도록 필터가 사용 설정됩니다. 측정항목모니터링 리소스 유형에 정의된 라벨을 사용하여 값을 필터링합니다. 다른 필터로 측정항목 값을 탐색하려면 측정항목 탐색기에서 사용해보면 됩니다.

    예를 들어 다음 스크린샷에서는 사용 가능한 모든 구독에서 확인되지 않은 메시지 수를 제공하는 pubsub.googleapis.com/subscription/num_undelivered_messages 측정항목을 보여줍니다. 차트의 각 선은 구독을 나타냅니다.

    필터를 사용하지 않고 측정항목 값을 표시하는 측정항목 탐색기

    필터가 없으면 자동 확장 처리가 모든 구독에서 측정항목 값의 합계를 가져옵니다. 단일 구독을 기준으로 자동 확장하려면 pubsub_subscription에 정의된 subscription_id 라벨에 필터를 적용합니다. 다음 스크린샷에서는 필터를 적용한 후의 단일 구독을 보여줍니다.

    필터링된 측정항목 값을 표시하는 측정항목 탐색기

측정항목 필터링 요구사항

값이 여러 개(라벨로 분류됨) 있는 측정항목을 사용하면 필터를 적용하여 측정항목의 특정 값을 기준으로 자동 확장할 수 있습니다. 필터에서 값을 여러 개 반환하면 값이 함께 추가됩니다. 최상의 결과를 얻으려면 단일 값을 반환할 수 있도록 구체적으로 필터를 만듭니다.

측정항목의 자동 확장 처리 필터링은 Monitoring 필터 구문과 호환됩니다. 필터는 다음 요구사항을 충족해야 합니다.

  • 필터 값을 큰따옴표로 묶어야 합니다.
  • 같음 비교 연산자(=)를 사용해야 합니다.
  • 다른 필터 기준을 조인하려면 AND 연산자를 사용해야 합니다.

    예: --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\"".

  • 직접 값을 사용해야 합니다. 필터에 와일드 카드나 함수를 사용할 수 없습니다.

    예를 들어 resource.labels.zone = starts_with("us-")를 사용할 수 없습니다.

  • 모니터링 리소스에 대한 메타데이터를 저장하는 리소스 메타데이터 라벨을 사용할 수 없습니다.

필터링할 수 있는 측정항목 라벨과 모니터링 리소스 라벨에 대한 전체 참조는 측정항목 목록모니터링 리소스 목록을 참조하세요.

커스텀 측정항목 요구사항

커스텀 측정항목을 사용하려면 먼저 모니터링 리소스 유형 중 하나와 연결된 커스텀 측정항목을 만들어야 합니다.

자동 확장에 사용되는 커스텀 측정항목에는 다음 속성이 있어야 합니다.

  • 자동 확장 구성에서 그룹에 있는 각 VM의 데이터를 사용하는 경우 각 VM이 커스텀 측정항목을 내보내도록 MIG에 인스턴스를 설정합니다. 각 VM에서 내보낸 값은 다음 라벨이 포함된 gce_instance 모니터링 리소스와 연결되어야 합니다.
    • zone - 인스턴스가 있는 영역의 이름 포함
    • instance_id - VM에 할당된 고유한 숫자 ID의 값 포함
  • 측정항목은 최소한 60초마다 데이터를 내보내야 합니다. 60초보다 짧은 주기로 데이터를 내보내면 자동 확장 처리가 부하 변경사항에 더 빠르게 반응할 수 있습니다. 60초보다 긴 주기로 데이터를 내보내면 자동 확장 처리가 부하 변경사항에 충분히 빠르게 반응하지 못할 수 있습니다.
  • 측정항목에서 INT64 또는 DOUBLE 값 유형의 데이터를 내보내야 합니다.

커스텀 측정항목을 만드는 방법에 대한 자세한 내용은 커스텀 측정항목 사용을 참조하세요.

다음 단계