概要
Web サイトやアプリケーションを公開する際、ユーザーがドメイン名(例: example.com)でアクセスできるようにするには、DNS(Domain Name System)の設定が必要です。ドメイン名と IP アドレスの対応付けや、トラフィックのルーティング制御を適切に行うことで、可用性の高いサービス提供が可能になります。
Amazon Route 53 は、高い可用性とスケーラビリティを備えた DNS ウェブサービスです。ドメインの登録、DNS ルーティング、ヘルスチェックの 3 つの機能を提供し、ドメイン管理に必要な操作をワンストップで行えます。
本記事では、Route 53 の基本概念を理解し、ホストゾーンの作成と DNS レコードの設定を通じて、DNS ルーティングの基本操作を体験します。

クラウドおさる名前を言えば行き先を教えてくれる、猿山の案内板のようなものでござるな。この記事では、ホストゾーンを作ってレコードを書き込み、加重ルーティングとヘルスチェックまで一緒に確かめるでござる。
この記事のメリット
- DNS の基本概念(レコードタイプ、TTL、ホストゾーン)を理解できる
- Route 53 のホストゾーンの作成と DNS レコードの設定方法を習得できる
- 主要なルーティングポリシー(シンプル、加重、フェイルオーバー)の違いを把握できる
- ヘルスチェックの仕組みと設定方法を体験できる
- AWS リソースへのエイリアスレコードの設定方法を理解できる
執筆者とキャラクター紹介
執筆者:土肥(とひ)
株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。


クラウドおさる



はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。



基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。



猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。
技術解説
Amazon Route 53 とは



とひさん、Amazon Route 53 とはどんなサービスでござるか?名前の「53」が気になって、夜も眠れぬでござる。
Amazon Route 53 は、AWS が提供するマネージド DNS サービスだよ。サービス名の「53」は DNS で使用するポート番号(TCP/UDP ポート 53)に由来しているんだ。



なるほど、ポート番号から来ていたのでござるな!では、どんな機能があるのでござる?
Route 53 は以下の 3 つの主要機能を提供しているよ。
- ドメイン登録: ドメイン名の取得と管理
- DNS ルーティング: ドメイン名と IP アドレスの対応付けとトラフィック制御
- ヘルスチェック: リソースの正常性を監視し、異常時にトラフィックを切り替え



ドメインの管理から DNS の設定、監視まで、ひとつでまとめてできるのでござるな。猿山でいえば、住所の登録も案内板の書き換えも見回りも、同じ役場で済むようなものでござる。
主要コンポーネント



Route 53 を形づくる主な部品を教えてほしいでござる。
主要なコンポーネントは以下の 4 つだよ。
| コンポーネント | 説明 |
|---|---|
| ホストゾーン | ドメインまたはサブドメインの DNS レコードを管理するコンテナ |
| レコード | ドメイン名に対する DNS 応答を定義する設定 |
| ヘルスチェック | リソースの正常性を監視する仕組み |
| ルーティングポリシー | DNS クエリに対するレスポンスの返し方を制御するルール |





ホストゾーンがレコードの入れ物で、どう答えるかはルーティングポリシーで決める、ということでござるな。猿山の案内板の束と、それを読み上げる係の決まりごとのようなものでござる。
ホストゾーンの種類



ホストゾーンには、どんな種類があるのでござるか?
ホストゾーンは 2 種類あるよ。
| 種類 | 説明 | 用途 |
|---|---|---|
| パブリックホストゾーン | インターネット上の DNS クエリに応答する | 公開 Web サイトやサービスのドメイン管理 |
| プライベートホストゾーン | VPC 内の DNS クエリにのみ応答する | 内部サービス間の名前解決 |



外向けと内向けで分かれているのでござるな。猿山でも、旅の猿に見せる入口の案内板と、仲間うちだけの倉庫の地図は別物でござる。VPC の中だけで使うなら、プライベートでござるな。
主要な DNS レコードタイプ



DNS レコードには、どんな種類があるのでござる?
よく使うレコードタイプをまとめるとこうなるよ。
| レコードタイプ | 説明 | 例 |
|---|---|---|
| A | IPv4 アドレスを返す | example.com → 192.0.2.1 |
| AAAA | IPv6 アドレスを返す | example.com → 2001:db8::1 |
| CNAME | 別のドメイン名にエイリアスする | www.example.com → example.com |
| MX | メールサーバーを指定する | メール配信先の指定 |
| TXT | テキスト情報を格納する | SPF、DKIM、ドメイン所有権の検証 |
| NS | ネームサーバーを指定する | ドメインの権威 DNS サーバーの指定 |
| SOA | ゾーンの管理情報を定義する | ゾーン転送やキャッシュの制御 |



種類が多いでござるな…。バナナの品種を全部覚えるより大変そうでござる。全部覚えねばならぬのでござるか?
まずは A レコードと CNAME を押さえておけば大丈夫だよ。A はドメインを IP アドレスに、CNAME はドメインを別のドメインに紐付けるものだね。
エイリアスレコード



エイリアスレコードというのは、CNAME とは違うのでござるか?
Route 53 独自の機能であるエイリアスレコードは、AWS リソース(CloudFront、ELB、S3 など)に対して Zone Apex(ルートドメイン)でも CNAME 相当の名前解決を実現するんだ。CNAME レコードとの主な違いはこうだよ。
| 項目 | CNAME | エイリアスレコード |
|---|---|---|
| Zone Apex での使用 | 不可 | 可能 |
| DNS クエリ課金 | あり | AWS リソースへのエイリアスは無料 |
| 対象 | 任意のドメイン名 | AWS リソースのみ |



Zone Apex とは、何でござる?
ルートドメインのことだよ。例えば example.com 自体のことだね。DNS の仕様上、ルートドメインに CNAME は設定できないんだけど、エイリアスレコードならそれが可能なんだ。



しかも AWS リソースへのエイリアスなら、DNS クエリの課金もかからぬのでござるな!バナナが飛ばずに済むとは、ありがたいでござる。
ルーティングポリシー



ルーティングポリシーには、どんな種類があるのでござるか?
Route 53 は複数のルーティングポリシーを提供しているよ。
| ポリシー | 説明 |
|---|---|
| シンプルルーティング | 1 つのリソースに対して標準的な DNS 応答を返す |
| 加重ルーティング | 複数のリソースに対してトラフィックを重み付けで分散する |
| レイテンシーベースルーティング | レイテンシーが最も低いリージョンにルーティングする |
| フェイルオーバールーティング | プライマリが異常な場合にセカンダリにルーティングする |
| 位置情報ルーティング | ユーザーの地理的位置に基づいてルーティングする |
| 複数値回答ルーティング | 複数の正常なリソースからランダムに最大 8 つの IP を返す |



加重ルーティングは、新しいサーバーに少しずつトラフィックを流すカナリアリリースのような使い方ができそうでござるな。猿山でも、新しい餌場には最初は若い猿を少しだけ向かわせるでござる。
そのとおりだね。フェイルオーバールーティングはヘルスチェックと組み合わせて、障害時に自動切り替えするような構成にもよく使われるよ。



使い道に合わせて柔軟に選べるのが、よいところでござるな!
実践
前提条件
- リージョン:
ap-northeast-1(東京) - IAM ユーザーまたはロールに Route 53 の操作権限があること
- ドメインを所有していなくてもホストゾーンの作成とレコード操作は体験可能(実際の名前解決にはドメインの NS レコード設定が必要)
- この記事では、テスト用に予約されているトップレベルドメイン
.testを使ったbasic-handson.testでホストゾーンを作ります。example.comのように AWS が予約しているドメイン名では、ホストゾーンを作成できません
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| パブリックホストゾーン | basic-handson.test | DNS レコードの管理 |
| A レコード | www.basic-handson.test | IPv4 アドレスの名前解決 |
| CNAME レコード | app.basic-handson.test | 別ドメインへのエイリアス |
| ヘルスチェック | basic-health-check | エンドポイントの正常性監視 |
ステップ1: ホストゾーンの作成
AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します。
上部の検索バーに Route 53 と入力し、表示された「Route 53」を選択します。
左側ナビゲーションの「ホストゾーン」を選択し、「ホストゾーンの作成」をクリックします。
以下の内容を入力します。
- ドメイン名:
basic-handson.test - 説明:
ハンズオン用ホストゾーン - タイプ: 「パブリックホストゾーン」を選択


「ホストゾーンの作成」をクリックします。
作成が完了すると、NS レコードと SOA レコードが自動的に作成された状態で詳細画面が表示されます。NS レコードには Route 53 が割り当てたネームサーバーが 4 つ記載されています。


ステップ2: A レコードの作成
ホストゾーンの詳細画面で「レコードを作成」をクリックします。「クイック作成」の画面が表示されます。
以下の内容を入力します。レコード名の欄の右には .basic-handson.test が表示され、入力した名前の後ろに自動で付きます。
- レコード名:
www(www.basic-handson.testになる) - レコードタイプ:
A - IPv4 アドレスへのトラフィックのルーティング - 値:
192.0.2.1(ドキュメント用に予約された IP アドレス) - TTL(秒):
300(既定のまま) - ルーティングポリシー: 「シンプルルーティング」(既定のまま)


「レコードを作成」をクリックします。
レコード一覧に A レコードが追加されたことを確認します。
ステップ3: CNAME レコードの作成
「レコードを作成」をクリックします。
以下の内容を入力します。
- レコード名:
app(app.basic-handson.testになる) - レコードタイプ:
CNAME - 別のドメイン名へのトラフィックのルーティング - 値:
www.basic-handson.test - TTL(秒):
300 - ルーティングポリシー: 「シンプルルーティング」


「レコードを作成」をクリックします。
ステップ4: 加重ルーティングの設定
加重ルーティングの動作を体験するため、同じレコード名に対して重み付けの異なる複数のレコードを作成します。
「レコードを作成」をクリックし、以下の内容を入力します。
- レコード名:
api - レコードタイプ:
A - IPv4 アドレスへのトラフィックのルーティング - 値:
192.0.2.10 - TTL(秒):
300 - ルーティングポリシー: 「加重」を選択
- 重量:
70 - レコード ID:
api-primary


「レコードを作成」をクリックします。
続けて 2 つ目のレコードを作成します。
- レコード名:
api - レコードタイプ:
A - 値:
192.0.2.20 - TTL(秒):
300 - ルーティングポリシー: 「加重」を選択
- 重量:
30 - レコード ID:
api-secondary
「レコードを作成」をクリックします。
レコード一覧で、api.basic-handson.test に加重ルーティングの A レコードが 2 つ作成されていることを確認します。DNS クエリの約 70% が 192.0.2.10 に、約 30% が 192.0.2.20 にルーティングされます。





同じ名前のレコードを 2 つ並べて、重みとレコード ID で区別するのでござるな。70 と 30 の重みで、問い合わせのおよそ 7 割と 3 割に振り分ける。技術解説の加重ルーティングが、レコード一覧でそのまま見えたでござる。
ステップ5: ヘルスチェックの作成
左側ナビゲーションの「ヘルスチェック」を選択し、「ヘルスチェックの作成」をクリックします。
以下の内容を入力します。ヘルスチェックの監視対象には、ドキュメント用に予約された IP アドレス(192.0.2.1 など)は指定できないため、ここでは例示用のドメイン example.com を監視します。
- 名前:
basic-health-check - リソース: 「エンドポイント」を選択(既定のまま)
- エンドポイントの指定: 「ドメイン名」を選択
- プロトコル:
HTTP(既定のまま) - ドメイン名:
example.com:80/health(ドメイン名・ポート・パスを 1 つの欄にドメイン名:ポート/パスの形で入力)


「高度な設定」の中のリクエスト間隔(スタンダード 30 秒)と失敗しきい値(3)は、デフォルトのままにします。
「ヘルスチェックの作成」をクリックします。
作成が完了すると、ヘルスチェックの詳細画面に切り替わります。作成直後のステータスは「不明」です。example.com には /health というページが無く、HTTP 404 が返るため、失敗が 3 回続くとステータスが「異常」(Unhealthy)に変わります。途中で一度「正常」と表示されることがありますが、今回は作成から 2〜3 分で「異常」になりました。





ここで「異常」になるのは、存在しないパスを監視しているからでござる。設定を間違えたわけではござらぬから、慌てて作り直さぬようにするでござるぞ。
ステップ6: レコード一覧の確認
ホストゾーンの詳細画面に戻り、作成したレコードの一覧を確認します。
basic-handson.test— NS レコード、SOA レコード(自動作成)www.basic-handson.test— A レコード(シンプルルーティング)app.basic-handson.test— CNAME レコードapi.basic-handson.test— A レコード x 2(加重ルーティング)


まとめ
- Amazon Route 53 は DNS ルーティング、ドメイン登録、ヘルスチェックの 3 つの機能を提供するマネージド DNS サービスである
- ホストゾーンは DNS レコードを管理するコンテナであり、パブリックとプライベートの 2 種類がある
- A、CNAME、MX、TXT など用途に応じた DNS レコードタイプを使い分ける
- エイリアスレコードは Route 53 独自の機能で、Zone Apex での AWS リソースへのマッピングが可能である
- シンプル、加重、フェイルオーバーなど複数のルーティングポリシーにより、柔軟なトラフィック制御が実現できる
- ヘルスチェックと組み合わせることで、異常なエンドポイントへのトラフィックを自動的に回避できる
参照先
- Amazon Route 53 とは – Amazon Route 53
- ホストゾーンの作成 – Amazon Route 53
- レコードの作成 – Amazon Route 53
- ルーティングポリシーの選択 – Amazon Route 53
- ヘルスチェックの作成と更新 – Amazon Route 53
- エイリアスレコードと非エイリアスレコードの選択 – Amazon Route 53













