【AWSサービス 基礎編】Amazon Route 53 でドメインの DNS ルーティングを設定する

目次

概要

Web サイトやアプリケーションを公開する際、ユーザーがドメイン名(例: example.com)でアクセスできるようにするには、DNS(Domain Name System)の設定が必要です。ドメイン名と IP アドレスの対応付けや、トラフィックのルーティング制御を適切に行うことで、可用性の高いサービス提供が可能になります。

Amazon Route 53 は、高い可用性とスケーラビリティを備えた DNS ウェブサービスです。ドメインの登録、DNS ルーティング、ヘルスチェックの 3 つの機能を提供し、ドメイン管理に必要な操作をワンストップで行えます。

本記事では、Route 53 の基本概念を理解し、ホストゾーンの作成と DNS レコードの設定を通じて、DNS ルーティングの基本操作を体験します。

Route 53 の全体像: DNS クエリにホストゾーンのレコードで答え、AWS リソースやオンプレミスへ案内する
Route 53 の全体像: DNS クエリにホストゾーンのレコードで答え、AWS リソースやオンプレミスへ案内する
クラウドおさる

名前を言えば行き先を教えてくれる、猿山の案内板のようなものでござるな。この記事では、ホストゾーンを作ってレコードを書き込み、加重ルーティングとヘルスチェックまで一緒に確かめるでござる。

この記事のメリット

  • 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 レコードには、どんな種類があるのでござる?

土肥

よく使うレコードタイプをまとめるとこうなるよ。

レコードタイプ説明例
AIPv4 アドレスを返すexample.com → 192.0.2.1
AAAAIPv6 アドレスを返す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 を返す
クラウドおさる

加重ルーティングは、新しいサーバーに少しずつトラフィックを流すカナリアリリースのような使い方ができそうでござるな。猿山でも、新しい餌場には最初は若い猿を少しだけ向かわせるでござる。

土肥

そのとおりだね。フェイルオーバールーティングはヘルスチェックと組み合わせて、障害時に自動切り替えするような構成にもよく使われるよ。

クラウドおさる

使い道に合わせて柔軟に選べるのが、よいところでござるな!

新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

実践

ハンズオンガイド8 ステップ画面 9 枚

コンソールの横に開いて、チェックしながら進めましょう。

ガイドを開く

別タブで開きます。チェックはこのブラウザに保存されます。

前提条件

  • リージョン: ap-northeast-1(東京)
  • IAM ユーザーまたはロールに Route 53 の操作権限があること
  • ドメインを所有していなくてもホストゾーンの作成とレコード操作は体験可能(実際の名前解決にはドメインの NS レコード設定が必要)
  • この記事では、テスト用に予約されているトップレベルドメイン .test を使った basic-handson.test でホストゾーンを作ります。example.com のように AWS が予約しているドメイン名では、ホストゾーンを作成できません

作成するリソース一覧

リソース種別リソース名用途
パブリックホストゾーンbasic-handson.testDNS レコードの管理
A レコードwww.basic-handson.testIPv4 アドレスの名前解決
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 つ記載されています。

ホストゾーン作成完了画面(NS レコードと SOA レコードが表示されている状態)
ホストゾーン作成完了画面(NS レコードと SOA レコードが表示されている状態)

ステップ2: A レコードの作成

ホストゾーンの詳細画面で「レコードを作成」をクリックします。「クイック作成」の画面が表示されます。

以下の内容を入力します。レコード名の欄の右には .basic-handson.test が表示され、入力した名前の後ろに自動で付きます。

  • レコード名: www(www.basic-handson.test になる)
  • レコードタイプ: A - IPv4 アドレスへのトラフィックのルーティング
  • 値: 192.0.2.1(ドキュメント用に予約された IP アドレス)
  • TTL(秒): 300(既定のまま)
  • ルーティングポリシー: 「シンプルルーティング」(既定のまま)
A レコードの作成画面
A レコードの作成画面

「レコードを作成」をクリックします。

レコード一覧に A レコードが追加されたことを確認します。

ステップ3: CNAME レコードの作成

「レコードを作成」をクリックします。

以下の内容を入力します。

  • レコード名: app(app.basic-handson.test になる)
  • レコードタイプ: CNAME - 別のドメイン名へのトラフィックのルーティング
  • 値: www.basic-handson.test
  • TTL(秒): 300
  • ルーティングポリシー: 「シンプルルーティング」
CNAME レコードの作成画面
CNAME レコードの作成画面

「レコードを作成」をクリックします。

ステップ4: 加重ルーティングの設定

加重ルーティングの動作を体験するため、同じレコード名に対して重み付けの異なる複数のレコードを作成します。

「レコードを作成」をクリックし、以下の内容を入力します。

  • レコード名: api
  • レコードタイプ: A - IPv4 アドレスへのトラフィックのルーティング
  • 値: 192.0.2.10
  • TTL(秒): 300
  • ルーティングポリシー: 「加重」を選択
  • 重量: 70
  • レコード ID: api-primary
加重ルーティングの A レコード作成画面(1 つ目)
加重ルーティングの A レコード作成画面(1 つ目)

「レコードを作成」をクリックします。

続けて 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 にルーティングされます。

加重ルーティングの A レコードが 2 つ表示されたレコード一覧
加重ルーティングの A レコードが 2 つ表示されたレコード一覧
クラウドおさる

同じ名前のレコードを 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 リソースへのマッピングが可能である
  • シンプル、加重、フェイルオーバーなど複数のルーティングポリシーにより、柔軟なトラフィック制御が実現できる
  • ヘルスチェックと組み合わせることで、異常なエンドポイントへのトラフィックを自動的に回避できる

参照先

キャリア相談
クラウドおさる

独学の先に、AWS の仕事がある ── ジュニアおさるのキャリア相談

CLF には受かったけれど、次に何をすればいいのか分からない。独学で AWS を学ぶジュニアおさるの相談に、株式会社ジェニュイン代表の土肥が答えています。

  • ✓資格はゴールか、CLF の次に何から手を付けるか
  • ✓EC2 の次に作ってみる構成と、IaC・コスト管理
  • ✓実務経験ゼロでも、面接で話せる「これまで」の作り方
新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方も募集しています。異業種や文系からインフラエンジニアになり活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次