튜토리얼: Cloud DNS를 사용하여 도메인 설정


이 가이드에서는 도메인 등록, 샘플 웹 서버 설정, Cloud DNS를 사용하여 도메인 URL을 서버로 가리키는 프로세스를 안내합니다.

Google Cloud용 Terraform을 처음 사용하는 경우 Terraform 시작하기를 참조하세요.

목표

이 튜토리얼에서는 다음 작업을 완료하는 방법을 보여줍니다.

  • Cloud Domains를 사용하여 도메인 이름 등록
  • Compute Engine 가상 머신(VM) 인스턴스 만들기
  • 기본 Apache 웹 서버 실행
  • Cloud DNS를 사용하여 도메인 설정
  • 네임서버 업데이트
  • 설정 확인

비용

도메인 이름 등록에는 비용이 듭니다. Cloud Domains 가격 책정은 Cloud Domains 가격 책정을 참조하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. Compute Engine API를 사용 설정합니다.

    API 사용 설정

도메인 이름 등록

이미 등록된 도메인이 있는 경우 이 섹션을 건너뛰세요.

Cloud Domains를 사용하여 도메인을 등록할 수 있습니다. Cloud Domains를 사용하면 시작하기 전에 섹션에서 만든 도메인에 동일한 결제 계정을 사용할 수 있습니다. Cloud Domains를 사용하여 도메인을 등록하는 방법을 알아보려면 도메인 등록을 참조하세요.

가상 머신 인스턴스 만들기

콘솔

Compute Engine에서 Linux 가상 머신(VM) 인스턴스를 만들려면 다음 안내를 따르세요.

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

    인스턴스 만들기로 이동

  2. 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크 구성을 시작합니다.
  3. Public images 탭에서 Debian version 9를 선택합니다.
  4. 선택을 클릭합니다.
  5. 방화벽 섹션에서 HTTP 트래픽 허용을 선택합니다.
  6. 만들기를 클릭하여 VM을 만듭니다.

인스턴스가 시작될 때까지 잠시 기다립니다. 인스턴스가 준비되면 VM 인스턴스 페이지에 녹색 상태 아이콘이 표시됩니다.

내 인스턴스에 연결

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

    VM 인스턴스로 이동

  2. 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.

    인스턴스 이름 옆에 있는 SSH 버튼

이제 Linux 인스턴스와 상호작용할 수 있는 터미널 창이 생겼습니다.

자세한 내용은 빠른 시작: Linux VM 사용을 참조하세요.

기본 Apache 웹 서버 실행

이 섹션에서는 Apache 웹 서버를 실행하고 테스트합니다.

  1. SSH 창에서 Debian 패키지 관리자를 사용하여 apache2 패키지를 설치합니다.

     sudo apt-get update && sudo apt-get install apache2 -y
     

    Apache를 설치하면 운영체제에서 자동으로 Apache 서버를 시작합니다.

  2. 다음 명령어를 사용하여 Apache 웹 서버의 기본 웹페이지를 덮어씁니다.

     echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" 
    | sudo tee /var/www/html/index.html

서버 테스트

인스턴스가 외부 IP 주소에서 트래픽을 제공하고 있는지 테스트합니다.

콘솔

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

    VM 인스턴스로 이동

  2. 외부 IP 열에서 인스턴스의 외부 IP 주소를 복사합니다.
  3. 브라우저에서 http://[EXTERNAL_IP]로 이동합니다. 서버가 Connection Refused 오류를 반환하므로 https를 사용하여 연결하지 마세요.

이제 Hello World! 페이지가 표시됩니다.

자세한 내용은 기본 Apache 웹 서버 실행을 참조하세요.

Cloud DNS를 사용하여 도메인 설정

기존 제공업체에서 마이그레이션하는 경우 기존 영역을 Cloud DNS로 가져올 수 있습니다. 자세한 내용은 기존 제공업체에서 DNS 구성 내보내기를 참조하세요. 그렇지 않으면 다음 단계에 따라 새 공개 영역을 만듭니다.

콘솔

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

    DNS 영역 만들기로 이동

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

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

  4. DNS 이름에 등록한 도메인 이름을 사용하여 영역의 DNS 이름 서픽스를 입력합니다(예: example.com).

  5. DNSSEC에서 Off 설정이 선택되어 있는지 확인합니다.

  6. 만들기를 클릭하여 NS 및 SOA 레코드로 채워진 영역을 만듭니다.

  7. 등록된 도메인 이름이 호스팅 서버의 IP 주소를 가리키도록 하려면 영역에 A 레코드를 추가해야 합니다.

    1. 영역 세부정보 페이지에서 표준 추가를 클릭합니다.
    2. 리소스 레코드 유형 메뉴에서 A를 선택합니다.
    3. IPv4 주소에서 인스턴스의 외부 IP 주소를 입력합니다.
    4. 만들기를 클릭하여 영역에 대해 A 레코드를 만듭니다.
  8. 선택사항: 도메인 이름의 프리픽스로 CNAME 레코드를 추가합니다(예: www.).

    1. 표준 추가를 클릭합니다.
    2. DNS 이름 필드에 도메인의 프리픽스 www를 추가합니다.
    3. 리소스 레코드 유형에서 CNAME을 선택합니다.
    4. 표준 이름에 도메인 이름과 마침표를 입력합니다(예: example.com.).
    5. 만들기를 클릭합니다.

네임서버 업데이트

Cloud Domains에서 네임서버를 업데이트하려면 다음 단계를 따르세요.

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

    Cloud Domains로 이동

  2. 수정할 도메인 이름을 클릭합니다. 도메인 이름 옆에 있는 더보기를 클릭하여 수정 메뉴를 표시할 수도 있습니다.

  3. DNS 세부정보를 수정하려면 DNS 세부정보 수정을 클릭합니다.

  4. Cloud DNS 사용(권장)을 선택합니다.

  5. Cloud DNS 영역 목록에서 my-new-zone을 선택합니다.

  6. 저장을 클릭합니다.

Terraform

Terraform 리소스를 사용하여 가상 머신(VM) 인스턴스를 만들고 Apache 웹 서버를 실행하고 Cloud DNS를 사용하여 도메인을 설정하며 네임서버를 업데이트할 수 있습니다.

Terraform 모듈을 사용하여 공개, 비공개, 피어링 또는 전달 영역으로 Cloud DNS를 설정할 수도 있습니다. 영역에 대한 자세한 내용은 DNS 영역 개요를 참조하세요.

# to setup a web-server

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

resource "google_compute_instance" "default" {
  name         = "dns-compute-instance"
  machine_type = "g1-small"
  zone         = "us-central1-b"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral public IP
    }
  }
  metadata_startup_script = <<-EOF
  sudo apt-get update && \
  sudo apt-get install apache2 -y && \
  echo "<!doctype html><html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html
  EOF
}

# to allow http traffic
resource "google_compute_firewall" "default" {
  name    = "allow-http-traffic"
  network = "default"
  allow {
    ports    = ["80"]
    protocol = "tcp"
  }
  source_ranges = ["0.0.0.0/0"]
}

# to create a DNS zone
resource "google_dns_managed_zone" "default" {
  name          = "example-zone-googlecloudexample"
  dns_name      = "example-${random_id.rnd.hex}.com."
  description   = "Example DNS zone"
  force_destroy = "true"
}

# to register web-server's ip address in DNS
resource "google_dns_record_set" "default" {
  name         = google_dns_managed_zone.default.dns_name
  managed_zone = google_dns_managed_zone.default.name
  type         = "A"
  ttl          = 300
  rrdatas = [
    google_compute_instance.default.network_interface[0].access_config[0].nat_ip
  ]
}

설정 확인

구성이 작동하는지 확인하려면 네임서버가 업데이트된 도메인 이름으로 이동합니다(예: example.com). 도메인이 IP 주소를 확인하고 기본 Apache 웹 서버 실행에서 만든 Hello World! 페이지가 표시된 Compute Engine VM을 가리켜야 합니다.

또한 설정이 올바른지 확인하기 위해 터미널 창에서 dig +trace example.com 명령어를 실행할 수도 있습니다. example.com을 등록된 도메인 이름으로 바꿉니다.

dig +trace example.com

출력의 끝에 다음이 포함됩니다. IP_ADDRESS는 웹 서버의 IP 주소입니다.

example.com.    300 IN  A   IP_ADDRESS
;; Received 62 bytes from 216.239.34.109#53(ns-cloud-d2.googledomains.com) in 62 ms

변경되었는지 확인하려면 다음 명령어를 실행합니다.

example.com IN NS <your Cloud DNS name servers>

또한 DNS 전파가 완료될 때까지 기다린 후 nslookup 명령어를 실행하여 설정을 확인할 수 있습니다.

nslookup example.com

출력에 다음이 포함됩니다. IP_ADDRESS는 웹 서버의 IP 주소입니다.

Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   example.com
Address: IP_ADDRESS

삭제

콘솔

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

    Cloud DNS 영역으로 이동

  2. 영역 이름(예: my-new-zone)을 클릭하여 영역 세부정보 페이지로 이동합니다.

  3. 만든 A 및 CNAME 레코드를 선택합니다.

  4. 레코드 집합 삭제를 클릭합니다.

  5. 영역을 삭제하려면 영역 이름 my-new-zone에 대해 영역 삭제를 클릭합니다.

  6. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  7. 삭제할 인스턴스를 선택합니다.

  8. 인스턴스 행의 더보기 메뉴에서 삭제를 클릭합니다.

다음 단계