자동 확장을 사용 설정하여 MIG 만들기


이 문서에서는 그룹 전체의 평균 CPU 사용률에 따라 VM을 자동으로 추가하고 삭제하는 자동 확장된 관리형 인스턴스 그룹(MIG)을 만드는 방법을 설명합니다. 예를 들어 그룹의 CPU 사용률이 낮으면 비용이 절감되도록 그룹에서 VM을 자동으로 삭제합니다.

다양한 종류의 자동 확장 신호를 기반으로 MIG를 자동 확장할 수 있습니다. 자세한 내용은 자동 확장 처리 개요를 참조하세요.

MIG를 만드는 다른 기본 시나리오도 참조하세요.

시작하기 전에

  • 관리형 인스턴스 그룹을 만드는 데 필요한 인스턴스 템플릿을 만듭니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      로컬 개발 환경에서 이 페이지의 Terraform 샘플을 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.

      REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.

제한사항

사용하는 구성에 따라 달라지는 MIG 제한사항의 전체 목록을 보려면 MIG 제한사항을 참조하세요.

MIG 만들기 및 자동 확장 사용 설정

Google Cloud 콘솔, gcloud CLI, Terraform 또는 REST를 사용합니다.

콘솔

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

    인스턴스 그룹으로 이동

    나머지 단계는 Google Cloud 콘솔에서 자동으로 표시됩니다.

  2. 인스턴스 그룹이 있으면 인스턴스 그룹을 선택하고 수정을 클릭합니다. 인스턴스 그룹이 없으면 인스턴스 그룹 만들기를 클릭합니다.
  3. 새 인스턴스 그룹의 경우 이름을 할당한 후 인스턴스 그룹에 대한 인스턴스 템플릿을 선택하거나 새 항목을 만듭니다.
  4. 자동 확장 구성이 없으면 자동 확장에서 자동 확장 구성을 클릭합니다.
  5. 자동 확장 모드에서 사용: 그룹에 인스턴스 추가 및 삭제를 선택하여 자동 확장을 사용 설정합니다.
  6. 자동 확장 처리가 이 그룹에 만들 수 있는 인스턴스의 최소 및 최대 개수를 지정합니다.
  7. 자동 확장 측정항목 섹션에서 기존 CPU 사용률 측정항목이 아직 없으면 추가합니다.
    1. 측정항목 추가를 클릭합니다.
    2. 측정항목 유형에서 CPU 사용률을 선택합니다.
    3. 대상 CPU 사용률을 원하는 대로 입력합니다. 이 값은 백분율로 간주됩니다. 예를 들어 원하는 CPU 사용률이 75%이면 75을 입력합니다.
    4. 예측 자동 확장에서 사용 안함을 선택합니다. 예측 자동 확장에 대한 자세한 내용과 워크로드에 적합한지 여부를 알아보려면 예측을 기준으로 확장을 참조하세요.
    5. 완료를 클릭합니다.
  8. 초기화 기간을 사용하여 애플리케이션이 초기화되는 데 걸리는 시간을 자동 확장 처리에 알려주는 초기화 기간을 설정할 수 있습니다. 정확한 초기화 기간을 지정하면 자동 확장 처리 결정이 향상됩니다. 예를 들어 아직 초기화 중인 VM은 애플리케이션의 일반적인 사용량을 아직 나타내지 않을 수 있으므로, 수평 확장 시 자동 확장 처리는 이러한 VM의 데이터를 무시합니다. 기본 초기화 기간은 60초입니다.
  9. MIG를 만들려면 만들기를 클릭합니다.

gcloud

자동 확장을 사용 설정하려면 먼저 MIG를 만들어야 합니다. 안내에 따라 단일 영역으로 제한된 VM으로 MIG를 만들거나 리전의 여러 영역에 분산된 VM으로 MIG를 만듭니다.

그런 다음 set-autoscaling 하위 명령어를 사용하여 그룹에 자동 확장을 사용 설정합니다. 예를 들어 다음 명령어는 대상 CPU 사용률이 60%인 자동 확장 처리를 만듭니다. 자동 확장 처리를 만들 때는 --target-cpu-utilization 매개변수와 함께 --max-num-replicas 매개변수도 필요합니다.

원하는 경우 그룹에 원하는 최소 VM 수를 나타내는 --min-num-replicas를 설정할 수 있습니다. 최솟값을 설정하지 않으면 기본적으로 MIG가 이 값을 2로 설정합니다.

--cool-down-period 플래그를 사용하여 애플리케이션이 초기화되는 데 걸리는 시간을 자동 확장 처리에 알려주는 초기화 기간을 설정할 수 있습니다. 정확한 초기화 기간을 지정하면 자동 확장 처리 결정이 향상됩니다. 예를 들어 아직 초기화 중인 VM은 애플리케이션의 일반적인 사용량을 아직 나타내지 않을 수 있으므로, 수평 확장 시 자동 확장 처리는 이러한 VM의 데이터를 무시합니다. 기본 초기화 기간은 60초입니다.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

원하는 경우 예측 자동 확장을 사용 설정하여 예측된 부하보다 앞서 수평 확장할 수 있습니다. 예측 자동 확장이 워크로드에 적합한지 여부를 알아보려면 예측을 기준으로 확장을 참조하세요.

instance-groups managed describe 명령어를 사용하여 자동 확장이 사용 설정되었는지 확인할 수 있으며 이 명령어는 해당 MIG를 설명하고 그룹의 자동 확장 기능에 대한 정보를 제공합니다.

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

자동 확장을 사용 설정하려면 먼저 MIG를 만들어야 합니다. 안내에 따라 단일 영역으로 제한된 VM으로 MIG를 만들거나 리전의 여러 영역에 분산된 VM으로 MIG를 만듭니다.

MIG의 자동 확장을 구성하려면 google_compute_autoscaler 리소스를 사용하면 됩니다.

다음 샘플에서는 영역 MIG의 CPU 사용률에 따른 자동 확장을 구성합니다.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

REST

자동 확장을 사용 설정하려면 먼저 단일 영역에 제한된 VM으로 MIG를 만들거나 리전의 여러 영역에 분산된 VM으로 MIG를 만들어야 합니다.

영역 MIG가 있으면 autoscalers.insert 메서드에 POST 요청을 수행합니다. 리전 MIG가 있으면 regionAutoscalers.insert 메서드를 사용합니다.

예를 들면 다음과 같습니다.

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

요청 본문에는 name, target, autoscalingPolicy 필드가 포함되어야 합니다. autoscalingPolicy 필드는 대상 cpuUtilization 값과 maxNumReplicas 값을 정의해야 합니다.

원하는 경우 그룹에 원하는 최소 VM 수를 나타내는 minNumReplicas를 설정할 수 있습니다. 최솟값을 설정하지 않으면 기본적으로 MIG가 이 값을 2로 설정합니다.

coolDownPeriodSec 필드를 사용하여 애플리케이션이 초기화되는 데 걸리는 시간을 자동 확장 처리에 알려주는 초기화 기간을 설정할 수 있습니다. 정확한 초기화 기간을 지정하면 자동 확장 처리 결정이 향상됩니다. 예를 들어 아직 초기화 중인 VM은 애플리케이션의 일반적인 사용량을 아직 나타내지 않을 수 있으므로, 수평 확장 시 자동 확장 처리는 이러한 VM의 데이터를 무시합니다. 기본 초기화 기간은 60초입니다.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

원하는 경우 예측 자동 확장을 사용 설정하여 예측된 부하보다 앞서 수평 확장할 수 있습니다. 예측 자동 확장이 워크로드에 적합한지 여부를 알아보려면 예측을 기준으로 확장을 참조하세요.

CPU 사용률을 따른 자동 확장 사용 설정에 대한 자세한 내용은 CPU 사용률을 기준으로 확장을 참조하세요.

다음 단계