영역 만들기, 수정, 삭제

이 페이지에서는 Cloud DNS 관리형 영역의 생성, 업데이트, 나열, 삭제에 대한 안내를 제공합니다. 이 페이지를 사용하기 전에 Cloud DNS 개요핵심 용어를 숙지하세요.

시작하기 전에

Cloud DNS API를 사용하려면 Cloud DNS 프로젝트를 만들고 Cloud DNS API를 사용 설정해야 합니다.

REST API를 사용하는 애플리케이션을 만드는 경우 OAuth 2.0 클라이언트 ID도 만들어야 합니다.

  1. 아직 계정이 없으면 Google 계정에 가입합니다.
  2. Google Cloud 콘솔에서 Cloud DNS API를 사용 설정합니다. 기존의 Compute Engine 또는 App Engine 프로젝트를 선택하거나 새 프로젝트를 만들 수 있습니다.
  3. REST API에 요청해야 하는 경우 OAuth 2.0 ID를 만들어야 합니다(OAuth 2.0 설정).
  4. 프로젝트에서 이후 단계에 입력해야 하는 다음 정보를 확인합니다.
    • 클라이언트 ID(xxxxxx.apps.googleusercontent.com)
    • 사용할 프로젝트 ID. Google Cloud 콘솔의 개요 페이지 상단에서 ID를 찾을 수 있습니다. 또한 사용자에게 앱에서 사용할 프로젝트 이름을 제공하도록 요청할 수도 있습니다.

이전에 Google Cloud CLI를 실행한 적이 없다면 다음 명령어를 실행하여 프로젝트 이름을 지정하고 Google Cloud 콘솔에서 인증을 수행해야 합니다.

gcloud auth login

다른 프로젝트의 Google Cloud 리소스에서 gcloud 명령어를 실행하려면 이 명령어 및 이 페이지의 다른 gcloud 명령어에 --project 옵션을 지정하세요.

관리형 영역 만들기

만드는 각 관리형 영역은 Google Cloud 프로젝트와 연결됩니다. 다음 섹션에서는 Cloud DNS가 지원하는 관리형 영역 유형을 만드는 방법을 설명합니다.

공개 영역 만들기

새 관리형 영역을 만들려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 DNS 영역 만들기 페이지로 이동합니다.

    DNS 영역 만들기로 이동

  2. 영역 유형공개를 선택합니다.

  3. 영역 이름을 입력합니다(예: my-new-zone).

  4. 소유하고 있는 도메인 이름을 사용하여 영역의 DNS 이름 서픽스를 입력합니다. 영역의 모든 레코드는 이 서픽스(예: example.com)를 공유합니다.

  5. DNSSEC에서 Off, On, Transfer를 선택합니다. 자세한 내용은 기존 관리형 영역에 DNSSEC 사용 설정을 참조하세요.

  6. 만들기를 클릭합니다. 영역 세부정보 페이지가 표시됩니다.

gcloud

dns managed-zones create 명령어를 실행합니다.

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --labels=LABELS \
    --visibility=public

다음을 바꿉니다.

  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • DNS_SUFFIX: 영역의 DNS 서픽스(예: example.com)
  • LABELS: 쉼표로 구분된 선택적인 키-값 쌍 목록입니다(예: dept=marketing 또는 project=project1). 자세한 내용은 SDK 문서를 참조하세요.

Terraform

resource "google_dns_managed_zone" "example_zone" {
  name        = "example-zone"
  dns_name    = "example-${random_id.rnd.hex}.com."
  description = "Example DNS zone"
  labels = {
    name = "value"
  }
}

resource "random_id" "rnd" {
  byte_length = 4
}

API

managedZones.create 메서드를 사용하여 POST 요청을 전송합니다.

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{
  "name": "NAME",
  "description": "DESCRIPTION",
  "dnsName": "DNS_NAME",
  "visibility": "public"
}

다음을 바꿉니다.

  • PROJECT_ID: 관리형 영역이 생성된 프로젝트의 ID
  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • DNS_NAME: 영역의 DNS 서픽스(예: example.com)

비공개 영역 만들기

Cloud DNS로 관리되는 비공개 DNS 레코드를 사용하여 새로운 관리형 비공개 영역을 만들려면 다음 단계를 완료하세요. 자세한 내용은 Cloud DNS 비공개 영역 권장사항을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 DNS 영역 만들기 페이지로 이동합니다.

    DNS 영역 만들기로 이동

  2. 영역 유형으로 비공개를 선택합니다.

  3. 영역 이름을 입력합니다(예: my-new-zone).

  4. 비공개 영역의 DNS 이름 서픽스를 입력합니다. 영역의 모든 레코드는 이 서픽스(예: example.private)를 공유합니다.

  5. 선택사항: 설명을 추가합니다.

  6. 옵션에서 기본값(비공개)을 선택합니다.

  7. 비공개 영역이 표시되어야 하는 Virtual Private Cloud(VPC) 네트워크를 선택합니다. 선택한 VPC 네트워크만 영역의 레코드를 쿼리할 수 있습니다.

  8. 만들기를 클릭합니다.

gcloud

dns managed-zones create 명령어를 실행합니다.

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --labels=LABELS \
    --visibility=private

다음을 바꿉니다.

  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • DNS_SUFFIX: 영역의 DNS 서픽스(예: example.private)
  • VPC_NETWORK_LIST: 영역을 쿼리할 수 있는 VPC 네트워크의 쉼표로 구분된 목록.
  • LABELS: 쉼표로 구분된 선택적인 키-값 쌍 목록입니다(예: dept=marketing 또는 project=project1). 자세한 내용은 SDK 문서를 참조하세요.

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

API

managedZones.create 메서드를 사용하여 POST 요청을 전송합니다.

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{

"name": "NAME",
"description": "DESCRIPTION",
"dnsName": "DNS_NAME",
"visibility": "private"
"privateVisibilityConfig": {
    "kind": "dns#managedZonePrivateVisibilityConfig",
    "networks": [{
            "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
            "networkUrl": VPC_NETWORK_1
        },
        {
            "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
            "networkUrl": VPC_NETWORK_2
        },
        ....
    ]
}

다음을 바꿉니다.

  • PROJECT_ID: 관리형 영역이 생성된 프로젝트의 ID
  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • DNS_NAME: 영역의 DNS 서픽스(예: example.private)
  • VPC_NETWORK_1VPC_NETWORK_2: 동일한 프로젝트에 있는 이 영역에서 레코드를 쿼리할 수 있는 VPC 네트워크의 URL. 명시된 대로 여러 VPC 네트워크를 추가할 수 있습니다. VPC 네트워크의 URL을 확인하려면 다음 gcloud 명령어를 사용합니다. 여기서 VPC_NETWORK_NAME은 네트워크 이름으로 바꿉니다.

    gcloud compute networks describe VPC_NETWORK_NAME \
     --format="get(selfLink)"
    

특정 IAM 권한이 있는 영역 만들기

개별 리소스 관리형 영역에 대한 Identity and Access Management(IAM) 권한을 사용하면 동일한 프로젝트에서 서로 다른 관리형 영역에 대한 특정 읽기, 쓰기 또는 관리자 권한을 설정할 수 있습니다.

특정 Identity and Access Management(IAM) 권한이 있는 영역을 만드는 방법에 대한 자세한 내용은 특정 IAM 권한이 있는 영역 만들기를 참조하세요.

서비스 디렉터리 DNS 영역 만들기

Google Cloud 기반 서비스가 DNS를 통해 서비스 디렉터리 네임스페이스를 쿼리할 수 있도록 허용하는 서비스 디렉터리 영역을 만들 수 있습니다.

서비스 디렉터리 DNS 영역을 만드는 방법에 대한 자세한 내용은 서비스 디렉터리 DNS 영역 구성을 참조하세요.

DNS를 사용하여 서비스 디렉터리를 쿼리하는 방법에 대한 안내는 DNS를 사용하여 쿼리를 참조하세요.

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

  private_visibility_config {
    networks {
      network_url = google_compute_network.network_1.id
    }
    networks {
      network_url = google_compute_network.network_2.id
    }
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

관리형 역방향 조회 비공개 영역 만들기

관리형 역방향 조회 영역은 Cloud DNS가 Compute Engine DNS 데이터에 대해 PTR 조회를 수행하도록 지정하는 특수한 속성이 포함된 비공개 영역입니다. 가상 머신(VM) 인스턴스의 비RFC 1918 PTR 레코드를 올바르게 확인하기 위해서는 Cloud DNS에 대해 관리형 역방향 조회 영역을 설정해야 합니다.

새 관리형 역방향 조회 비공개 영역을 만드는 방법은 관리형 역방향 조회 영역 만들기를 참조하세요.

전달 영역 만들기

전달 영역을 사용하면 특정 비공개 영역의 네임서버를 타겟팅할 수 있습니다. 새 관리형 비공개 전달 영역을 만드는 방법은 전달 영역 만들기를 참조하세요.

피어링 영역 만들기

DNS 피어링을 사용하면 한 영역의 네임스페이스에 있는 레코드의 요청을 다른 VPC 네트워크에 전달할 수 있습니다. 피어링 영역을 만드는 방법은 피어링 영역 만들기를 참조하세요.

프로젝트 간 바인딩 영역 만들기

같은 조직 내 다른 프로젝트에서 소유한 네트워크에 바인딩할 수 있는 관리형 비공개 영역을 만듭니다. 프로젝트 간 바인딩 영역을 만드는 방법은 프로젝트 간 바인딩 영역을 참조하세요.

관리형 영역 업데이트

Cloud DNS를 사용하면 관리형 공개 영역 또는 관리형 비공개 영역의 특정 속성을 수정할 수 있습니다.

공개 영역 업데이트

공개 영역의 설명 또는 DNSSEC 구성을 변경할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 업데이트할 공개 영역을 클릭합니다.

  3. 수정을 클릭합니다.

  4. DNSSEC 설정을 변경하려면 DNSSEC에서 Off, On, Transfer를 선택합니다. 자세한 내용은 기존 관리형 영역에 DNSSEC 사용 설정을 참조하세요.

  5. 선택사항: 설명을 업데이트합니다.

  6. 저장을 클릭합니다.

gcloud

dns managed-zones update 명령어를 실행합니다.

gcloud dns managed-zones update NAME \
    --description=DESCRIPTION \
    --dnssec-state=STATE

다음을 바꿉니다.

  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • STATE: Off, On, Transfer와 같은 DNSSEC 설정

비공개 영역이 표시되는 VPC 네트워크를 수정하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 업데이트할 비공개 영역을 클릭합니다.

  3. 수정을 클릭합니다.

  4. 비공개 영역이 표시되어야 하는 VPC 네트워크를 선택합니다. 선택한 VPC 네트워크만 영역의 레코드를 쿼리할 수 있습니다.

  5. 저장을 클릭합니다.

gcloud

dns managed-zones update 명령어를 실행합니다.

gcloud dns managed-zones update NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST

다음을 바꿉니다.

  • NAME: 영역 이름
  • DESCRIPTION: 영역에 대한 설명
  • VPC_NETWORK_LIST: 영역을 쿼리할 수 있는 VPC 네트워크의 쉼표로 구분된 목록.

라벨 업데이트

관리형 영역에서 새 라벨을 추가하거나, 기존 라벨을 변경하거나, 선택한 라벨을 삭제하거나, 모든 라벨을 지우려면 다음 단계를 완료하세요.

gcloud

dns managed-zones update 명령어를 실행합니다.

gcloud dns managed-zones update NAME \
    --update-labels=LABELS
gcloud dns managed-zones update NAME \
    --remove-labels=LABELS
gcloud dns managed-zones update NAME \
    --clear-labels

다음을 바꿉니다.

  • NAME: 영역 이름
  • LABELS: 쉼표로 구분된 선택적인 키-값 쌍 목록입니다(예: dept=marketing 또는 project=project1). 자세한 내용은 SDK 문서를 참조하세요.

관리형 영역 나열 및 설명

다음 섹션에서는 관리형 영역을 나열하거나 설명하는 방법을 보여줍니다.

관리형 영역 나열

프로젝트 내에서 모든 관리형 영역을 나열하려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 오른쪽 창에서 관리형 영역을 확인합니다.

gcloud

dns managed-zones list 명령어를 실행합니다.

gcloud dns managed-zones list

모든 관리형 영역을 나열하려면 다음과 같이 명령어를 수정합니다.

gcloud dns managed-zones list \
   --filter="visibility=public"

모든 관리형 비공개 영역을 나열하려면 다음과 같이 명령어를 수정합니다.

gcloud dns managed-zones list \
   --filter="visibility=private"

관리형 영역 설명

관리형 영역의 속성을 보려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 검사할 영역을 클릭합니다.

gcloud

dns managed-zones describe 명령어를 실행합니다.

gcloud dns managed-zones describe NAME

NAME을 영역 이름으로 바꿉니다.

관리형 영역 삭제

관리형 영역을 삭제하려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 삭제하려는 관리형 영역을 클릭합니다.

  3. SOANS 레코드를 제외한 영역의 모든 레코드를 삭제합니다. 자세한 내용은 레코드 삭제를 참조하세요.

  4. 영역 삭제를 클릭합니다.

gcloud

  1. SOANS 레코드를 제외한 영역의 모든 레코드를 삭제합니다. 자세한 내용은 레코드 삭제를 참조하세요. 빈 파일을 레코드 모음으로 가져와 전체 영역을 빠르게 비울 수 있습니다. 자세한 내용은 레코드 모음 가져오기 및 내보내기를 참조하세요. 예를 들면 다음과 같습니다.

    touch empty-file
    gcloud dns record-sets import -z NAME \
       --delete-all-existing \
       empty-file
    rm empty-file
    

    NAME을 영역 이름으로 바꿉니다.

  2. 새 관리형 비공개 영역을 삭제하려면 dns managed-zones delete 명령어를 실행합니다.

    gcloud dns managed-zones delete NAME
    

    NAME을 영역 이름으로 바꿉니다.

다음 단계