CLIによる「Route53」構築


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

皆様こんにちは。
今回はCLIを利用して高可用性アーキテクトの構築をしていきます。
この記事ではCLIよりRoute53の設定を行います。
このブログはCLIによるRoute53の設定をする上での知識を記事としてまとめ再確認し、皆様と共有するため作成します。

1.高可用性アーキテクト構築目次

目次はこちら

2.Route53とは

Amazon Route 53 は、可用性と拡張性に優れたクラウドのドメインネームシステム (DNS) ウェブサービスです。Amazon Route 53 は、www.example.com のような名前を、コンピュータが互いに接続するための数字の IP アドレス (192.0.2.1 など) に変換するサービスで、デベロッパーや企業がエンドユーザーをインターネットアプリケーションにルーティングする、きわめて信頼性が高く、コスト効率の良い方法となるよう設計されています。Amazon Route 53 は IPv6 にも完全準拠しています。
引用:Amazon Route 53

Aレコード

Aレコードはドメイン名からIPv4アドレスを解決するレコードです。

AAAAレコード

AAAAレコードはドメイン名からIPv6アドレスを解決するレコードです。

CNAMEレコード

CNAMEレコードはドメイン名から別のドメイン名を参照するレコードです。
次回で設定するACMはCNAMEレコードを使用してドメインの検証をします。

エイリアスレコード

レコードというよりはAレコードの拡張機能であり、エイリアスレコードを使用すると選択したAWSリソースをipアドレスではなく、そのAWSリソースがデフォルトで持つDNS名でトラフィックをルーティングできるようになります。

今回は名前解決を利用してWebサーバーにアクセスできるようにするために、Route53を設定していきます。

類似サービスとして「Amazon Lightsail」のDNSゾーンがあげられます。

3.フロー図

file
Route53の設定のフローは以下になります。

  1. Route53のホストゾーンを作成します。(今回は都合上ホストゾーンの作成は省略させていただきます申し訳ございません。ホストゾーン作成は公式リファレンスの[create-hosted-zone]コマンドのページを参考にしてください。)
  2. Route53にルーティング先をALBに設定したエイリアスレコードを作成し、ドメインでアクセスした際はALBにルーティングするようにします。(外部からはAレコードタイプに見えます)

4.Route53設定

これからRoute53の設定をしていきます。
今回は既存のホストゾーンを利用するので、レコードの作成から始めます。

レコード作成の前にjson形式でレコードセットの作成を以下のようにします。

ファイル名:record-setting-1.json
{
     "Comment": "Creating Alias resource record sets in Route 53",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                            "Name": "ume.test.cloud5.jp",
                            "Type": "A",
                            "AliasTarget":{
                                    "HostedZoneId": "xxxxx",
                                    "DNSName": "dualstack.umemoto-ALB-xxxxx.ap-northeast-2.elb.amazonaws.com",
                                    "EvaluateTargetHealth": true
                              }}
                          }]
}

JSONファイルの内容の説明は以下になります。

  • Comment:レコードの説明を記述しています。
  • Changes:変更内容です。
  • Action:変更の種類を指定します。今回は新しいレコードを作成するのでCREATEを指定します。
  • ResourceRecordSet:作成、削除、または更新するために設定されたリソースレコードに関する情報です。
  • Name:設定したいレコード名を入力。
  • Type:レコードタイプを指定します。ALBを使用する場合はAレコード(外部から見たタイプであり、中身はエイリアスレコード)を指定します。
  • AliasTarget:トラフィックをルーティングするAWSリソースの情報を含めます。
  • HostedZoneId:ホストゾーンのIDを入力します。
  • DNSName:ルーティング先であるALBのDNS名を入力します。
  • EvaluateTargetHealth:ターゲットのヘルスの評価をオンに設定。

次にレコードの作成をします。
作成のために、[aws route53 change-resource-record-sets]コマンドを使用します。

使用するオプション 設定値 説明
--hosted-zone-id xxxxx ホストゾーンのIDを入力
--change-batch file://C:\route53\record-setting-1.json 先ほど作成したレコードセットのパスを指定

入力

aws route53 change-resource-record-sets `
    --hosted-zone-id xxxxx `
    --change-batch file://C:\route53\record-setting-1.json

出力

{
    "ChangeInfo": {
        "Id": "/change/xxxxx",
        "Status": "PENDING",
        "SubmittedAt": "2022-05-11T05:50:19.883000+00:00",
        "Comment": "Creating Alias resource record sets in Route 53"
    }
}

これでRoute53の設定を完了しました。

5.感想

ホストゾーンの作成からではなくレコードの作成からになってしまいすいません。
次回もよろしくお願いします。

6.検証

PowerShellからnslookupコマンドを使用して、ドメイン名から対応するIPアドレスを取得できるかの検証を行います。

①以下のコマンドを使用してドメイン名からIPアドレスを取得します。

nslookup -type=a ume.test.cloud5.jp

出力

サーバー:  ntt.setup
Address:  192.168.1.1

権限のない回答:
名前:    ume.test.cloud5.jp
Addresses:  3.34.161.223
          15.165.22.190

自分のドメイン名からIPアドレスが返されました。

②ALBのDNS名から同じIPアドレスが返ってくるか以下のコマンドで確認をします。

nslookup umemoto-ALB-154690738.ap-northeast-2.elb.amazonaws.com

出力

サーバー:  ntt.setup
Address:  192.168.1.1

権限のない回答:
名前:    umemoto-ALB-154690738.ap-northeast-2.elb.amazonaws.com
Addresses:  3.34.161.223
          15.165.22.190

ALBのDNS名から同じIPアドレスが返ってくることを確認できました。

6.参照

AWS CLI Command Reference – route53
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/index.html

Last modified: 2022-06-09

Author