この記事は公開されてから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.フロー図
Route53の設定のフローは以下になります。
- Route53のホストゾーンを作成します。(今回は都合上ホストゾーンの作成は省略させていただきます申し訳ございません。ホストゾーン作成は公式リファレンスの[create-hosted-zone]コマンドのページを参考にしてください。)
- 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