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

이 문서에서는 예약된 용량 블록에서 실행되는 A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (GPU 8개) Compute Engine 인스턴스의 실제 위치를 확인하는 방법을 설명합니다.

A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (GPU 8개) 인스턴스를 만든 후 배치를 확인하여 서로 가장 가까운 인스턴스를 확인할 수 있습니다. 인스턴스 근접성을 파악하면 다음 작업을 수행할 수 있습니다.

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

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

시작하기 전에

  • Cluster Director 기능에 사용되는 용어를 검토합니다.
  • Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

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

      Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init

      외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

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

필요한 역할

컴퓨팅 인스턴스 토폴로지를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 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

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

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 메타데이터 키를 쿼리하여 실행 중인 Compute 인스턴스의 실제 위치를 보려면 다음 옵션 중 하나를 선택합니다.

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"
    }
    

다음 단계