이 문서에서는 실행 중인 Compute Engine 인스턴스의 토폴로지를 확인하는 방법을 설명합니다. 컴퓨팅 인스턴스를 만들고 시작한 후 영역에서 실제 위치를 확인하여 클러스터의 토폴로지를 파악할 수 있습니다. 이 정보는 다음을 수행하는 데 도움이 됩니다.
작업 정리: 예를 들어 통신이 많은 작업을 물리적으로 가장 가까운 컴퓨팅 인스턴스에 배치하도록 워크로드 설계를 조정할 수 있습니다.
문제 해결: 특정 컴퓨팅 인스턴스가 예기치 않게 멀리 떨어져 있는 경우 네트워크 지연 시간 또는 성능 문제를 조사할 수 있습니다.
프로젝트에서 실행 중인 컴퓨팅 인스턴스를 확인하려면 컴퓨팅 인스턴스 목록을 확인하세요.
제한사항
다음 요구사항 중 하나 이상을 충족하는 컴퓨팅 인스턴스의 토폴로지만 볼 수 있습니다.
컴퓨팅 인스턴스는 다음 머신 유형 중 하나를 사용합니다.
A4X Max
A4X
A4
A3 Ultra
A3 Mega
GPU가 8개인 A3 High
H4D
컴퓨팅 인스턴스는 압축 배치 정책을 지정합니다.
컴퓨팅 인스턴스는 높은 처리량 (
HIGH_THROUGHPUT) 유형의 워크로드 정책을 지정하는 관리형 인스턴스 그룹 (MIG)의 일부입니다.
컴퓨팅 인스턴스 토폴로지 이해
각 컴퓨팅 인스턴스는 서버 블록에 있는 물리적 서버(호스트)에서 실행됩니다. 각 블록은Google Cloud 영역 내 데이터 센터에 있는 클러스터에 속합니다. 특정 요구사항을 충족하는 컴퓨팅 인스턴스를 보면 동일한 요구사항을 충족하는 다른 컴퓨팅 인스턴스와 관련된 토폴로지를 파악할 수 있습니다.
특히 각 컴퓨팅 인스턴스의 physicalHostTopology 필드에서 다음 하위 필드를 확인하여 컴퓨팅 인스턴스의 실제 위치를 파악할 수 있습니다.
클러스터 (
cluster): 컴퓨팅 인스턴스가 있는 클러스터의 전역 이름입니다. 클러스터는 여러 블록에 걸쳐 있을 수 있는 여러 호스트의 상위 수준 논리적 그룹화로, 단일 리소스 풀로 함께 작동합니다.블록 (
block): 컴퓨팅 인스턴스가 있는 블록의 조직별 ID입니다. 블록은 함께 그룹화된 여러 호스트의 모음입니다. 동일한 블록에 있는 컴퓨팅 인스턴스에서는 네트워크 지연 시간이 짧습니다.하위 블록 (
subBlock): 컴퓨팅 인스턴스가 있는 하위 블록의 조직별 ID입니다. 하위 블록은 블록의 물리적 하위 섹션으로, 단일 물리적 인클로저 내에서 호스트를 그룹화합니다. 동일한 하위 블록에 있는 컴퓨팅 인스턴스는 동일한 블록에 있는 컴퓨팅 인스턴스보다 네트워크 지연 시간이 짧습니다.호스트 (
host): 컴퓨팅 인스턴스가 있는 호스트의 조직별 ID입니다. 호스트는 컴퓨팅 인스턴스가 실행되는 단일 물리적 서버입니다. 각 호스트에는 자체 물리적 vCPU, 메모리, 스토리지, 네트워크 인터페이스 카드 (NIC)가 있습니다. 인접한 호스트의 컴퓨팅 인스턴스는 네트워크 지연 시간이 가장 짧습니다.
실행 중인 두 컴퓨팅 인스턴스가 공유하는 하위 필드가 많을수록 서로 더 가깝게 배치됩니다. 이 정보를 사용하면 네트워크 지연 시간을 최소화할 수 있도록 작업을 정리하거나 더 탄력적인 시스템을 설계하여 워크로드를 최적화할 수 있습니다.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
콘솔
Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.
gcloud
-
Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.
gcloud init외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
- 기본 리전 및 영역을 설정합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Google Cloud CLI를 설치합니다.
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.
필요한 역할
컴퓨팅 인스턴스의 토폴로지를 확인하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 뷰어 (roles/compute.viewer) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 컴퓨팅 인스턴스의 토폴로지를 확인하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
컴퓨팅 인스턴스의 토폴로지를 확인하려면 다음 권한이 필요합니다.
-
컴퓨팅 인스턴스의 세부정보를 보려면 프로젝트에 대한
compute.instances.get권한이 필요합니다. -
컴퓨팅 인스턴스 목록 보기: 프로젝트에 대한
compute.instances.list권한
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
컴퓨팅 인스턴스 토폴로지 확인
실행 중인 컴퓨팅 인스턴스의 토폴로지를 확인하려면 다음 방법 중 하나를 사용하세요.
Google Cloud 콘솔, gcloud CLI 또는 REST를 사용하여 컴퓨팅 인스턴스 토폴로지 확인
여러 컴퓨팅 인스턴스의 토폴로지를 동시에 보려면 REST API를 사용하세요. 그렇지 않으면 다음 옵션 중 하나를 선택합니다.
콘솔
Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
이름 열에서 세부정보를 보려는 컴퓨팅 인스턴스의 이름을 클릭합니다. 인스턴스 세부정보를 제공하는 페이지가 표시되고 세부정보 탭이 선택됩니다.
기본 정보 섹션에서 물리적 호스트 필드의 값을 확인합니다.
gcloud
실행 중인 컴퓨팅 인스턴스의 토폴로지를 보려면 --flatten=resourceStatus.physicalHostTopology 플래그와 함께 gcloud compute instances describe 명령어를 사용합니다.
gcloud compute instances describe INSTANCE_NAME \
--flatten=resourceStatus.physicalHostTopology \
--zone=ZONE
다음을 바꿉니다.
INSTANCE_NAME: 컴퓨팅 인스턴스 이름입니다.ZONE: 컴퓨팅 인스턴스가 있는 영역입니다.
출력은 다음과 비슷합니다.
---
block: 3e3056e23cf91a5cb4a8621b6a52c100
cluster: europe-west1-cluster-jfhb
host: 1215168a4ecdfb434fd4d28056589059
subBlock: 0fc09525cbd5abd734342893ca1c083f
REST
실행 중인 컴퓨팅 인스턴스의 토폴로지를 보려면 다음 GET 요청 중 하나를 실행하세요. 요청 시 fields 쿼리 매개변수를 포함하고 컴퓨팅 인스턴스의 name, machineType, physicalHostTopology 필드만 표시하도록 지정해야 합니다. filter 쿼리 매개변수를 포함하고 실행 중인 컴퓨팅 인스턴스만 나열하도록 지정해야 합니다.
모든 영역의 인스턴스 목록을 보려면 다음을 사용하세요.
instances.aggregatedList메서드GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING특정 영역에 있는 인스턴스 목록을 보려면 다음을 사용하세요.
instances.list메서드GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
다음을 바꿉니다.
PROJECT_ID: 컴퓨팅 인스턴스가 있는 프로젝트의 ID입니다.ZONE: 컴퓨팅 인스턴스가 있는 영역입니다.
출력은 다음과 비슷합니다. 다음 예에서 컴퓨팅 인스턴스 vm-01와 vm-02는 동일한 블록에 있습니다.
{
"items": [
{
"name": "vm-01",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "1215168a4ecdfb434fd4d28056589059",
"subBlock": "0fc09525cbd5abd734342893ca1c083f"
}
}
},
{
"name": "vm-02",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "2326279b5ecdfc545fd5e39167698168",
"subBlock": "1fc18636cbd4abd623553784ca2c174e"
}
}
},
...
]
}
컴퓨팅 인스턴스 목록을 미세 조정하려면 filter 쿼리 매개변수에서 필터 표현식을 수정합니다.
메타데이터 키를 쿼리하여 컴퓨팅 인스턴스 토폴로지 확인
physical_host_topology 메타데이터 키를 쿼리하여 실행 중인 컴퓨팅 인스턴스의 토폴로지를 보려면 다음 옵션 중 하나를 선택하세요.
Linux 인스턴스
Linux 인스턴스에 연결합니다.
curl를 사용하여physical_host_topology메타데이터 키를 쿼리합니다.user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology출력은 다음과 비슷합니다.
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
Windows 인스턴스
Windows 인스턴스에 연결합니다.
Invoke-RestMethod명령어를 사용하여physical_host_topology메타데이터 키를 쿼리합니다.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology") $value출력은 다음과 비슷합니다.
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
다음 단계
컴퓨팅 인스턴스의 호스트 이벤트에 대해 자세히 알아보세요.
컴퓨팅 인스턴스를 모니터링하는 방법을 알아보세요.