チュートリアル: Cloud DNS を使用してドメインを設定する


このチュートリアルでは、ドメインを登録してサンプルのウェブサーバーを設定し、Cloud DNS を使用してそのウェブサーバーを指すドメイン URL を設定するプロセスについて説明します。

Google Cloud で Terraform を初めて使用する場合は、Terraform を使ってみるをご覧ください。

目標

このチュートリアルでは、次のタスクを実行する方法を説明します。

  • Cloud Domains を使用してドメイン名を登録する
  • Compute Engine 仮想マシン(VM)インスタンスを作成します。
  • 基本的な Apache ウェブサーバーを実行する
  • Cloud DNS を使用してドメインを設定する
  • ネームサーバーを更新する
  • 設定を確認する

費用

ドメイン名の登録には費用がかかります。 Cloud Domains の料金については、Cloud Domains の料金をご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Compute Engine API を有効にします。

    API を有効にする

ドメイン名を登録します。

すでにドメインを登録している場合は、このセクションをスキップできます。

Cloud Domains を使用してドメインを登録できます。Cloud Domains では、始める前にで作成したものと同じ請求先アカウントをドメインに使用できます。Cloud Domains を使用してドメインを登録する方法については、ドメインの登録をご覧ください。

仮想マシン インスタンスを作成する

コンソール

Compute Engine で Linux 仮想マシン(VM)インスタンスを作成するには、次の手順に沿って操作します。

  1. In the Google Cloud console, go to the Create an instance page.

    Go to Create an instance

  2. In the Boot disk section, click Change to begin configuring your boot disk.
  3. [Public images] タブで [Debian GNU/Linux] を選択します。
  4. [選択] をクリックします。
  5. [ファイアウォール] で、 [HTTP トラフィックを許可する] を選択します。
  6. VM を作成するには、[作成] をクリックします。

インスタンスが起動するまで、しばらくお待ちください。インスタンスの準備が整うと、[VM インスタンス] ページに緑色のステータス アイコン付きで表示されます。

インスタンスへの接続

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

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 Console で、[DNS ゾーンの作成] ページに移動します。

    [DNS ゾーンの作成] に移動

  2. [ゾーンのタイプ] で [公開] を選択します。

  3. [ゾーン名] に「my-new-zone」と入力します。

  4. [DNS 名] に、登録したドメイン名を使用してゾーンの DNS 名のサフィックスを入力します(例: example.com)。

  5. [DNSSEC] で、Off の設定が選択されていることを確認します。

  6. [作成] をクリックして、NS レコードと SOA レコードが入力されたゾーンを作成します。

  7. 登録したドメイン名がホスティング サーバーの IP アドレスを指すようにするには、レコードをゾーンに追加する必要があります。

    1. [ゾーンの詳細] ページで、[標準を追加] をクリックします。
    2. [リソース レコードのタイプ] メニューで A を選択します。
    3. [IPv4 アドレス] に、インスタンスの外部 IP アドレスを入力します。
    4. [作成] をクリックして、ゾーンの A レコードを作成します。
  8. (省略可)ドメイン名に接頭辞(www. など)を付ける場合は、CNAME レコードを追加します。

    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 Console で、Cloud DNS の [ゾーン] ページに移動します。

    Cloud DNS の [ゾーン] に移動

  2. ゾーン名(例: my-new-zone)をクリックして、[ゾーンの詳細] ページに移動します。

  3. 作成した A レコードと CNAME レコードを選択します。

  4. [レコードセットを削除] をクリックします。

  5. ゾーンを削除するには、ゾーン名 my-new-zone の [ ゾーンを削除] をクリックします。

  6. [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  7. 削除するインスタンスを選択します。

  8. インスタンスの行にある [ その他] メニューで、[削除] をクリックします。

次のステップ