Amazon Route 53 でドメインの DNS ルーティングを設定する
記事の「実践」を 1 項目ずつ進めるためのページです。AWS マネジメントコンソールで操作したら、右の一覧にチェックを入れてください。チェックはこのブラウザに保存されます。
前提条件
- リージョン:
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 にルーティングされます。
ステップ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(加重ルーティング)