🌟

Route53の機能についてまとめてみた①

2023/07/08に公開

Route53について

みなさんは Route53についてどれぐらい理解していますか?
AWSでシステムを構築する際に避けては通れないサービスの1つが Route53であり、かなりシステムのコアとなるDNSに関するサービスです。
AWSのホワイトペーパーによると、Route53とは、

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

となっています。
では、そもそもこの DNSとはいったい何なのかというところからおさえていこうと思います。

DNSについて

DNSとは、システムが持つIPアドレスとドメイン名を紐付けるためのシステムです。
システム(コンピュータ)は必ずIPアドレスという、ネットワーク上のアドレス(住所)を持っています。これは、本来は2進数ですが、人間が分かりやすいように10進数で表記されます。例えば、192.168.1.152.12.46.23などがあります。IPアドレスにも決まりがあり、先の2つも本来は別のグループになりますが、ここでは割愛します。ざっくりいうと、全世界から参照できるIPアドレスと社内からだけ参照できるIPアドレスというのが存在します。プライベートIPやグローバルIPで検索してみてください。

では、ドメイン名の話を進めます。
先ほどのIPアドレスをすぐに覚えられた方はかなりの記憶力の持ち主ですが、そう多くは無いと思います。人間には数字の列を扱うのはかなりの至難の業なので、分かりやすい名前を付けて扱うことが基本です。普段の住所で考えると、郵便番号がIPアドレス、東京都~や北海道札幌市~等がドメイン名だとふんわりと理解してもらえればOKです。

この郵便番号と地名を紐付ける役割が、DNSです。

コンピューター同士が通信するとき、コンピューターは2進数しか扱えないため2進数のアドレスが使用されます。しかし、人間にとって理解が難しくなるため、設定などは10進数が使われています。それでも人間にとって意味のない数字を扱うことになるため、任意の名前を付けて使いやすくしましょう。

簡単にまとめると以下のフローになります。

この②を 名前解決 と呼びます。では名前解決はどのように行うのでしょうか。

方法はいくつかあります。
PC-Bのアドレスをすでに知っている、かつ、変わることがめったにない場合は、PC-A内の hostsという設定ファイルに記載することで名前解決を行う事ができます。
PC-Bのアドレスが分からない、さらにIPアドレスが頻繁に変わるという場合もあり、その場合hostsでの対応は不可能に近いです。このサポートをしてくれるのがDNSサービスであり、AWSでいうRoute53というわけです。

先ほどの構成図でフローを考えると、以下のようになります。

PC-AがIPアドレスが分からないかったので、DNSに聞きに行きます。そして、DNSが 知っているとIPアドレスを返してくれるので、それを使ってアクセスします。

「知っている」とはどういうことでしょうか。
1つのDNS機能を持つサーバーで全世界の全てのIPアドレスを覚えておくことはほぼ不可能です。登録や更新、アクセスの距離など様々な障壁があることは想像できます。
そこで、DNSは管理する範囲を限定して、詳細についてはさらにその下の階層が管理するという親子構造をとっています。

ドメインとは

ドメイン名の構造についておさえておきます。
ドメイン名はドット(.)を使って区切ります。

www.example.co.jpを例に考えてみます。
ドメイン名は後ろからトップレベル、第2レベル、第3レベル、・・・のようにレベルが増えていきます。つまり、

  • トップレベルドメイン:jp
  • 第2レベルドメイン:co
  • 第3レベルドメイン:example
  • 第4レベルドメイン:www

となります。
このようにドメインは階層構造になっていますが、トップレベルドメインはjpcomnet等があり、そのさらに上にroot(.)という頂点が存在しています。

DNSの仕組み

では、どのように名前解決を行っているのか見ていきます。

まず、社内やプロバイダーが提供するローカルDNSに名前解決をします。そこになければ、TLDのDNSサーバに問い合わせを行い、第2レベルドメインのDNSサーバに転送し、同様に第3、第4と問い合わせし、最終的にIPアドレスが分かった時点で名前解決を完了します。

このように、名前解決を行うサーバーをDNSサーバーと言い、それぞれ名前解決を行う範囲が決まっています。
自身の管理する範囲内に対象のドメインが無ければ順々に下位DNSサーバに問い合わせを行う全体の仕組みを DNSと言います。

DNSレコード

ここまででDNSの全体像は掴めたかと思います。
このドメインとIPアドレスを対応させる仕組みが レコード というものです。

例えば、これまでに見てきた中で、ドメイン名をIPアドレスに変換するというDNSの仕組みは、Aレコードというレコードで登録されます。
以下の表でまとめてみます。

レコードの種類 説明
SOAレコード ゾーン(管理対象範囲)に関する様々な情報が書かれた行
NSレコード 管理を委託しているDNSサーバのドメイン名が書かれた行
MXレコード そのドメイン宛のメールの配送先メールサーバが書かれた行
Aレコード ドメイン名に対応するIPアドレス(IPv4)が書かれた行
AAAAレコード ドメイン名に対応するIPアドレス(IPv6)が書かれた行
CNAMEレコード ドメイン名の別名が書かれた行
PTRレコード IPアドレスに対応するドメイン名が書かれた行(Aレコードの逆:逆引き)
HINFOレコード そのドメイン名に割り当てられた機器の追加情報(CPUとOSの情報)が書かれた行
TXTレコード コメント等の文章が書かれた行

先ほどの図で exampleDNSサーバが持つレコード例は以下のようになります。

Name Type Value
@ SOA ns1.example.co.jp.
example.co.jp. NS ns1.example.co.jp.
example.co.jp A 192.168.10.4
www.example.co.jp CNAME example.co.jp

このレコードの組み合わせで世の中のあらゆるサイトに簡単にアクセス出来るようになっています。

ゾーン

SOAレコードの説明で出た、ゾーンについて説明します。
ゾーンとはそのままの意味で、1台のDNSサーバが管理する範囲を指します。
つまり、同じドメイン名で管理される、PC・各種サーバ・メールサーバ等を名前解決出来る範囲となります。サブドメインを管理するDNSサーバがあれば、その周囲にもゾーンが形成されます。

先ほどの例でいうと、example.co.jpで管理される、www.example.co.jpmail.example.co.jp等がこのゾーンに含まれるという事になります。

まとめ

ここまででDNSについての簡単なまとめをしてきました。
これ以外にも様々な機能や仕組みがありますが、導入としては十分かと思います。
次回は、AWSでのDNS管理を行う Route53について見ていこうと思います。(ようやく本題です。)

追記

続編を書きました。まだまだ書くことは多いですが、ひとまずリリースです。

https://zenn.dev/nnydtmg/articles/aws-route53-dnsbase-2

GitHubで編集を提案

Discussion