컴퓨팅 인스턴스의 토폴로지 보기

이 문서에서는 예약된 용량 블록에서 실행되는 A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (8개의 GPU) 인스턴스의 실제 위치를 보는 방법을 설명합니다. A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (8개의 GPU) 인스턴스를 만든 후에는 Compute Engine 인스턴스가 서로 가장 가까운지 확인하기 위해 인스턴스 배열을 볼 수 있습니다. 인스턴스 근접성을 파악하면 다음 작업을 수행할 수 있습니다.

  • 애플리케이션 또는 워크로드 설계를 조정하여 네트워크 지연 시간을 한층 더 최소화합니다.

  • 자주 통신하는 컴퓨팅 인스턴스가 예기치 않게 멀리 떨어져 있는 경우 네트워크 지연 시간 또는 성능 문제를 해결합니다.

Cluster Director에서 클러스터의 토폴로지를 보려면 클러스터 토폴로지 보기를 참조하세요.

시작하기 전에

필요한 역할

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

이 사전 정의된 역할에는 컴퓨팅 인스턴스 토폴로지를 보는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

컴퓨팅 인스턴스 토폴로지를 보려면 다음 권한이 필요합니다.

  • 인스턴스 세부정보 보기: compute.instances.get 프로젝트에 대한
  • 인스턴스 목록 보기: compute.instances.list 프로젝트에 대한

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

컴퓨팅 인스턴스 토폴로지 이해

실행 중인 컴퓨팅 인스턴스의 세부정보를 보면 실제 호스트 필드( Google Cloud 콘솔의 경우) 또는 physicalHostTopology 필드 (gcloud CLI, Compute Engine API의 경우 또는 메타데이터 키를 쿼리하여)를 확인하여 클러스터의 실제 위치를 파악할 수 있습니다. 이러한 필드에는 다음 하위 필드가 포함됩니다.

  • cluster: 클러스터의 전역 이름입니다.

  • block: 인스턴스가 있는 예약된 블록의 조직별 ID입니다.

  • sub-block: 인스턴스가 있는 하위 블록의 조직별 ID입니다.

  • host: 인스턴스가 실행되는 호스트의 조직별 ID입니다.

인스턴스 근접성을 파악하려면 인스턴스 간의 실제 호스트 또는 physicalHostTopology 필드 값을 비교합니다. 인스턴스가 공유하는 하위 필드가 많을수록 실제 위치가 더 가깝습니다.

컴퓨팅 인스턴스가 생성되는 예약의 토폴로지를 볼 수도 있습니다. 예약 및 인스턴스의 physicalHostTopology 필드는 동일한 blockcluster 필드를 보여줍니다. 예를 들어 특정 예약된 블록을 보면 블록에 배포된 모든 인스턴스의 이름과 하위 블록을 볼 수 있습니다. 예약의 토폴로지에 대한 자세한 내용은 예약의 토폴로지 보기를 참조하세요.

컴퓨팅 인스턴스 토폴로지 보기

실행 중인 여러 컴퓨팅 인스턴스의 실제 위치를 한 번에 보려면 REST API를 사용하세요. 또는 다음 옵션 중 하나를 선택합니다.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 이름 열에서 세부정보를 보려는 인스턴스의 이름을 클릭합니다. 인스턴스 세부정보를 제공하는 페이지가 표시되고 세부정보 탭이 선택됩니다.

  3. 기본 정보 섹션에서 실제 호스트 필드의 값을 확인합니다.

gcloud

실행 중인 컴퓨팅 인스턴스의 실제 위치를 보려면 gcloud compute instances describe 명령어--flatten=resourceStatus.physicalHostTopology 플래그와 함께 사용합니다.

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스의 이름

  • ZONE: 인스턴스가 있는 영역

출력은 다음과 비슷합니다.

---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059

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: 인스턴스가 있는 영역입니다.

출력은 다음과 비슷합니다.

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "0fc09525cbd5abd734342893ca1c083f",
          "host": "1215168a4ecdfb434fd4d28056589059"
        }
      }
    },
    {
      "name": "vm-02",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "1fc18636cbd4abd623553784ca2c174e",
          "host": "2326279b5ecdfc545fd5e39167698168"
        }
      }
    },
    ...
  ]
}

인스턴스 목록을 세부적으로 조정하려면 필터 표현식을 filter 쿼리 매개변수에서 수정합니다.

메타데이터 키를 쿼리하여 컴퓨팅 인스턴스 토폴로지 보기

physical_host_topology 메타데이터 키를 쿼리하여 실행 중인 컴퓨팅 인스턴스의 실제 위치를 보려면 다음 옵션 중 하나를 선택합니다.

Linux 인스턴스

  1. Linux 컴퓨팅 인스턴스에 연결합니다.

  2. Linux 인스턴스에서 curl 도구를 사용하여 쿼리를 만듭니다. Linux 인스턴스에서 physical_host_topology 메타데이터 키를 쿼리하려면 다음 명령어를 실행합니다.

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    출력은 다음과 비슷합니다.

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

Windows 인스턴스

  1. Windows 컴퓨팅 인스턴스에 연결합니다.

  2. Windows 인스턴스에서 Invoke-RestMethod 명령어를 사용하여 쿼리를 만듭니다. Windows 인스턴스에서 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
    

    출력은 다음과 비슷합니다.

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

다음 단계