Compute Engine을 사용하여 리전에서 가상 머신 (VM)을 대량으로 만들 때 애플리케이션이 단일 머신 유형으로 제한되지 않는 경우 인스턴스 유연성을 구성하여 필요한 VM 수를 프로비저닝하는 성공률을 높일 수 있습니다. 인스턴스 유연성을 사용하면 워크로드에 적합한 머신 유형을 하나 이상 지정할 수 있습니다. 그런 다음 Compute Engine은 용량 및 할당량 가용성을 기반으로 이러한 머신 유형 중 하나를 사용하여 VM을 프로비저닝합니다.
인스턴스 유연성을 사용하면 수요 급증 시 리소스 가용성을 극대화하고, 가격 대비 성능을 개선하며, 최신 하드웨어를 안전하게 도입할 수 있습니다. 자세한 내용은 컴퓨팅 프로비저닝 최적화를 참고하세요.
이 문서에서는 최소 CPU 플랫폼 및 디스크의 인스턴스 속성 재정의와 제한사항을 비롯하여 일괄적으로 생성된 VM의 인스턴스 유연성이 작동하는 방식을 설명합니다. 인스턴스 유연성 구성에 대한 자세한 내용은 인스턴스 유연성을 사용하여 VM 일괄 생성을 참고하세요.
인스턴스 유연성 사용
인스턴스 유연성을 구성하려면 리전 일괄 삽입 요청에서 하나 이상의 인스턴스 선택을 정의하여 적합한 머신 유형을 나열합니다.
예를 들어 REST 요청에서 instanceFlexibilityPolicy 객체를 포함하며, 이 객체 내에서 하나 이상의 instanceSelections 객체를 정의합니다. 각 객체에는 머신 유형 목록이 포함됩니다.
CPU 플랫폼이 다르거나, 아키텍처 (예: x86 및 Arm)가 다르거나, 디스크 요구사항이 다른 머신 유형을 지정할 수도 있습니다. 하드웨어 요구사항이 다른 머신 유형을 사용하려면 인스턴스 선택을 사용하여 요청의 인스턴스 속성 (instanceProperties)에서 해당 속성을 재정의하세요. 자세한 내용은 인스턴스 선택의 인스턴스 속성 재정의를 참고하세요.
Compute Engine은 요청을 수신하면 먼저 머신 유형과 영역 호환성을 검증하여 잘못된 항목을 제외합니다. 유효한 구성이 하나 이상 있으면 작업이 진행됩니다.
그러면 Compute Engine에서 사용 가능한 하드웨어, 할당량, 예약을 기반으로 VM을 프로비저닝하려고 시도합니다. 인스턴스 선택의 순위를 구성하면 순위가 낮은 선택이 우선시됩니다. 각 순위 내에서 Compute Engine은 사용되지 않은 예약과 스팟 VM 안내를 고려하여 선점될 가능성이 낮은 머신 유형을 선택합니다.
인스턴스 선택의 인스턴스 속성 재정의
인스턴스를 선택할 때 요청의 인스턴스 속성 (instanceProperties)에 정의된 속성을 재정의하거나 추가하기 위해 최소 CPU 플랫폼 (minCpuPlatform) 및 디스크 (disks)와 같은 추가 인스턴스 속성을 지정할 수 있습니다. Compute Engine이 인스턴스 선택에서 머신 유형을 선택하여 VM을 만들 때 해당 선택에 지정된 인스턴스 속성을 사용합니다. 인스턴스 선택에 대한 재정의를 지정하지 않으면 Compute Engine은 해당 선택에서 만드는 VM에 대해 instanceProperties의 해당 속성을 사용합니다.
인스턴스 선택 수준에서 인스턴스 속성을 재정의하면 단일 대량 삽입 요청에서 다양한 하드웨어 구성을 사용할 때 더 많은 제어와 유연성을 확보할 수 있습니다.
최소 CPU 플랫폼 재정의
인스턴스 선택의 머신 유형에서 Compute Engine이 만드는 VM의 최소 CPU 플랫폼(minCpuPlatform)을 지정할 수 있습니다. 이 재정의를 사용하면 다양한 머신 유형을 혼합하고 최소 CPU 플랫폼을 선택적으로 적용할 수 있습니다. 인스턴스 선택 항목의 각 머신 유형은 선택 항목에 지정되었는지 아니면 instanceProperties에서 상속되었는지에 관계없이 유효한 최소 CPU 플랫폼을 지원해야 합니다.
또는 minCpuPlatform 필드를 AUTOMATIC로 설정할 수 있습니다. 이 설정은 instanceProperties의 minCpuPlatform 값을 재정의하며 Compute Engine에서 인스턴스 선택의 머신 유형에 호환되는 CPU 플랫폼을 사용할 수 있도록 합니다.
하나의 시리즈만 특정 CPU 플랫폼을 지원하는 머신 유형을 혼합하려면 별도의 인스턴스 선택에 배치하세요. 예를 들어 N4 머신 유형은 Intel Emerald Rapids 플랫폼을 지원하는 반면, vCPU가 96개 미만인 N2 머신 유형은 Intel Ice Lake 및 Intel Cascade Lake를 지원합니다. 일괄 삽입 요청에서 N4와 N2를 혼합하고 N2가 Intel Ice Lake에서 실행되도록 하려면 다음과 같이 인스턴스 선택을 두 개 구성합니다.
- N2 선택:
minCpuPlatform필드를Intel Ice Lake로 설정합니다. - N4 선택:
minCpuPlatform필드를 설정하지 않은 상태로 두거나AUTOMATIC로 설정합니다.
두 인스턴스 선택에 동일한 순위를 할당하여 두 머신 유형에 동일한 선호도를 설정할 수 있습니다.
디스크 재정의
인스턴스 선택에서 맞춤 디스크 구성을 지정하여 instanceProperties에 지정된 부팅 디스크 또는 추가 디스크를 재정의하거나 추가 디스크를 연결할 수 있습니다. 이 재정의를 사용하면 아키텍처가 다르거나 지원하는 디스크 유형이 다른 머신 유형을 혼합할 수 있습니다. 또한 각 머신 유형에 필요한 부팅 이미지나 디스크를 지정할 수 있습니다.
예를 들어 별도의 인스턴스 선택을 사용하여 요구사항이 다른 디스크를 재정의할 수 있습니다.
- 다양한 아키텍처: C4 (x86 아키텍처) 및 C4A (Arm 아키텍처) 머신 유형을 혼합할 수 있습니다. x86 및 Arm 머신 유형에는 서로 다른 부팅 이미지가 필요하므로 부팅 디스크를 재정의하여 각 아키텍처에 호환되는 이미지를 지정할 수 있습니다.
- 다양한 디스크 유형: N2 및 N4 머신 유형을 혼합할 수 있습니다. N2는 부팅 디스크에 영구 디스크만 지원하고 N4는 Google Cloud Hyperdisk만 지원하므로 디스크 구성을 재정의하여 각 머신 시리즈에 지원되는 디스크 유형을 지정할 수 있습니다.
두 시나리오 모두 인스턴스 선택에 동일한 순위를 할당하여 두 머신 유형에 동일한 선호도를 설정할 수 있습니다.
인스턴스 선택의 디스크에 instanceProperties의 디스크와 일치하는 deviceName이 있으면 Compute Engine이 해당 디스크의 구성을 재정의합니다. deviceName가 instanceProperties의 디스크와 일치하지 않으면 Compute Engine은 이를 추가 디스크로 연결합니다. 유효한 디스크 구성이 인스턴스 선택의 모든 머신 유형과 호환되는지 확인해야 합니다.
다음 다이어그램은 Compute Engine이 instanceProperties 및 인스턴스 선택에서 디스크 구성을 병합하는 방법을 보여줍니다.
VM을 대량으로 만들 때 최소 CPU 플랫폼과 디스크 재정의를 지정하는 방법은 여러 머신 유형, 최소 CPU 플랫폼, 디스크 재정의로 VM 만들기를 참고하세요.
인스턴스 선택 재정의를 사용할 때의 제한사항에 관한 자세한 내용은 이 문서의 제한사항 섹션을 참고하세요.
예: 최소 CPU 플랫폼 및 디스크 재정의
인스턴스 유연성 정책의 재정의를 사용하여 다양한 CPU 플랫폼, 부팅 이미지 또는 디스크 유형이 필요한 머신 시리즈에 VM을 프로비저닝할 수 있습니다.
기본 pd-balanced 부팅 디스크를 정의하는 다음 기본 instanceProperties 구성이 있는 일괄 삽입 요청을 고려해 보세요.
"instanceProperties": {
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-balanced"
}
}
],
"networkInterfaces": [{}]
}
동일한 요청의 다음 instanceFlexibilityPolicy 구성은 세 가지 인스턴스 선택에 걸쳐 최소 CPU 플랫폼과 디스크 구성을 지정하여 기본 instanceProperties 구성을 재정의합니다.
"instanceFlexibilityPolicy": {
"instanceSelections": {
"first-preference": {
"rank": 1,
"machineTypes": ["n4-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
}
]
},
"second-preference": {
"rank": 2,
"machineTypes": ["c4a-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
},
{
"autoDelete": true,
"deviceName": "data-disk",
"boot": false,
"initializeParams": {
"diskSizeGb": "100",
"diskType": "hyperdisk-balanced"
}
}
]
},
"third-preference": {
"rank": 3,
"machineTypes": ["n2-standard-4"],
"minCpuPlatform": "Intel Ice Lake",
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-ssd"
}
}
]
}
}
}
이 예에서 Compute Engine은 VM을 만드는 데 사용하는 인스턴스 선택에 따라 다음 재정의를 적용합니다.
- 첫 번째 기본 설정 (
first-preference):n4-standard-4VM의 경우 선택사항이boot-disk을 재정의하여 기본pd-balanced디스크 대신hyperdisk-balanced디스크를 사용합니다. - 두 번째 기본 설정 (
second-preference):c4a-standard-4(Arm) VM의 경우 이 선택사항은boot-disk를 재정의하여hyperdisk-balanced디스크에서 Arm 호환 부팅 이미지(debian-12-arm64)를 사용하고data-disk라는 추가 100GBhyperdisk-balanced디스크를 연결합니다. - 세 번째 환경설정 (
third-preference):n2-standard-4VM의 경우 선택하면minCpuPlatform이Intel Ice Lake로 설정되고boot-disk이 재정의되어pd-ssd디스크가 사용됩니다.
목표 분산 형태가 정의된 경우 영역 선택
리전 bulkInsert 요청과 함께 인스턴스 유연성을 사용하는 경우 목표 분산 형태를 지정하여 리전의 영역에 VM이 분산되는 방식을 제어할 수 있습니다. Compute Engine은 다음과 같이 이 모양을 기반으로 VM 프로비저닝을 위한 영역을 선택합니다.
ANY_SINGLE_ZONE: Compute Engine은 선호도가 높은 머신 유형의 용량이 가장 많은 단일 영역을 선택합니다.BALANCED: Compute Engine은 사용 가능한 리소스가 있는 영역에 VM을 최대한 균등하게 분산합니다. 각 영역 내에서 Compute Engine은 선호도가 높은 머신 유형의 우선순위를 지정합니다.ANY: Compute Engine이 사용 가능한 리소스가 있는 영역을 선택합니다. 순위가 구성된 경우 Compute Engine은 선호도가 높은 머신 유형으로 VM을 프로비저닝할 수 있는 영역에 우선순위를 부여합니다.
자세한 내용은 리전에서 VM 일괄 생성을 참고하세요.
최소 VM 프로비저닝 및 인스턴스 유연성
bulkInsert 요청에서 최소 필수 VM 수 (minCount) 값을 정의하면 API에서 최소한 그만큼의 VM을 만들려고 시도합니다. Compute Engine에서 필요한 최소 VM 수 (minCount)를 프로비저닝할 수 없으면 전체 작업이 실패하고 Compute Engine에서 VM을 만들지 않습니다. 인스턴스 유연성과 함께 minCount를 사용하면 Compute Engine은 다음과 같이 순위보다 획득 가능성을 기반으로 VM 프로비저닝에 우선순위를 부여합니다.
- Compute Engine은 선호도가 낮은 머신을 사용하더라도 최대
count개의 VM을 프로비저닝하는 것을 우선시합니다. 예를 들어 요청에서 필수 VM(minCount=1)을 최소 1개, VM을 최대 10개 (count=10)로 지정하고 Compute Engine에 우선순위가 높은 VM 1개 또는 우선순위가 낮은 VM 6개를 프로비저닝할 수 있는 용량이 있는 경우 Compute Engine은 우선순위가 낮은 VM 6개를 프로비저닝합니다. - Compute Engine에서 서로 다른 인스턴스 선택을 사용하여 최대
count개의 VM을 프로비저닝할 수 있는 경우 선호도가 높은 선택이 우선시됩니다. 예를 들어 요청에서 필수 VM (minCount=1)을 최소 1개, VM(count=10)을 최대 10개 지정하고 Compute Engine이 선호도가 높은 인스턴스 선택 또는 선호도가 낮은 인스턴스 선택을 사용하여 VM 6개를 프로비저닝할 수 있는 경우 Compute Engine은 선호도가 높은 선택에서 VM 6개를 프로비저닝합니다.
자세한 내용은 bulkInsert의 minCount 속성을 참고하세요.
일괄 삽입 유효성 검사 및 오류 시나리오
Compute Engine은 머신 유형과 영역 호환성을 초기 검증하여 고려 대상에서 무효한 항목을 제외합니다. 이 초기 검사 후 유효한 구성이 하나 이상 남아 있으면 Compute Engine에서 VM 생성을 진행합니다.
하지만 인스턴스 유연성 정책과 사용 가능한 용량을 기반으로 프로비저닝에 사용할 영역과 머신 유형을 Compute Engine에서 선택한 후에만 구성의 일부 유효성 검사가 실행될 수 있습니다.
이 후반 검증 단계에서 프로비저닝을 위해 선택한 특정 머신 유형과 영역 조합이 잘못된 것으로 확인되면 전체 대량 삽입 요청이 검증 오류와 함께 실패합니다. 이 오류는 instanceFlexibilityPolicy 내의 다른 구성이 처음에는 유효한 경우에도 발생할 수 있습니다.
제한사항
대량 VM 생성에 인스턴스 유연성을 사용하는 경우 다음 제한사항이 적용됩니다.
- 인스턴스 유연성은 리전
bulkInsert요청에만 지정할 수 있으며 영역 요청에는 사용할 수 없습니다. - 인스턴스 유연성은 Flex-start VM 및 향후 예약을 지원하지 않습니다.
- AI 하이퍼컴퓨터 기능 또는 A3 Ultra, A4 및 최신 GPU와 함께 인스턴스 유연성을 사용할 수 없습니다.
- 최대 10개의 서로 다른 인스턴스 선택에서 최대 10개의 서로 다른 머신 유형을 지정할 수 있습니다.
- 인스턴스 선택에서
minCpuPlatform또는disks를 재정의하는 경우 다음과 같은 제한사항도 적용됩니다.- 인스턴스 선택을 위해
minCpuPlatform또는disks를 구성할 때는machineTypes필드도 포함해야 합니다.machineTypes필드를 생략하면 작업이 오류와 함께 실패합니다. - 로컬 SSD 디스크 수를 선택할 수 있는 머신 유형에 대해서만 로컬 SSD 디스크를 재정의할 수 있습니다.
로컬 SSD 디스크를 자동으로 연결하는
-lssd머신 유형 변형의 로컬 SSD 디스크는 재정의할 수 없습니다.
- 인스턴스 선택을 위해
다음 단계
- 인스턴스 유연성을 사용하여 VM을 일괄 생성하는 방법을 알아보세요.
- 컴퓨팅 프로비저닝 최적화에서 유연성 측정기준, 사용 사례, 권장사항을 알아보세요.