🌐

ドメインを取得してから名前解決されるまでの一連の設定を Google Cloud でやる

に公開

ターゲット

  • ドメインを取得してから名前解決されるまでの一連の流れを把握したい方
  • Cloud Domains と Cloud DNS を使って、Google Cloud で上記を完結させたい方

全体像

やることは次の4つです。以降、それぞれの作業を実施・解説していきます。

  • ドメインの取得・登録
  • ドメイン名の A レコードを設定する(=ドメインにアクセスされた時、特定のIPアドレスを返す)
  • サブドメインのゾーンを作成
  • サブドメイン名の A レコードを設定する(=サブドメインにアクセスされた時、特定のIPアドレスを返す)

ドメインの取得・登録

Cloud Domains を使って Google Cloud 上でドメインを登録して構成することができます。
早速やっていきましょう!手順はチュートリアルに沿って行います。

Google Cloud コンソールで [Cloud Domains] ページに移動し、[ドメインを登録] をクリックします。

すると、ドメインの登録画面が表示されます。

使用可能なドメインを検索します。ここでは仮に example.com とします。

ドメイン名の横にあるショッピングカートをクリックし、購入するドメイン名を特定します。
exmple.com は実在しないことを保証するために予約されたドメイン名で、登録することはできません。あくまで例として示しています。)

料金は利用可能なドメインごとに表示されています。
[続行] をクリックすると、[DNS構成]に移ります。

デフォルトで[Cloud DNS を使用する] が選択されていますが、ここではそのままとします。
[続行] をクリックすると、[プライバシー保護]に移ります。

ドメインのプライバシー保護設定を選択します。ここでは[一般公開される情報を制限する]を選択します。
[続行]をクリックすると、[連絡先の詳細]に移ります。

連絡先の情報を入力し[登録]を押します。
その後、no-reply@squarespace.com からドメインの連絡先情報に指定したアドレス宛に確認メールが送信されます。

15日以内に本文中の [Verify email now] をクリックする必要があり、その後はドメインが無効になるようなのでご注意ください。
これでドメインの取得・登録は完了です。

ドメインの登録が完了すると、Cloud DNS でゾーンが作成されます。
[Cloud DNS] > [先ほど作成したゾーン名] をクリックするとゾーン情報を確認することができ、SOAレコードとNSレコードが含まれています。

これでドメイン名前空間で example.com を検索するための土台が整いました。
名前解決の流れを模式図で表すと次のようになります。

  1. クライアントが example.com にリクエストを投げるとスタブリゾルバが Root Server に問い合わせ、comドメインを管理するネームサーバの情報が返されます。
  2. スタブリゾルバがcomドメインのネームサーバに example.com を問い合わせると、example.com ドメインを管理するネームサーバ(ns-cloud-a.googledomains.com)の情報が返されます。
  3. スタブリゾルバがns-cloud-a.googledomains.comexample.com を問い合わせると、Aレコード内のIPが返されます。

赤枠がドメインの登録によって作成されたゾーン情報で、緑枠部分が現状不足しているため、ドメイン名の A レコードを設定するにて作成します。

現在の状態で想定通りネームサーバが動作しているかを確認するために、次のコマンドを実行します。

$ dig +short example.com NS

これは example.com を管理するネームサーバ(ns-cloud-a.googledomains.com)からNSレコードを取得して出力します。
この出力結果が example.com の NS レコードの値と一致していればOKです。

ドメイン名の A レコードを設定する

example.com にIPを紐づけるために、作成したゾーンにAレコードを次の手順で追加します。
(参考:Cloud DNS を使用してドメインを設定する

  1. example.com のゾーンの詳細ページで[標準を追加] をクリックします。
  2. [DNS名]は入力せずそのままにします。
  3. [リソースレコードのタイプ] は A を選択します。
  4. [IPv4 アドレス] に IP アドレスを入力します。
  5. [作成] をクリックします。

これでAレコードが作成されました。
次のコマンドを実行すると、Aレコードで設定したIPが返されるようになります。

dig +short example.com

IPが返されるようになると、ブラウザアクセスでレスポンスが得られるようになります。

CNAME レコードを作成する

ドメイン名に接頭辞 www を付けた www.example.com にアクセスした時にも example.com と同じIPを返したいとします。
これを実現するにはCNAMEレコードを使用します。CNAMEレコードは次の手順で作成します。

  1. example.com のゾーンの詳細ページで [標準を追加] をクリックします。
  2. [DNS 名] フィールドにドメインの接頭辞 www を追加します。
  3. [リソースレコードのタイプ] で [CNAME] を選択します。
  4. [正規名] で、ドメイン名に続いてピリオドを入力します(example.com.)。
  5. [作成] をクリックします。

これでCNAMEレコードが作成されました。
次のコマンドを実行すると、Aレコードで設定したIPと同じ値が返されます。

dig +short www.example.com

ブラウザアクセスした結果のレスポンスも example.com と同じになります。

サブドメインのゾーンを作成

今度はドメイン名に接頭辞 sandbox を付けた sandbox.example.com を作成します。
これを example.com のゾーン情報とは分けて管理したい時、次の手順でサブドメイン専用のゾーンを作成することができます。

  1. Cloud DNS のゾーン一覧から、[ゾーンの作成]ボタンをクリック
  2. [ゾーン名]には分かりやすい名前を記入
  3. [DNS名]にはサブドメイン全体(sandbox.example.com)を記入
  4. [作成]をクリック
  5. ゾーンが作成され、ゾーン内に SOAレコード、NS レコードが作成されています。このうち、NSレコードのネームサーバのドメイン名をメモしておきます。
  6. 親ドメインのゾーンで[標準を追加]をクリックして、[リソースレコードのタイプ]にNS、[ネームサーバ]に先ほどメモしたドメイン名を入れます。

これでサブドメインsandbox.example.comを検索するための土台が整いました。
名前解決の流れを模式図で表すと次のようになります。

  1. クライアントが sandbox.example.com にリクエストを投げるとスタブリゾルバが Root Server に問い合わせ、comドメインを管理するネームサーバの情報が返されます。
  2. スタブリゾルバがcomドメインのネームサーバに sandbox.example.com を問い合わせると、example.com ドメインを管理するネームサーバ(ns-cloud-a.googledomains.com)の情報が返されます。
  3. スタブリゾルバがns-cloud-a.googledomains.comsandbox.example.com を問い合わせると、sandbox.example.com ドメインを管理するネームサーバ(ns-cloud-b.googledomains.com)の情報が返されます。
  4. スタブリゾルバが ns-cloud-b.googledomains.comsandbox.example.com を問い合わせると、Aレコード内のIPが返されます。

赤枠はサブドメインのゾーン作成とNSレコードの作成によって作られたもので、緑枠部分が現状不足しているため、サブドメイン名のAレコードを設定するにて作成します。
現在の状態で想定通りネームサーバが動作しているかを確認するため次のコマンドを実行します。

dig +short sandbox.example.com NS

これは sandbox.example.com を管理するネームサーバ(ns-cloud-b.googledomains.com)からNSレコードを取得して出力します。
この出力結果が sandbox.example.com の NS レコードの値と一致していればOKです。

サブドメイン名の A レコードを設定する

sandbox.example.com にIPを紐づけるために、sandbox.example.com のゾーンにAレコードを次の手順で追加します。

  1. sandbox.example.com のゾーンの詳細ページで [標準を追加] をクリックします。
  2. [DNS名]は入力せずそのままにします。
  3. [リソースレコードのタイプ] は A を選択します。
  4. [IPv4 アドレス] に IP アドレスを入力します。
  5. [作成] をクリックします。

これでAレコードが作成されました。
次のコマンドを実行すると、Aレコードで設定したIPが返されるようになります。

dig +short sandbox.example.com

IPが返されるようになると、ブラウザアクセスでレスポンスが得られるようになります。

備考

デフォルトではドメインの自動更新がオンになっているため、更新したくない場合はこの手順に従って自動更新を無効にします。

参考

DNSの基本動作については「書籍:3分間DNS基礎講座」が分かりやすくて参考になりました。

Discussion