ドメインとは、ウェブサイトのURLやメールアドレスに含まれる組織名のような識別子です。インターネット上の住所とも言われます。このドメインは世界中でユニークである必要があるため、好き勝手に名前を決めることはできませんが、早いもの勝ちでだれでも取得できるものでもあります。(登録料はかかります)
ここでは、ドメインの仕組みから、AWSでドメインを設定する方法を紹介します。
Contents
ドメインの仕組み
ドメインは階層構造になっており分散管理されています。www.example.com を例にすると、下の図に示すように、最も上位のルートサーバが .comを管理しています。そして、.comのDNSサーバが example.com を管理しています。そして、example.comのDNSサーバが www.example.comを管理しています。ルートサーバは世界中で13個あり、日本にもひとつあります。これらはみんな同期がとられて同じデータを保持しています。
ルートサーバによって管理されている .com や .jp などのドメインをTLD(トップレベルドメイン)と言います。これを新たに作ることは私たち一般人には無理だと思います。
その次の example.com や testdomain.com からは私たち一般人でも早いもの勝ちで登録できます。すでに使われている名前でなければ、年間数千円の費用でドメインを取得できます。AWSのコンソールからでも登録可能です。(後述)
そして、example.com などのドメインを取得すれば、その下の www等のドメインは自分で自由に設定できます。個別のホスト名として設定もできますし、さらにその下にサブドメインを作ることも可能です。
次に実際にDNSサーバがどのように、ドメイン名をIPアドレスに変換しているかを下の図で説明します。
たいていの場合、ユーザは自分のPCが接続しているネットワークのドメインのDNSサーバを利用し、ウェブサイトのIPアドレスを取得するために、そのDNSサーバに問い合わせます。図の左側のDNSサーバです。例えば、www.example.com というウェブサイトのIPアドレスを知りたいとすると、そのDNSサーバに問い合わせます。
そのDNSサーバは、まずルートサーバに問い合わせ、次に .comを管理しているDNSサーバに問い合わせ、example.comを管理しているDNSサーバに問い合わせ、www.example.com のIPアドレスを取得し、それをユーザに返します。
右側のDNSサーバを権威DNSサーバともいい、そのドメイン内の情報を管理する役割を持っています。また、ユーザが問い合わせる左側のDNSサーバをキャッシュDNSサーバとも言い、こちらは名前解決を行う役割で、よく問い合わせのあるドメインのIPアドレスのキャッシュを持つことでレスポンスを速くできます。あるドメインの中で両者は同一のサーバでも良いですし、別々に設定することも可能ですが、DNSには大きくこの2つの機能があることを理解しておくと、DNSの設定等も理解しやすくなります。
DNSレコード
DNSサーバの主な役割は、その組織ドメインの中のホストの名前解決(ホスト名からIPアドレスへの変換)ですが、それ以外にもさまざまな情報を管理する必要があります。これらはそのタイプによってレコードとしてDNSサーバに登録します。下記に主要なレコードの種類を記載します。
レコードタイプ | 説明 |
A | ホスト名に対応するIPアドレスの情報 |
AAAA | ホスト名に対応するIPv6アドレスの情報 |
CNAME | ホスト名のエイリアス名 (わかりやすいホスト名や短い名前にする時に用いる) |
MX | そのドメインに送信されたメールを担当するメールサーバ |
NS | そのドメインのネームサーバ。 外からの自ドメインホストの問い合わせにも応答 |
SOA | そのドメインの権威(Start Of Authority)となる情報 ドメイン全体の運用に必要な情報をここに登録する。 |
これらのレコードは、DNSの設定をする際にも必要となってきますので、何がどういう役割なのかは理解しておいた方が良いです。
Route53でのドメイン設定
AWSでドメインを取得したり設定するには、Route53というサービスを用います。ドメインの取得は、他のサイトで取得したものを利用することもできますが、ここではAWSのRoute53でドメインを取得するところから紹介します。
まず、Route53のサービスを選択し、ダッシュボードに行きます。ここに「ドメインの登録」や「ホストゾーンの作成」というボタンがあると思います。まずは「ドメインの登録」に進みます。(すでにドメインを持っている場合はここはスキップです)
ドメインは世界中でユニークである必要があるため、すでに利用されている名前は登録できません。ですので、ここで使用可能か検索できます。TLDは、.comや.netなどいくつか選択できますので、好きな名前が .comでとれなくても、.net でなら取れる場合もあります。
登録料は年間で 14~15USD(約2000円)です。登録すれば、すぐに利用できるようになり、ホストゾーンの作成でドメインの設定をいろいろできるようになります。
ホストゾーンの設定では、先ほどのDNSレコードを設定していくのですが、SOAレコードやNSレコードはホストゾーンを作成した時点ですでに設定されてますので、何も難しいことをする必要はありません。
必要なホスト名のIPアドレスをAレコードで登録したり、AWSリソースの長いエンドポイントに対して短いエイリアス名をCNAMEで登録したり、というのが主な作業となります。