자동 확장 처리 관리

관리형 인스턴스 그룹(MIG)을 사용하는 경우 이 페이지에서 MIG의 자동 확장 처리를 생성, 설명, 업데이트, 제한, 중지, 삭제하는 방법을 알아보세요.

MIG에 대한 자세한 내용은 개요를 참조하세요.

시작하기 전에

자동 확장 처리 생성

자동 확장 처리를 만드는 것은 사용할 자동 확장 정책에 따라 약간 달라집니다. 자동 확장 처리 생성에 대한 안내는 다음을 참조하세요.

자동 확장 처리 정보 가져오기

특정 자동 확장 처리에 대한 자세한 정보를 가져오려면 영역별 또는 리전별 자동 확장 처리 리소스에 Compute Engine API의 콘솔, gcloud compute instance-groups managed describe 하위 명령어, get 메서드를 사용합니다.

Console

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.
  3. 세부정보를 클릭하여 자동 확장 설정을 비롯한 그룹의 세부정보를 봅니다.

gcloud

instance-groups managed describe 명령어를 사용합니다.

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME

자동 확장 처리가 그룹에 연결된 경우 이 명령어는 자동 확장 처리에 대해 세부정보를 반환합니다.

...
autoscaler:
  autoscalingPolicy:
    coolDownPeriodSec: 60
    cpuUtilization:
      utilizationTarget: 0.6
    maxNumReplicas: 20
    minNumReplicas: 10
    mode: ON
    scaleInControl:
      timeWindowSec: 300
      maxScaledInReplicas:
        fixed: 3
        calculated: 3
...

API

instanceGroupManagers.get 메서드를 사용합니다. 리전 MIG의 경우 zones/ZONEregions/REGION으로 바꿉니다.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

자동 확장 처리가 그룹에 연결된 경우 요청이 자동 확장 처리 리소스에 대한 링크를 반환합니다.

200 OK

{
  ...
  "status": {
    ...
    "autoscaler": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group"
  },
}

자동 확장 처리 리소스에 대한 세부정보를 검색하려면 autoscalers.get 메서드를 사용합니다. 리전 자동 확장 처리의 경우 zones/ZONEregions/REGION으로 바꿉니다.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/example-autoscaler
200 OK

{
 "kind": "compute#autoscaler",
 "id": "8744945839459481093",
 "creationTimestamp": "2018-09-28T13:02:50.553-07:00",
 "name": "example-group",
 "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/instanceGroupManagers/example-group",
 "autoscalingPolicy": {
  "minNumReplicas": 10,
  "maxNumReplicas": 20,
  "mode": "ON",
  "scaleInControl": {
    "timeWindowSec": 60,
    "maxScaledInReplicas": {
      "calculated": 3,
      "percent": 15
    }
  },
  "coolDownPeriodSec": 60,
  "cpuUtilization": {
   "utilizationTarget": 0.6
  }
 },
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group",
 "status": "ACTIVE"
}

자동 확장 처리 업데이트

자동 확장 처리를 업데이트하려면 Google Cloud Console, gcloud 도구 또는 Compute Engine API를 사용하세요.

자동 확장 처리를 업데이트하는 경우 변경사항이 적용되는 데 다소 시간이 걸릴 수 있으며, 새 자동 확장 처리 설정이 반영되기까지 몇 분 정도 걸릴 수 있습니다.

Console

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.
  3. 그룹 수정을 클릭하여 자동 확장 설정을 비롯한 그룹의 현재 구성을 보고 업데이트합니다.
  4. 작업을 마쳤으면 저장을 클릭합니다.

gcloud

update-autoscaling 명령어를 사용합니다.

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
        --max-num-replicas MAX_NUM ...

자동 확장 처리를 만드는 방법에 대한 안내는 자동 확장 처리 만들기를 참조하세요.

API

영역별 MIG의 자동 확장 처리 리소스를 업데이트하려면 영역별 자동 확장 처리의 patch 메서드를 사용합니다. 리전 MIG의 경우 regionAutoscaler의 patch 메서드를 사용합니다. 새 구성을 포함하는 요청 본문을 제공합니다.

PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers/example-autoscaler

{
 "autoscalingPolicy": {
  "maxNumReplicas": 20
 }
}
200 OK

{
 "kind": "compute#operation",
 "id": "4244494732310423322",
 "name": "operation-1556912627871-58800f8216ed7-74ab1720-7d360603",
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f",
 "operationType": "compute.autoscalers.patch",
 "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers/example-autoscaler",
 "targetId": "340775527929467142",
 "status": "RUNNING",
 ...
}

데이터를 수정하는 요청을 실행하면 zoneOperations 또는 regionOperations 리소스가 반환되며, 작업을 쿼리하여 변경 상태를 확인할 수 있습니다.

자동 확장 처리 해제 또는 제한

자동 확장 처리를 해제하여 일시적으로 MIG 확장을 방지하거나 자동 확장 처리를 제한하여 MIG 확장만 가능하게 할 수 있습니다. 이 기능은 다음과 같은 경우에 유용합니다.

  • 축소로 인한 방해를 받지 않고 VM 인스턴스를 조사하려는 경우
  • 그룹이 부분적으로 재구성되는 동안 확장 작업을 트리거하지 않고 MIG의 여러 속성을 재구성하려는 경우
  • 워크로드를 새 MIG로 리디렉션하는 동안 빠른 롤백을 위해 MIG 용량을 유지하려는 경우

자동 확장 처리를 다시 사용 설정하면 자동 확장 처리가 자동으로 정상 작동으로 돌아갑니다.

Google Cloud Console, gcloud 도구 또는 Compute Engine API에서 자동 확장 처리의 mode를 다음과 같이 설정합니다.

  • 끄기: 일시적으로 자동 확장을 사용 중지합니다. MIG 크기가 자동으로 변경되는 것을 방지하려면 이 모드를 사용합니다. 자동 확장 구성은 그대로 유지되므로 나중에 자동 확장을 다시 사용 설정할 수 있습니다.
  • 수평 확장만: 새 VM 인스턴스만 추가하도록 자동 확장을 제한합니다. 그룹이 축소되는 것을 방지하고 부하가 증가할 때 그룹이 추가 VM을 프로비저닝할 수 있도록 하려면 이 모드를 사용합니다.
  • 사용: 정책에 따라 모든 자동 확장 작업을 사용 설정합니다.

Console

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.
  3. 그룹 수정을 클릭하여 자동 확장 설정을 비롯한 그룹의 현재 구성을 봅니다.
  4. 자동 확장 아래에서 자동 확장 모드를 설정하여 그룹의 자동 확장을 사용 중지 또는 제한하거나 자동 확장 처리를 다시 설정합니다.
  5. 작업을 마쳤으면 저장을 클릭합니다.

gcloud

자동 확장 처리를 사용 중지, 제한, 다시 사용 설정하려면 --mode 플래그와 함께 set-autoscaling 명령어를 사용합니다.

gcloud compute instance-groups managed set-autoscaling INSTANCE_GROUP_NAME 
--mode MODE

다음을 바꿉니다.

  • MODE:
    • off: 자동 확장 처리를 사용 중지하지만 해당 구성은 유지합니다.
    • only-scale-out: 자동 확장 처리에서 VM 인스턴스 추가만 가능하도록 제한합니다.
    • on: 정책에 따라 모든 자동 확장 처리 활동을 다시 사용 설정합니다.

API

영역별 MIG에 대한 자동 확장 처리 리소스의 모드를 업데이트하려면 자동 확장 처리의 patch 메서드를 사용합니다. 리전 MIG의 경우 regionAutoscaler의 patch 메서드를 사용합니다. autoscalingPolicy.mode 속성을 포함하는 요청 본문을 제공합니다.

PATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1-f/autoscalers?autoscaler=my-autoscaler

{
  "autoscalingPolicy": {
    "mode":"MODE"
  }
}

다음을 바꿉니다.

  • MODE:
    • OFF: 자동 확장 처리를 사용 중지하지만 해당 구성은 유지합니다.
    • ONLY_SCALE_OUT: 자동 확장 처리에서 인스턴스 추가만 가능하도록 제한합니다.
    • ON: 정책에 따라 모든 자동 확장 처리 활동을 다시 사용 설정합니다.

자동 확장 처리의 수평 축소 속도 제어

워크로드를 초기화하는 데 시간이 오래 걸리는 경우에는 갑작스러운 수평 축소 이벤트로 인해 응답 지연 시간 및 서비스 중단이 발생할 위험을 줄이기 위해 수평 축소 제어를 구성하세요. 특히 부하가 감소한 직후 부하 급증이 발생할 것으로 예상되는 경우 수평 축소 속도를 제한할 수 있습니다. 수평 축소 속도를 제한하여 자동 확장 처리에서 워크로드가 감당할 수 있는 것보다 더 많은 수의 VM 인스턴스를 잃어 MIG 크기가 줄어들지 않도록 할 수 있습니다.

수평 축소 제어 구성

gcloud 도구 또는 Compute Engine API를 사용하여 축소 제어를 구성합니다. 축소 제어 구성은 선택사항입니다. 기본적으로 축소 제어는 구성되지 않습니다. 구성되지 않은 경우에도 자동 확장 처리는 기본 안정화 메커니즘을 사용합니다. 즉, 이후 10분의 안정화 기간 동안 관찰된 최대 부하를 제공하는 데 필요한 수준으로 권장 크기를 유지합니다.

Console

자동 확장된 MIG의 수평 축소 제어를 구성하려면 다음 안내를 따르세요.

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 자동 확장된 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.

  3. 그룹 수정을 클릭하여 자동 확장 설정을 비롯한 그룹의 현재 구성을 봅니다.

  4. 자동 확장에서 축소 제어 사용 설정을 선택합니다.

  5. 다음 이상으로 축소하지 않음에서 그룹에서 한 번에 삭제할 수 있는 최대 인스턴스 수나 비율을 지정합니다.

  6. 기준 시간에서 인스턴스를 그룹에서 제거할 수 있는 빈도를 지정합니다.

  7. 저장을 클릭합니다.

gcloud

자동 확장 처리를 만들거나 업데이트하는 경우 축소 제어를 구성할 수 있습니다.

자동 확장 처리 생성 시 수평 축소 제어 구성

gcloud compute instance-groups managed set-autoscaling 명령어와 함께 --scale-in-control 플래그를 사용하여 MIG에 대한 자동 확장 처리를 만들 때 수평 축소 제어를 설정합니다. 예를 들어 다음 명령어를 사용하여 example-group의 자동 확장을 구성합니다.

gcloud compute instance-groups managed set-autoscaling INSTANCE_GROUP_NAME \
    --target-cpu-utilization 0.6 \
    --max-num-replicas 50 \
    --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW

자동 확장 처리 업데이트 시 수평 축소 제어 구성

gcloud compute instance-groups managed update-autoscaling 명령어와 함께 --scale-in-control 플래그를 사용하여 MIG의 기존 자동 확장 처리에서 수평 축소 제어를 업데이트합니다. 예를 들어 다음 명령어를 사용하여 example-group의 기존 자동 확장 구성에서 축소 제어를 설정합니다.

gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \
    --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: 업데이트할 MIG의 이름입니다.
  • MAX_SCALE_IN_REPLICAS: 지정된 후속 기간에서 가져온 최대 크기에서 뺄 수 있는 최대 VM 수입니다. 지정된 수의 VM 인스턴스가 한 번에 축소될 수 있으므로 서비스에서 한 번에 여러 VM을 잃는 것을 감당할 수 있어야 합니다. VM 수 또는 비율을 지정할 수 있습니다. 비율에는 % 기호를 사용합니다(예: 50%).
  • TIME_WINDOW: 최대 크기를 가져올 후속 기간입니다. 자동 확장은 이 후속 기간 동안 가져온 최대 크기에서 허용되는 최대 복제본 수만큼 축소되지 않습니다. [60, 3600] 간격 내에서 이 값을 초 단위로 지정합니다.

예를 들어 기간을 1,800초(30분)로 설정했다고 가정해 보겠습니다. MIG의 현재 권장 크기를 계산할 때 자동 확장 처리는 다음 로직을 사용합니다.

  • 지난 30분에서 최대 크기 가져오기(예: VM 100개).
  • max-scaled-in-replicas 가져오기(예: VM 10개)
  • 최대 크기 - max-scaled-in-replicas(100 - 10 = VM 90개)로 권장 크기의 하한 설정

API

영역별 또는 리전별 자동 확장 처리 리소스의 autoscalingPolicy.scaleInControl 구조 내에서 maxScaledInReplicastimeWindowSec 필드를 설정하여 수평 축소 제어를 구성합니다. 이 필드에는 기본값이 없으므로 두 필드 모두에 값을 제공해야 합니다.

자동 확장 처리를 만들거나 업데이트하는 경우 축소 제어를 구성할 수 있습니다.

자동 확장 처리 생성 시 수평 축소 제어 구성

영역별 MIG의 경우 영역별 autoscaler insert 메서드를 사용합니다. 리전별 MIG의 경우 regionAutoscalers insert 메서드를 사용합니다.

POST
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleInControl": {
      "maxScaledInReplicas": {
           "fixed": MAX_SCALE_IN_REPLICAS
      },
      "timeWindowSec": TIME_WINDOW
    }
  }
}

자동 확장 처리 만들기에 대한 자세한 내용은 다음 자료를 참조하세요.

자동 확장 처리 업데이트 시 수평 축소 제어 구성

영역별 MIG의 경우 영역별 autoscaler patch 메서드를 사용합니다. 리전 MIG의 경우 regionAutoscalers patch 메서드를 사용합니다.

PATCH
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": 1,
    "maxNumReplicas": 5,
    "coolDownPeriodSec": 60,
    "cpuUtilization": {
      "utilizationTarget": 0.8
    },
    "scaleInControl": {
      "maxScaledInReplicas": {
           "fixed": MAX_SCALE_IN_REPLICAS
      },
      "timeWindowSec": TIME_WINDOW
    }
  }
}

다음을 바꿉니다.

  • AUTOSCALER_NAME: 만들려는 자동 확장 처리의 이름입니다. 자동 확장 처리의 이름을 MIG로 지정하거나 다른 이름으로 지정할 수 있습니다.
  • INSTANCE_GROUP_NAME: 자동 확장 처리를 추가할 MIG의 이름입니다. 리전 MIG의 경우 zones/ZONEregions/REGION으로 바꿉니다.
  • MAX_SCALE_IN_REPLICAS: 지정된 후속 기간에서 가져온 최대 권장 대상 크기에서 뺄 수 있는 최대 VM 수입니다. 지정된 수의 VM 인스턴스가 한 번에 축소될 수 있으므로 서비스에서 한 번에 여러 VM을 잃는 것을 감당할 수 있어야 합니다. VM 수 또는 비율을 지정할 수 있습니다. maxScaledInReplicas.percentage를 사용하여 비율 값을 지정합니다.
  • TIME_WINDOW: 최대 권장 크기를 가져올 후속 기간입니다. 자동 확장은 이 후속 기간 동안 가져온 최대 권장 크기에서 허용되는 최대 복제본 수만큼 축소되지 않습니다. [60, 3600] 간격 내에서 이 값을 초 단위로 지정합니다(예: 1800).

예를 들어 기간을 1,800초(30분)로 설정했다고 가정해 보겠습니다. MIG의 현재 권장 크기를 계산할 때 자동 확장 처리는 다음 로직을 사용합니다.

  • 지난 30분에서 최대 크기 가져오기(예: VM 100개).
  • max-scaled-in-replicas 가져오기(예: VM 10개)
  • 최대 크기 - max-scaled-in-replicas(100 - 10 = VM 90개)로 권장 크기의 하한 설정

축소 제어 작동 방식에 대한 자세한 내용은 자동 확장 처리 결정 이해를 참조하세요.

축소 제어의 현재 구성 가져오기

축소 제어의 현재 구성을 가져오려면 자동 확장 처리 정보 가져오기를 참조하세요.

축소 제어 삭제

gcloud 명령줄 도구 또는 Compute Engine API를 사용하여 축소 제어를 삭제하여 축소 작업의 시기와 규모를 제한할 수 있습니다.

축소 제어가 없어도 자동 확장 처리는 여전히 기본 안정화 메커니즘을 사용합니다. 특히 후속 10분의 안정화 기간 동안 관찰된 최대 부하를 제공하는 데 필요한 수준으로 권장 크기를 유지합니다.

Console

자동 확장된 MIG의 수평 축소 제어를 삭제하려면 다음 안내를 따르세요.

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 자동 확장된 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.

  3. 그룹 수정을 클릭하여 자동 확장 설정을 비롯한 그룹의 현재 구성을 봅니다.

  4. 자동 확장에서 축소 제어 사용 설정 체크박스 선택을 취소합니다.

  5. 저장을 클릭합니다.

gcloud

gcloud compute instance-groups managed update-autoscaling 명령어와 함께 --clear-scale-in-control 플래그를 사용하여 축소 제어를 삭제합니다. 예를 들어 example-group의 자동 확장 구성에서 축소 제어를 삭제하려면 다음 명령어를 사용합니다.

gcloud compute instance-groups managed update-autoscaling example-group \
    --clear-scale-in-control

API

수평 축소 제어를 삭제하려면 autoscalers.patch 메서드를 사용하고 수평 축소 제어의 빈 구성을 제공합니다. 리전 MIG의 경우 zones/ZONEregions/REGION으로 바꿉니다.

PATCH
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scaleInControl": null
  }
}

다음을 바꿉니다.

  • AUTOSCALER_NAME: 업데이트할 자동 확장 처리의 이름입니다. 기존 자동 확장 처리 및 대상 MIG 목록을 가져오려면 영역별 또는 리전별 자동 확장 처리 aggregatedList 메서드를 사용합니다.

자동 확장 처리 삭제

Google Cloud Console, gcloud 도구 또는 Compute Engine API를 사용하여 자동 확장 처리 리소스를 영구적으로 삭제할 수 있습니다. 자동 확장을 일시 중지하고 자동 확장 처리 리소스와 구성을 유지하려면 자동 확장 처리를 사용 중지하세요.

Console

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

    인스턴스 그룹 페이지로 이동

  2. 목록에서 MIG의 이름을 클릭하여 그룹의 세부정보 페이지를 엽니다.

  3. 그룹 수정을 클릭하여 자동 확장 설정을 비롯한 그룹의 현재 구성을 봅니다.

  4. 자동 확장 아래에서 자동 확장 구성 삭제를 클릭하여 자동 확장 처리를 중지하고 해당 구성을 삭제합니다.

  5. 작업을 마쳤으면 저장을 클릭합니다.

gcloud

자동 확장 처리를 중지하고 해당 구성을 삭제하려면 stop-autoscaling 명령어를 사용합니다.

gcloud compute instance-groups managed stop-autoscaling INSTANCE_GROUP_NAME

자동 확장 처리를 중지하면 MIG에서 삭제됩니다. 자동 확장 처리를 다시 시작하려면 set-autoscaling 명령어를 사용하여 다시 만들어야 합니다.

gcloud 도구를 사용하여 MIG를 삭제하면 MIG에 연결된 자동 확장 처리도 모두 삭제됩니다.

API

자동 확장 처리를 중지하고 해당 구성을 삭제하려면 delete 메서드를 호출합니다. 리전 MIG의 경우 zones/ZONEregions/REGION으로 바꿉니다.

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

의견

자동 확장에 대한 사용 사례, 문제, 의견을 알고 싶습니다. mig-discuss@google.com으로 저희 팀에 의견을 공유해 주세요.

다음 단계