3秒でわかる
1つのドメインに属する DNS レコードをまとめて管理する入れ物。ここに A や CNAME を登録して、名前からサーバーへ到達させます。
もう少し詳しく
どういうものか
ホストゾーンは、example.com のような1つのドメイン名について、その配下の DNS レコードを保管する単位です。AWS の Route 53 では、ホストゾーンを作った時点で NS レコードと SOA レコードが自動で入り、そこへ A レコードや CNAME レコードを足していきます。
ホストゾーンには外向けの Public と、VPC の中だけで引ける Private の2種類があります。Public は世界中のリゾルバから引かれ、Private は指定した VPC の中からしか引けません。同じ名前で両方を作ると、VPC の中からは Private が優先されます。
なぜ必要か
DNS は「1台の巨大なサーバーが全ドメインを知っている」仕組みではなく、ドメインごとに権威を持つサーバーが分かれています。その「このドメインについては私が答える」という担当範囲を表現したものがゾーンです。ホストゾーンを作るという操作は、実質「このドメインの回答役を Route 53 に任せる」という宣言にあたります。
具体例
AWS CLI でホストゾーンを作り、A レコードを1本足す流れは次のとおりです。
# ホストゾーンを作る (ID と NS レコードが返る)
aws route53 create-hosted-zone --name example.com --caller-reference "$(date +%s)"
# 作られたゾーンのレコード一覧を見る
aws route53 list-resource-record-sets --hosted-zone-id Z0123456789ABCDEFGHIJつまずきやすいところ
一番多い失敗は、ホストゾーンを作ったのにレジストラ側の NS を書き換えていない、というものです。ホストゾーンを作ると Route 53 側に4本の NS が割り当てられますが、ドメインを買った業者の管理画面でその4本を登録しないと、世界からの問い合わせは古い DNS へ流れ続けます。レコードを直しても反映されない、という相談の大半はこれです。
もう1つは、同じドメインのホストゾーンを間違えて2つ作ってしまうケースです。ゾーンごとに NS の組み合わせが違うので、レジストラに登録した側とは別のゾーンを編集していた、という取り違えが起きます。
似た用語との違い
| 用語 | 指すもの |
|---|---|
| ドメイン | 名前そのもの。レジストラから買う対象 |
| ホストゾーン | そのドメインのレコードを入れる箱。DNS サービス側の資源 |
| レコード | ゾーンの中身。A や CNAME や MX の1行 |
ドメインを買っただけでは名前は引けず、ホストゾーンを作ってレコードを入れ、NS を向けて初めてつながります。