인스턴스 유연성을 사용하여 VM 일괄 생성

이 문서에서는 가상 머신 (VM)을 일괄적으로 만들 때 인스턴스 유연성을 구성하는 방법을 설명합니다. 인스턴스 유연성을 사용하면 여러 머신 유형을 지정하고, 선호도에 따라 순위를 지정하고, 각 선택에 대해 최소 CPU 플랫폼 및 디스크 설정을 재정의하여 Compute Engine이 리전의 용량 및 할당량 가용성에 따라 VM을 프로비저닝할 수 있습니다.

일괄 생성된 VM의 인스턴스 유연성에 대한 자세한 내용은 일괄 생성된 VM의 인스턴스 유연성 정보를 참조하세요.

시작하기 전에

  • 만들려는 VM과 관련 리소스의 경우 할당량이 충분한지 확인합니다.
  • 스팟 VM을 일괄로 만들려면 VM을 만들기 전에 리소스의 가용성을 확인하세요. 리소스 가용성을 확인하면 VM을 만들 때 리소스 가용성 오류가 발생할 가능성을 줄일 수 있습니다. 자세한 내용은 스팟 VM의 리소스 가용성 보기를 참고하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Cloud de Confiance by S3NS 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

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

    gcloud

    1. Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

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

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

      Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다.

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

필요한 역할

VM 일괄 생성에 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 인스턴스 관리자 (v1) (roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 VM을 일괄로 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

VM을 일괄로 만들려면 다음 권한이 필요합니다.

  • 프로젝트에 대한 compute.instances.create 권한
  • 커스텀 이미지를 사용하여 VM 만들기: 이미지에 대한 compute.images.useReadOnly 권한
  • 스냅샷을 사용하여 VM 만들기: 스냅샷에 대한 compute.snapshots.useReadOnly 권한
  • 인스턴스 템플릿을 사용하여 VM 만들기: 인스턴스 템플릿에 대한 compute.instanceTemplates.useReadOnly 권한
  • VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.use 권한
  • VM의 고정 IP 주소 지정: 프로젝트에 대한 compute.addresses.use 권한
  • VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.useExternalIp 권한
  • VM에 레거시 네트워크 할당: 프로젝트에 대한 compute.networks.use 권한
  • 레거시 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한 compute.networks.useExternalIp 권한
  • VM에 VM 인스턴스 메타데이터 설정: 프로젝트에 대한 compute.instances.setMetadata 권한
  • VM에 태그 설정: VM에 대한 compute.instances.setTags 권한
  • VM에 라벨 설정: VM에 대한 compute.instances.setLabels 권한
  • VM에 사용할 서비스 계정 설정: VM에 대한 compute.instances.setServiceAccount 권한
  • VM의 새 디스크 만들기: 프로젝트에 대한 compute.disks.create 권한
  • 기존 디스크를 읽기 전용 또는 읽기-쓰기 모드로 연결: 디스크에 대한 compute.disks.use 권한
  • 기존 디스크를 읽기 전용 모드로 연결: 디스크에 대한 compute.disks.useReadOnly 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

선호도가 동일한 여러 머신 유형으로 VM 만들기

워크로드가 여러 머신 유형에서 작동할 수 있는 경우 단일 인스턴스 선택에서 호환되는 모든 머신 유형의 목록을 지정할 수 있습니다. 다음 예시에서는 선호도가 동일한 여러 머신 유형을 지정하는 방법을 보여줍니다.

gcloud

단일 인스턴스 선택으로 VM을 일괄로 만들려면 --instance-selection-machine-types 플래그와 함께 gcloud compute instances bulk create 명령어를 사용합니다.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --instance-selection-machine-types=MACHINE_TYPE_1,MACHINE_TYPE_2

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 패턴
  • MACHINE_TYPE_1, MACHINE_TYPE_2: VM에 사용할 머신 유형
  • REGION: VM을 만들 리전

예시

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8

REST

Compute Engine API에서 regionInstances.bulkInsert 메서드에 대해 POST 요청을 실행합니다. 요청 본문에 머신 유형을 나열하는 instanceSelections 항목 하나와 함께 instanceFlexibilityPolicy을 포함합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ]
      }
    }
  }
}

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 패턴
  • MACHINE_TYPE_1, MACHINE_TYPE_2: VM에 사용할 머신 유형
  • IMAGE_PROJECT: 이미지가 포함된 프로젝트
  • IMAGE: 사용할 이미지 또는 이미지 계열의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: VM을 만들 리전

예시

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ]
      }
    }
  }
}

선호도 순으로 순위가 매겨진 여러 머신 유형으로 VM 만들기

Compute Engine에서 특정 순서로 머신 유형을 선택하도록 하려면 여러 인스턴스 선택을 구성하면 됩니다. 각 인스턴스 선택에는 머신 유형 목록과 순위가 포함됩니다. 순위는 머신 유형의 선호도를 정의하는 정수입니다. 순위가 낮을수록 선호도가 높습니다. Compute Engine은 선호도가 높은 (순위가 낮은) 머신 유형을 사용하여 VM을 만들려고 시도합니다. 이러한 머신 유형을 사용할 수 없는 경우 Compute Engine은 우선순위가 낮은 (순위가 높은) 머신 유형을 사용합니다.

다음 예시에서는 순위를 사용하여 여러 인스턴스 선택을 지정하는 방법을 보여줍니다.

gcloud

여러 인스턴스 선택 항목이 있는 VM을 일괄로 만들려면 gcloud compute instances bulk create 명령어를 사용하고 --instance-selection 플래그를 여러 번 지정합니다.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --instance-selection "name=INSTANCE_SELECTION_1,rank=0,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2" \
    --instance-selection "name=INSTANCE_SELECTION_2,rank=1,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4"

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 패턴
  • INSTANCE_SELECTION_1: 첫 번째 인스턴스 선택사항의 이름
  • INSTANCE_SELECTION_2: 두 번째 인스턴스 선택의 이름
  • MACHINE_TYPE_1, MACHINE_TYPE_2: 첫 번째 인스턴스 선택의 머신 유형
  • MACHINE_TYPE_3, MACHINE_TYPE_4: 두 번째 인스턴스 선택의 머신 유형
  • REGION: VM을 만들 리전

예시

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16,machine-type=c2-standard-16" \
    --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8,machine-type=c2-standard-8"

REST

Compute Engine API에서 regionInstances.bulkInsert 메서드에 대해 POST 요청을 실행합니다. 요청 본문에 instanceFlexibilityPolicy를 포함하고 instanceSelections에 여러 항목을 지정합니다. 각 항목에는 머신 유형 목록과 rank가 포함됩니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "rank": 1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4"
        ],
        "rank": 2
      }
    }
  }
}

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 지정 패턴
  • INSTANCE_SELECTION_1: 첫 번째 인스턴스 선택사항의 이름
  • INSTANCE_SELECTION_2: 두 번째 인스턴스 선택의 이름
  • MACHINE_TYPE_1, MACHINE_TYPE_2: 첫 번째 인스턴스 선택의 머신 유형
  • MACHINE_TYPE_3, MACHINE_TYPE_4: 두 번째 인스턴스 선택의 머신 유형
  • IMAGE_PROJECT: 이미지가 포함된 프로젝트
  • IMAGE: 사용할 이미지 또는 이미지 계열의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: VM을 만들 리전

예시

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "machineTypes": [
          "c3-standard-16",
          "c2-standard-16"
        ],
        "rank": 1
      },
      "least-preferred": {
        "machineTypes": [
          "n2-standard-16",
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ],
        "rank": 2
      }
    }
  }
}

여러 머신 유형, 최소 CPU 플랫폼, 디스크 재정의로 VM 만들기

머신 유형과 순위를 지정하는 것 외에도 각 인스턴스 선택에 대해 instanceProperties에서 최소 CPU 플랫폼을 재정의하고 디스크 정의를 재정의하거나 추가할 수 있습니다. 예를 들어 instanceProperties에 Persistent Disk가 지정되어 있고 N4 머신 시리즈를 선택하는 경우 지원되는 Google Cloud Hyperdisk 유형으로 부팅 디스크를 재정의해야 합니다.

지원되는 디스크 유형과 Compute Engine에서 재정의를 적용하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

여러 머신 유형, 최소 CPU 플랫폼, 디스크 재정의를 사용하여 VM을 일괄로 만들려면 다음 옵션 중 하나를 선택합니다.

gcloud

여러 머신 유형, 최소 CPU 플랫폼, 디스크 재정의를 사용하여 VM을 일괄로 만들려면 --instance-flexibility-policy 플래그와 함께 gcloud compute instances bulk create 명령어를 사용합니다. instanceProperties에서 기본 부팅 디스크를 재정의하려면 --boot-disk-device-name 플래그를 포함하고 인스턴스 선택에서 동일한 deviceName를 지정합니다.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --boot-disk-device-name=BOOT_DISK_DEVICE_NAME \
    --instance-flexibility-policy='{"instanceSelections":
        {"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"deviceName":"BOOT_DISK_DEVICE_NAME_1","boot":true,"initializeParams":{"diskType":"DISK_TYPE_1","diskSizeGb":DISK_SIZE_1,"sourceImage":"projects/IMAGE_PROJECT_1/global/images/IMAGE_1"}}]},
        "INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"deviceName":"BOOT_DISK_DEVICE_NAME_2","boot":true,"initializeParams":{"diskType":"DISK_TYPE_2","diskSizeGb":DISK_SIZE_2,"sourceImage":"projects/IMAGE_PROJECT_2/global/images/IMAGE_2"}}]}}}'

또는 YAML 또는 JSON 파일을 사용하여 인스턴스 유연성 정책을 구성하려면 --instance-flexibility-policy 플래그 대신 --flags-file 플래그를 사용하세요.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --boot-disk-device-name=BOOT_DISK_DEVICE_NAME \
    --flags-file=FILE_NAME.yaml

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 패턴
  • REGION: VM을 만들 리전
  • BOOT_DISK_DEVICE_NAME: instanceProperties의 기본 부팅 디스크 기기 이름
  • INSTANCE_SELECTION_1, INSTANCE_SELECTION_2: 인스턴스 선택사항의 이름
  • RANK_1, RANK_2: 각 인스턴스 선택의 선호도 순서를 나타내는 선택적 숫자. 값이 작을수록 선호도가 높음
  • MACHINE_TYPE_1, MACHINE_TYPE_2: 첫 번째 인스턴스 선택의 머신 유형
  • MACHINE_TYPE_3: 두 번째 인스턴스 선택사항의 머신 유형
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2: 각 인스턴스 선택의 VM에 대한 선택적 최소 CPU 플랫폼
  • BOOT_DISK_DEVICE_NAME_1, BOOT_DISK_DEVICE_NAME_2: 각 인스턴스 선택의 부팅 디스크 기기 이름입니다. 기본 부팅 디스크를 재정의하려면 BOOT_DISK_DEVICE_NAME과 동일한 이름을 지정하세요.
  • DISK_TYPE_1, DISK_TYPE_2: 디스크 재정의의 디스크 유형입니다(예: pd-ssd 또는 hyperdisk-balanced).
  • DISK_SIZE_1, DISK_SIZE_2: 디스크 재정의의 디스크 크기
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2: 디스크 재정의의 이미지가 포함된 프로젝트
  • IMAGE_1, IMAGE_2: 디스크 재정의의 이미지 또는 이미지 계열 이름
  • FILE_NAME.yaml: --instance-flexibility-policy 구성이 포함된 YAML 또는 JSON 파일의 이름

예시

다음 예시에서는 최소 CPU 플랫폼을 지정하고, 기본 부팅 디스크를 재정의하고, 추가 디스크를 연결하는 두 인스턴스 선택을 사용하여 VM 10개를 만듭니다.

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --boot-disk-device-name=boot-disk \
    --instance-flexibility-policy='{"instanceSelections":
        {"selection-1":{"machineTypes":["n2-standard-8","c2-standard-8"],"minCpuPlatform":"Intel Cascade Lake","disks":[{"type":"PERSISTENT","deviceName":"boot-disk","boot":true,"initializeParams":{"diskType":"pd-ssd","diskSizeGb":50,"sourceImage":"projects/debian-cloud/global/images/family/debian-12"}},{"type":"SCRATCH","initializeParams":{"diskType":"local-ssd"}}]},
        "selection-2":{"machineTypes":["c4a-standard-8"],"disks":[{"type":"PERSISTENT","deviceName":"boot-disk","boot":true,"initializeParams":{"diskType":"hyperdisk-balanced","diskSizeGb":50,"sourceImage":"projects/debian-cloud/global/images/family/debian-12-arm64"}},{"type":"PERSISTENT","deviceName":"data-disk","initializeParams":{"diskType":"hyperdisk-balanced","diskSizeGb":128}}]}}}'

또는 --flags-file 플래그를 사용하는 경우 YAML 파일에서 동일한 인스턴스 유연성 정책을 지정할 수 있습니다.

--instance-flexibility-policy:
  instanceSelections:
    selection-1:
      machineTypes:
        - n2-standard-8
        - c2-standard-8
      minCpuPlatform: Intel Cascade Lake
      disks:
        - type: PERSISTENT
          deviceName: boot-disk
          boot: true
          initializeParams:
            diskType: pd-ssd
            diskSizeGb: 50
            sourceImage: projects/debian-cloud/global/images/family/debian-12
        - type: SCRATCH
          initializeParams:
            diskType: local-ssd
    selection-2:
      machineTypes:
        - c4a-standard-8
      disks:
        - type: PERSISTENT
          deviceName: boot-disk
          boot: true
          initializeParams:
            diskType: hyperdisk-balanced
            diskSizeGb: 50
            sourceImage: projects/debian-cloud/global/images/family/debian-12-arm64
        - type: PERSISTENT
          deviceName: data-disk
          initializeParams:
            diskType: hyperdisk-balanced
            diskSizeGb: 128

REST

Compute Engine API에서 regionInstances.bulkInsert 메서드에 대해 POST 요청을 실행합니다. instanceFlexibilityPolicy의 각 instanceSelections 항목에 minCpuPlatform 필드를 포함하여 instanceProperties.minCpuPlatform를 재정의하고 disks 필드를 포함하여 instanceProperties.disks를 재정의하거나 추가합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "deviceName": "boot-disk",
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_1",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "projects/IMAGE_PROJECT_1/global/images/IMAGE_1"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_2",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "projects/IMAGE_PROJECT_2/global/images/IMAGE_2"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "deviceName": "data-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128,
              "sourceImage": "projects/IMAGE_PROJECT_3/global/images/IMAGE_3"
            }
          }
        ]
      }
    }
  }
}

다음을 바꿉니다.

  • COUNT: 만들 VM 수
  • NAME_PATTERN: VM의 이름 지정 패턴
  • INSTANCE_SELECTION_1: 첫 번째 인스턴스 선택사항의 이름
  • INSTANCE_SELECTION_2: 두 번째 인스턴스 선택의 이름
  • MACHINE_TYPE_1, MACHINE_TYPE_2: 첫 번째 인스턴스 선택의 머신 유형
  • MACHINE_TYPE_3: 두 번째 인스턴스 선택사항의 머신 유형
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2: 각 인스턴스 선택의 VM에 대한 선택적 최소 CPU 플랫폼
  • IMAGE_PROJECT: instanceProperties의 기본 부팅 이미지가 포함된 프로젝트
  • IMAGE: instanceProperties의 기본 부팅 이미지 또는 이미지 계열의 이름
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2, IMAGE_PROJECT_3: 디스크 재정의의 이미지가 포함된 프로젝트
  • IMAGE_1, IMAGE_2, IMAGE_3: 디스크 재정의 이미지의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: VM을 만들 리전

예시

다음 예시에서는 최소 CPU 플랫폼을 지정하고, 기본 부팅 디스크를 재정의하고, 추가 디스크를 연결하는 두 개의 인스턴스 선택을 사용하여 VM 10개를 만듭니다.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "deviceName": "boot-disk",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/family/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "n2-standard-8",
          "c2-standard-8"
        ],
        "minCpuPlatform": "Intel Cascade Lake",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "selection-2": {
        "machineTypes": [
          "c4a-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "deviceName": "data-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128
            }
          }
        ]
      }
    }
  }
}