DNSの基本とAmazon Route53の仕組みについてまとめてみた

皆様はじめまして!TechBullの運営メンバーで最近加入しましたフルスタックエンジニアの、くの( @kunoyasu )です。今回は、AmazonのDNSサービスであるRoute 53について、DNSの基本を調査してみたので記事を書いていきます!

DNSの基本

ドメインの構造と名前解決の流れ

例えば、fukurou.jpというドメイン名を考えてみましょう。末尾に.を付けると、fukurou.jp.となり、これはFQDN(完全修飾ドメイン名)と呼ばれます。この末尾の.の後ろには、目には見えないルート(root)が存在するイメージです。FQDNは、ルートドメイン「.」→ jpドメイン「jp.」→ fukurouドメイン「fukurou.jp.」と、逆ツリー構造になっています。ちなみに、jpドメインなどルートの直下にあるドメインをトップレベルドメイン(TLD)と呼びます。

(下記の図のように、ルートから何度から委任されて該当のドメインにたどり着いていきます)

引用元: JPRS用語辞典|TLD(トップレベルドメイン)
引用元: JPRS用語辞典|ゾーン

クライアントがキャッシュDNSサーバーに名前解決を依頼すると、キャッシュDNSサーバーはルートサーバーから順に権威DNSサーバーに問い合わせを行い、最終的に結果をクライアントに返します。具体的な流れは以下の通りです:

  1. クライアントがキャッシュDNSサーバーに問い合わせを行う。
  2. キャッシュDNSサーバーがルートサーバーに問い合わせ、トップレベルドメインの権威DNSサーバー情報を取得する。
  3. キャッシュDNSサーバーが取得した権威DNSサーバー情報に問い合わせ、セカンドレベルドメインの権威DNSサーバー情報を取得する。
  4. セカンドレベルドメインの権威DNSサーバーに問い合わせを行い、名前解決が完了する。
引用元: JPRS用語辞典|応答

権威DNSサーバーとキャッシュDNSサーバーの違い

  • 権威DNSサーバー:特定のドメイン名に関連する情報(DNSゾーンのレコード)を提供します。要求があると、そのドメイン名に関連したIPアドレスや他のレコード情報を提供します。
  • キャッシュDNSサーバー:一度問い合わせた情報をキャッシュし、再度同じ情報が要求された場合にキャッシュから応答を返します。これにより、ネットワークトラフィックの削減や応答時間の短縮が可能となります。

Amazon Route 53とは

Amazon Route 53は、可用性と拡張性に優れたドメインネームシステム(DNS)ウェブサービスです。これを利用することで、ドメイン登録、DNSルーティング、ヘルスチェックの3つの主要な機能を組み合わせて実行できます。

AWSのRoute 53における役割

AWSのRoute 53には、権威DNSサーバーとキャッシュDNSサーバーの両方の役割があります。

  • 権威DNSサービス(Route 53):Route 53は、登録ドメインの権威DNSサーバーとして機能し、ドメインに関連する情報を提供します。
  • キャッシュDNSサービス(Route 53 Resolver):Route 53 Resolverは、クラウド環境内の仮想プライベートネットワーク(Amazon VPC)において、キャッシュDNSサーバーとして機能します。これにより、一度問い合わせた情報をキャッシュし、ネットワーク内でDNS応答を高速化します。

ネームサーバーとAレコード

ネームサーバーは、インターネット上でドメインとWebサーバーやメールサーバーを結びつけるための名前解決を行うサーバーです。Aレコードを追加することで、IPv4アドレスとドメイン名を結びつけます。

レコードのTTLの意味

TTL(Time to Live)は、データがキャッシュで生き続ける時間を秒単位で定義します。DNSレコードに対する要求が行われたとき、その結果はキャッシュされます。これにより、再度同じ要求が行われたとき、応答時間が短縮され、ネットワークトラフィックも軽減されます。

  • TTLが長い場合
    • メリット:ネットワークトラフィックとDNSクエリの課金が下がる。
    • デメリット:権威DNSサーバーの変更が反映されるのに時間がかかる。
  • TTLが短い場合
    • メリット:変更が即反映される。
    • デメリット:DNSクエリの課金額が上がる。

dig コマンドで検証

DNSの基本がわかったので、digコマンドを使って、名前解決がされるまでの流れを調べてみました。

1. dig コマンドを実行してみた

まずは dig techbull.cloud を実行してみました。

このコマンドは、DNS を使って techbull.cloud の Aレコード (IPv4アドレス) を取得するためのものです。

2. 実行結果の解析

以下が実行結果です!

(1) HEADER 情報をチェック!

  • opcode: QUERY → DNS に問い合わせを実行!
  • status: NOERROR → 正常にドメインが解決されました!
  • id: 50272 → 問い合わせの識別番号

status: NOERROR なので、techbull.cloud は問題なく解決できることが確認できます。

(2) QUESTION セクション

  • techbull.cloud. → 問い合わせたドメイン
  • IN → インターネットクラス
  • A → IPv4 アドレスを取得するための Aレコード

(3) ANSWER セクション

  • techbull.cloud. → 問い合わせたドメイン
  • 60 → TTL (Time to Live)。DNS キャッシュの有効期間は 60秒
  • IN → インターネットクラス
  • A → Aレコード
  • 163.47.9.55techbull.cloud の IP アドレス

つまり、techbull.cloud163.47.9.55 という IP アドレスに対応していることがわかりました!

(4) その他の情報もチェック!

  • Query time: 121 msec → DNS 解決にかかった時間は 121 ミリ秒
  • SERVER: 8.8.8.8#53(8.8.8.8) → Google Public DNS (8.8.8.8) を使用
  • WHEN: Sat Feb 08 20:22:04 JST 2025 → クエリを実行した日時
  • MSG SIZE rcvd: 59 → 受信した DNS メッセージのサイズは 59 バイト

3. digコマンドでネームサーバー(NS)レコード を取得

さらに、下記のコマンドを使って、どのようなネームサーバーが使われているのかを確認してみました。

4. 実行結果の解析

上記は、techbull.cloud というドメインのDNS管理が DigitalOcean のネームサーバーによって行われている ということを示しています。これらのサーバーが、techbull.cloud のDNS情報を管理し、クライアントがアクセスする際に適切なIPアドレスを返してました。


まとめ

今回の dig コマンドの結果から、以下のことがわかりました!

  • techbull.cloud は正常に解決可能 (status: NOERROR)
  • Aレコードの IP アドレスは 163.47.9.55
  • TTL は 60秒 で、短めの設定
  • DNS サーバーは Google Public DNS (8.8.8.8) を使用
  • DNS クエリの応答時間は 121ms
  • techbull.cloudは3つのネームサーバーによってDNSの管理が行われている

dig コマンドを使えば、ドメインの情報を簡単に調べることができます!DNS の問題が発生したときにも活用できるので、ぜひ試してみてください!

以上、Route 53とDNSの基本についてでした。今後もTechBullでブログ発信していきますので、また次回会いましょう!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール