🌐

【AWS】ドメインを取得しDNS管理を最適にしたい

に公開

はじめに

個人ドメイン .dev を取得し、AWS Route53 で DNS 管理を構築した際の記録です。ドメインの基本的な仕組みから、実際の取得・設定手順まで解説します。

名前解決と DNS の基礎

名前解決とは

名前解決は、人間が理解しやすいドメイン名(例:example.com)をコンピュータが使用する IP アドレス(例:192.168.1.1)に変換する仕組みです。

DNS の解決フロー

  1. ローカルキャッシュ確認 - ブラウザや OS のキャッシュを確認
  2. ローカル DNS サーバー - ISP や社内の DNS サーバーへ問い合わせ
  3. ルート DNS サーバー - 最上位の DNS サーバーへ問い合わせ
  4. TLD(Top Level Domain)サーバー - .com、.dev などの TLD サーバーへ
  5. 権威 DNS サーバー - 実際のドメイン情報を持つサーバーから回答取得

ドメイン管理戦略の検討

要件

  • .dev ドメインの取得
  • メールアドレス @.dev の使用(AWS WorkMail 連携)
  • 複数のサブドメイン管理(例:subdomain.example.dev)
  • 将来的な拡張性の確保

検討した構成

1. GCP Cloud DNS 管理案

example.dev (Cloud Domains)
└─ Cloud DNS
   ├─ 基本レコード管理
   └─ subdomain.example.dev → AWS Route53へ委譲

メリット:GCP 内で完結
デメリット:AWS WorkMail との統合が複雑、管理が分散

2. AWS Route53 管理案(採用)

example.dev (Cloud Domains)
↓ カスタムネームサーバー設定
Route53 Hosted Zone
├─ A: example.dev → 任意のサーバー
├─ MX: @example.dev → AWS WorkMail
├─ A: subdomain.example.dev → 任意のサーバー
└─ その他すべてのサブドメイン

メリット

  • AWS WorkMail とのシームレスな統合
  • 一元管理による運用簡素化
  • 豊富な AWS サービスとの連携

ホストゾーンとネームサーバーの関係

ホストゾーンとは

ホストゾーン(Hosted Zone)は、特定のドメインに関する DNS レコードを管理するコンテナです。Route53 では、1 つのドメインに対して 1 つのホストゾーンを作成します。

ネームサーバーの役割

ネームサーバーは、ドメイン名の問い合わせに対して実際に IP アドレスを返答するサーバーです。ホストゾーンを作成すると、Route53 が自動的に 4 つのネームサーバーを割り当てます。

.dev ドメインとの関係

インターネット
    ↓ 「example.devのIPアドレスは?」
.devレジストリ(Google管理)
    ↓ 「example.devのネームサーバーはns-xxxx.awsdns-xx.orgです」
Route53ネームサーバー
    ↓ ホストゾーン内のレコードを参照
    ↓ 「example.devのIPアドレスは192.0.2.1です」
ユーザーへ回答

重要なポイント:

  1. ドメインレジストラ(Cloud Domains):ドメインの所有権を管理し、どのネームサーバーを使うかを指定
  2. ホストゾーン(Route53):DNS レコードを保存する場所
  3. ネームサーバー:実際に DNS クエリに応答するサーバー

実装手順

1. Route53 で Hosted Zone 作成

まず、AWS Route53 で Hosted Zone を作成します。これによりネームサーバーが割り当てられます。

# AWSコンソールで実行
# Route53 → Hosted zones → Create hosted zone
# Domain name: example.dev

作成後、以下のようなネームサーバーが割り当てられます:

  • ns-xxxx.awsdns-xx.org
  • ns-xxxx.awsdns-xx.com
  • ns-xxxx.awsdns-xx.net
  • ns-xxxx.awsdns-xx.co.uk

ホストゾーン作成時に自動生成されるレコード

Route53 でホストゾーンを作成すると、以下の 2 種類のレコードが自動的に生成されます:

NS レコード(Name Server)

  • 役割:このドメインの権威ネームサーバーを指定
  • 内容:上記の 4 つのネームサーバー情報
  • 用途:ドメインレジストラ(Cloud Domains)に登録し、DNS クエリを Route53 に誘導

SOA レコード(Start of Authority)

  • 役割:ドメインの管理情報を記録
  • 内容
    • プライマリネームサーバー
    • 管理者のメールアドレス
    • シリアル番号(更新のたびに増加)
    • 更新間隔などのタイミング情報
  • 用途:DNS ゾーンの同期や更新管理に使用

これらは削除・変更してはいけません。Route53 が自動的に管理します。

2. Cloud Domains でドメイン取得

Google Cloud Domains でドメインを取得する際、カスタムネームサーバーを指定します。

# GCPコンソールで実行
# Cloud Domains → Register domain
# ドメイン: example.dev
# DNS設定: Use custom name servers
# Route53で取得したネームサーバーを4つすべて入力

3. DNS 設定の追加

Route53 でレコードを追加:

# Aレコード(ウェブサイト)
example.dev. A 192.0.2.1

# MXレコード(メール)
example.dev. MX 10 inbound-smtp.us-east-1.amazonaws.com

# サブドメイン
subdomain.example.dev. A 192.0.2.2

重要なポイント

DNS 伝播の考慮

  • ネームサーバーの変更は最大 48 時間かかる場合がある

なぜ Cloud Domains で.dev ドメインを取得するのか

Route53 では.dev ドメインを直接取得できません。これは.dev ドメインが Google が管理する特別な TLD(トップレベルドメイン)だからです。そのため:

  1. ドメイン取得:Google Cloud Domains(.dev の取得が可能)
  2. DNS 管理:AWS Route53(AWS WorkMail との統合が容易)

という役割分担をすることで、AWS で管理したい目的を実現しています。

まとめ

ドメイン取得と DNS 管理は、適切な戦略と手順で行えば難しくありません。重要なのは:

  1. DNS 管理サービスを先に決定し、準備する
  2. ドメイン取得時にネームサーバーを正しく設定する
  3. 将来の拡張性を考慮した構成を選択する

今回の構成により、AWS WorkMail との統合やサブドメイン管理が簡単になり、運用負荷を大幅に削減できました。

参考リンク

Discussion