내부 DNS를 사용하여 VM에 액세스


같은 Virtual Private Cloud 네트워크의 VM은 IP 주소 대신 내부 DNS 이름을 사용하여 서로 액세스할 수 있습니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

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

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

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

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

      gcloud init

VM의 내부 DNS 이름 확인

다음 절차를 수행하여 VM 인스턴스에 할당된 내부 DNS 이름을 확인합니다. hostname 메타데이터 항목을 쿼리하여 내부 DNS 이름을 가져올 수 있습니다.

  1. VM에 연결
  2. hostname 메타데이터를 쿼리합니다.

    Linux VM

    curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" \
      -H "Metadata-Flavor: Google"
    

    Windows VM

    Invoke-RestMethod `
      -Headers @{"Metadata-Flavor" = "Google"} `
      -Uri "http://metadata.google.internal/computeMetadata/v1/instance/hostname"
    

메타데이터 서버는 VM에서 사용하는 내부 DNS 이름의 유형을 보여주는 다음 형식 중 하나로 VM의 호스트 이름을 반환합니다.

  • 영역 DNS: VM_NAME.ZONE.c.PROJECT_ID.internal
  • 전역 DNS: VM_NAME.c.PROJECT_ID.internal

출력에 표시되는 항목의 의미는 다음과 같습니다.

  • VM_NAME: VM의 이름입니다.
  • ZONE: VM이 있는 영역
  • PROJECT_ID: 이미지가 속한 프로젝트입니다.

내부 DNS 이름으로 VM에 액세스

VM에 액세스하려면 IP 주소 대신 내부 DNS 이름을 사용합니다.

다음 예시에서는 ping을 사용하여 영역 DNS를 사용하는 VM에 연결합니다. 이 방법은 인스턴스로 들어오는 ICMP 트래픽을 허용하는 방화벽 규칙을 만든 경우에 작동합니다.

$ ping VM_NAME.ZONE.c.PROJECT_ID.internal -c 1

PING VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17) 56(84) bytes of data.
64 bytes from VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17): icmp_seq=1 ttl=64 time=0.136 ms

다음을 바꿉니다.

  • VM_NAME: VM의 이름
  • ZONE: VM이 있는 영역
  • PROJECT_ID: 이미지가 속한 프로젝트입니다.

다음 단계