리전 관리형 인스턴스 그룹(MIG)을 만들거나 대상 크기를 늘리면 Compute Engine은 실시간 리소스 가용성을 평가하여 영역 및 머신 유형에 새 컴퓨팅 인스턴스를 배포합니다. 이 프로세스 중에 Compute Engine은 Cloud Logging에 인스턴스 배포 로그 항목을 기록합니다.
이 문서에서는 이러한 인스턴스 배포 로그를 보고 해석하는 방법을 설명합니다. 또한 이러한 로그를 사용하여 대기 중인 할당을 조사하고 알림을 구성하는 방법도 설명합니다.
실행 중인 인스턴스의 실제 분포를 보려면 MIG의 인스턴스 분포 모니터링을 참조하세요.
인스턴스 배포 로그 정보
인스턴스 배포 로그는 컴퓨팅 인스턴스에 대한 MIG의 계획된 할당에 대한 일회성 스냅샷을 제공합니다. 이러한 로그에서 할당된 인스턴스는 MIG가 용량을 찾았으며 해당 머신 유형과 해당 영역에 컴퓨팅 인스턴스를 만들 계획임을 의미합니다. 할당된 크기는 컴퓨팅 인스턴스가 아직 성공적으로 생성되지 않았음을 의미합니다.
로그는 스냅샷을 제공하므로 MIG가 나중에 나머지 컴퓨팅 인스턴스를 만들 때 Compute Engine은 이러한 로그를 업데이트하지 않습니다. 로그 항목을 사용하면 다음 세부정보를 확인할 수 있습니다.
머신 유형 분포: MIG가 머신 유형별로 할당한 컴퓨팅 인스턴스 수입니다. 이 정보는 인스턴스 유연성을 사용하는 리전 MIG에만 표시됩니다.
영역 배포: MIG가 영역별로 할당한 컴퓨팅 인스턴스 수입니다.
용량을 기다리는 인스턴스: MIG가 용량을 즉시 할당할 수 없고 적극적으로 용량을 찾고 있는 인스턴스 수입니다.
제한사항
인스턴스 배포 로그는 리전 MIG에만 사용할 수 있습니다.
자동 확장을 사용하지 않고
EVEN목표 분산 형태를 사용하는 리전 MIG의 경우 로그 항목에는 인스턴스 분산 세부정보 없이oldSize,newSize,deltaSize,targetShape필드만 포함됩니다.Compute Engine은 MIG를 만들거나 대상 크기를 늘릴 때만 인스턴스 배포 세부정보를 로깅합니다. Compute Engine은 대상 크기가 감소하거나 인스턴스 복구, 다시 만들기, 업데이트 작업 중에는 이러한 세부정보를 로깅하지 않습니다.
특정 MIG의 인스턴스 배포 로그 보기
특정 MIG의 인스턴스 배포 로그를 보려면 다음 옵션 중 하나를 사용합니다.
콘솔
인스턴스 그룹 세부정보 페이지에서 특정 MIG의 로그를 직접 볼 수 있습니다.
Cloud de Confiance 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
보려는 MIG의 이름을 클릭합니다.
모니터링 탭을 클릭합니다.
왼쪽 창에서 로그를 선택합니다.
로그 결과 필터에
instanceDistribution를 입력하고 Enter를 누릅니다.인스턴스 배포 데이터를 보려면 로그 항목을 펼친 후
protoPayload.metadata.details를 펼칩니다.
gcloud
특정 MIG의 인스턴스 배포 로그를 보려면 gcloud logging read 명령어를 사용합니다.
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \ resource.labels.instance_group_manager_name=\"MIG_NAME\""
다음을 바꿉니다.
PROJECT_ID: 프로젝트의 IDMIG_NAME: MIG 이름
REST
특정 MIG의 인스턴스 배포 로그를 보려면 entries.list 메서드에 대해 POST 요청을 수행합니다.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}
다음을 바꿉니다.
PROJECT_ID: 프로젝트의 IDMIG_NAME: MIG 이름
로그의 각 필드에 대한 자세한 내용은 인스턴스 배포 로그 항목을 참조하세요.
프로젝트의 모든 인스턴스 배포 로그 보기
프로젝트의 모든 인스턴스 배포 로그를 보려면 다음 옵션 중 하나를 선택합니다.
콘솔
Cloud de Confiance 콘솔에서 로그 탐색기 페이지로 이동합니다.
쿼리를 입력합니다. 다음은 몇 가지 예시입니다.
프로젝트의 모든 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
크기 조절의 일부가 여전히 용량을 기다리는 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
PROJECT_ID를 프로젝트의 ID로 바꿉니다.쿼리 실행을 클릭합니다.
결과에서 로그 항목을 펼칩니다.
- 요약과 데이터를 보려면
protoPayload.metadata.details를 펼칩니다. - 각 행의 요약을 보려면
message를 클릭하고 요약 줄에 필드 추가를 선택합니다.
- 요약과 데이터를 보려면
gcloud
인스턴스 배포 로그를 보려면 gcloud logging read 명령어를 사용합니다.
- 프로젝트의 모든 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \ protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
- 지난 하루 동안 프로젝트의 모든 로그를 보려면 다음과 같이
--freshness=1d플래그를 지정합니다.
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
--freshness=1d
- 크기 조절의 일부가 여전히 용량을 기다리는 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
PROJECT_ID를 프로젝트의 ID로 바꿉니다.
REST
인스턴스 배포 로그를 보려면 entries.list 메서드에 POST 요청을 보냅니다.
- 프로젝트의 모든 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
- 지난 하루 동안의 프로젝트에 있는 모든 로그를 보려면 필터에
timestamp조건을 추가합니다.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
- 크기 조절의 일부가 아직 용량을 기다리고 있는 인스턴스 배포 로그를 보려면 다음 안내를 따르세요.
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}
다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.YYYY-MM-DDThh:mm:ssZ: 시작 시간의 RFC 3339 타임스탬프입니다(예:2024-10-22T00:00:00Z).
로그의 각 필드에 대한 자세한 내용은 인스턴스 배포 로그 항목을 참조하세요.
인스턴스 분포 로그 항목
다음은 샘플 로그 항목(protoPayload.metadata.details)입니다. 이 이벤트는 일회성 스냅샷이므로 나중에 나머지 인스턴스가 생성될 때 로그 항목이 업데이트되지 않습니다. 로그 항목을 사용하면 다음과 같이 세부정보를 볼 수 있습니다.
details.data: 인스턴스 배포에 대한 구조화된 세부정보를 표시합니다.details.message: 인스턴스 배포 요약을 표시합니다.
이 예시에서는 인스턴스 유연성이 있는 리전 MIG가 0에서 100로 수평 확장됩니다. MIG는 순위가 지정된 두 인스턴스 선택사항에 걸쳐 새 인스턴스 100개 중 80개를 즉시 할당합니다(rank2-c2 선택사항의 20 c2-standard-4 인스턴스 및 rank3-n2d 선택사항의 60 n2d-standard-4 인스턴스). 또한 이 항목은 40 컴퓨팅 인스턴스가 us-central1-b 및 us-central1-c에 각각 할당되었음을 보여줍니다. 나머지 20 인스턴스(activeSeekDeltaSize)의 경우 MIG는 구성된 모든 인스턴스 선택사항과 영역에서 용량을 계속 찾습니다. 인스턴스 유연성이 없는 리전 MIG의 경우 로그 항목에서 instanceSelections 필드가 생략되고 영역 분포만 표시됩니다.
"metadata": {
"details": {
"data": {
"oldSize": 0,
"newSize": 100,
"deltaSize": 100,
"targetShape": "BALANCED",
"activeSeekDeltaSize": 20,
"instanceSelections": {
"rank1-n2": {
"rank": 1,
"machineSelections": [
{
"machineType": "n2-standard-4",
"allocatedSize": 0
}
]
},
"rank2-c2": {
"rank": 2,
"machineSelections": [
{
"machineType": "c2-standard-4",
"allocatedSize": 20
}
]
},
"rank3-n2d": {
"rank": 3,
"machineSelections": [
{
"machineType": "n2d-standard-4",
"allocatedSize": 60
}
]
}
},
"zonalDistribution": {
"us-central1-a": {
"allocatedSize": 0
},
"us-central1-b": {
"allocatedSize": 40
},
"us-central1-c": {
"allocatedSize": 40
}
}
},
"message": "Increasing MIG target size from 0 to 100 instances (+100).
Allocated 80 of 100 new instances. Allocated instances across instance
selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
n2d-standard-4: 60). Allocated instances across zones based on target
distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
across all instance selections and zones. The final distribution across zones
and machine types may differ as instances are created. View the group's
instances for the current distribution."
}
}
다음 표에서는 로그 항목의 각 필드를 설명합니다.
| 필드 | 설명 |
|---|---|
details.data.oldSize |
크기 조절 작업 전 리전 MIG의 대상 크기입니다. |
details.data.newSize |
리전 MIG의 요청된 타겟 크기입니다. |
details.data.deltaSize |
타겟 크기(newSize - oldSize)의 변경사항입니다.
|
details.data.targetShape |
리전 MIG의 목표 분산 형태입니다. |
details.data.activeSeekDeltaSize |
MIG가 구성된 인스턴스 선택 및 영역에서 여전히 용량을 찾고 있는 새 인스턴스 수입니다. 값이 0이면 이 필드가 생략됩니다.
|
details.data.instanceSelections |
할당 중에 평가된 구성된 인스턴스 선택입니다. 이 필드는 인스턴스 유연성을 사용하는 MIG에만 표시됩니다. 각 키는 인스턴스 선택의 이름이며, 해당 값에는 다음 필드가 포함됩니다.
|
details.data.zonalDistribution |
구성된 영역과 할당된 인스턴스 배포입니다. 각 키는 영역 이름이며, 해당 값에는 해당 영역에 할당된 컴퓨팅 인스턴스 수(allocatedSize)가 포함됩니다.
|
details.message |
할당된 수 및 탐색 용량 세부정보를 포함하여 인스턴스 배포를 설명하는 요약 메시지입니다. |
인스턴스 배포 로그 해석
인스턴스 배포 로그는 컴퓨팅 인스턴스 생성에 대한 MIG 계획의 스냅샷을 제공합니다. 로그는 MIG가 컴퓨팅 인스턴스를 성공적으로 만들기 전에 할당함을 나타내므로 로그 데이터를 컴퓨팅 인스턴스 상태 및 오류 메시지와 함께 사용하여 MIG의 실제 동작을 이해해야 합니다.
다음 표를 사용하여 일반적인 로그 출력을 해석하고 조치를 취해야 하는지 확인하세요.
| 로그 출력 | 설명 | 권장 조치 |
|---|---|---|
activeSeekDeltaSize이 0보다 큼 |
MIG가 전체 크기 조절 요청을 즉시 처리할 수 있는 충분한 용량을 찾지 못했습니다. MIG는 구성된 모든 옵션에서 나머지 인스턴스를 계속 만들려고 시도합니다. | MIG의 인스턴스 오류를 확인하여 인스턴스 생성이 실패한 이유를 확인합니다. 다른 머신 계열의 머신 유형을 추가하거나, 영역을 추가하거나, 할당량을 확인하세요. |
우선순위가 높은(순위 번호가 낮은) 선택의 allocatedSize는 0입니다. |
결정 시점에 MIG가 가장 선호하는 머신 유형을 확인했지만 용량이 충분하지 않았습니다. MIG에서 대신 우선순위가 낮은(순위 번호가 높은) 선택사항을 사용했습니다. Compute Engine은 건너뛴 선택 항목에 대한 인스턴스 오류를 로깅하지 않습니다. | MIG가 가장 선호하는 선택을 자주 건너뛰는 경우 가장 선호하는 선택에 더 많은 머신 유형을 추가하거나 선호도가 낮은 옵션을 수락하는 것이 좋습니다. |
구성된 영역의 allocatedSize가 0임 |
MIG가 이 영역에 새 인스턴스를 할당하지 않았습니다. | 목표 형태가 ANY 또는 ANY_SINGLE_ZONE인 경우 이 고르지 않은 분산은 정상입니다.
그렇지 않으면 인스턴스 템플릿의 할당량, 예약, 영역 지원을 검토하세요. |
message 요약에 머신 유형이 누락됨 |
MIG가 할당에 해당 머신 유형을 사용하지 않았습니다. | 구조화된 details.data 블록을 확인합니다. 요약 메시지에는 새 인스턴스 0개를 가져온 선택 항목과 머신 유형이 제외되지만 구조화된 데이터에는 평가된 모든 옵션이 나열됩니다. |
대기 중인 인스턴스 할당 확인
MIG가 여전히 용량(activeSeekDeltaSize > 0)을 기다리는 경우 다음을 확인하여 할당 대기 중인 이유를 파악할 수 있습니다.
인스턴스 생성 오류를 확인합니다. MIG에서 용량을 할당한 후 인스턴스 생성이 실패했는지 또는 컴퓨팅 인스턴스가 여전히 용량을 기다리고 있는지 확인하려면 인스턴스 오류를 확인하세요. 자세한 내용은 인스턴스 오류 나열을 참조하세요.
인스턴스 상태를 확인합니다. 각 인스턴스의 상태와 현재 작업을 보려면 MIG의 인스턴스를 나열하고
instanceStatus필드를 확인합니다. 자세한 내용은 관리형 인스턴스 상태 확인을 참조하세요.구성을 검토합니다. MIG에서 인스턴스 유연성 정책을 구성한 경우 정책의 머신 계열에 대한 리전 할당량을 검토합니다. 또한 선택한 영역이 요청된 머신 유형을 지원하는지 확인합니다. 자세한 내용은 할당량 보기 및 관리 및 사용 가능한 리전 및 영역을 참조하세요.
로그 기반 알림 정책 만들기
MIG 크기 조절 작업이 용량을 기다릴 때 알림을 받으려면 로그 탐색기에서 로그 기반 알림 정책을 만들면 됩니다. 예를 들어 activeSeekDeltaSize가 0보다 크면 알림을 트리거할 수 있습니다.
이 알림을 만들려면 다음을 수행합니다.
Cloud de Confiance 콘솔에서 로그 탐색기 페이지로 이동합니다.
다음 쿼리를 입력합니다.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution" protoPayload.metadata.details.data.activeSeekDeltaSize > 0
PROJECT_ID를 프로젝트의 ID로 바꿉니다.쿼리 실행을 클릭하여 쿼리를 실행합니다.
Cloud Logging 문서의 로그 기반 알림 정책 만들기 섹션에 있는 안내에 따라 알림 정책을 만듭니다.
다음 단계
- 리전 MIG가 영역 간에 컴퓨팅 인스턴스를 분산하는 방법 알아보기
- MIG에서 여러 머신 유형 선택이 작동하는 방식 알아보기
- MIG에서 인스턴스 유연성 구성 보기