LoginSignup
0
0

AWS CLI/CFnでRoute53にCloudfrontのエイリアスレコードを作る場合は固定値が必要

Last updated at Posted at 2023-09-10

こんにちは。Kaneyasuです。

本記事は過去にZennで書いた記事のリライトです。
CloudFrontで作ったディストリビューションは、Route53にエイリアスレコードを作ることで、独自ドメインでアクセス可能になります。
Route53にエイリアスレコードを作る作業は、AWS CLIやAWS CloudFormationでコード化できますが、一点わかりにくいポイントがあるので、共有します。

AWS CLIの場合

AWS CLIでRoute53にDNSレコードを作るには、aws route53 change-resource-record-setsを使用します。

aws route53 change-resource-record-setsコマンドはパラメーターとして、ホストゾーンIDとDNSレコードの内容を記載してJSONファイルを渡す仕様です。

aws route53 change-resource-record-sets --hosted-zone-id {Route53のホストゾーンID} --change-batch file://sample.json

ホストゾーンIDは、aws route53 list-hosted-zonesコマンドで調べることができます。

DNSレコードの内容を記載するJSONファイルのサンプルはこちらです。
記載方法は、上述のaws route53 change-resource-record-setsのリファレンスのページに例があります。

sample.json
{
     "Comment": "Creating Alias resource record sets in Route 53",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                            "Name": "cdn.example.com",
                            "Type": "A",
                            "AliasTarget":{
                                    "HostedZoneId": "Z2FDTNDATAQYW2", 
                                    "DNSName": "xxxxxxxxxxxxx.cloudfront.net",
                                    "EvaluateTargetHealth": false
                              }}
                          }]
}

このJSONファイルには、CloudFrontのディストリビューションに対し、エイリアスレコードを新規作成することを書いています。
冒頭で書いた「わかりにくいポイント」とはここのことです。

"HostedZoneId": "Z2FDTNDATAQYW2", 

CloudFrontのディストリビューションに対し、エイリアスレコードを作る場合は、ホストゾーンIDに固定値Z2FDTNDATAQYW2を書くのが仕様です。
IDを指定する欄で、固定値を書くと言うのは珍しいですが、本当にこういう仕様です。

CloudFront distribution
Specify Z2FDTNDATAQYW2. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution.

AWS CloudFormationの場合

こちらはAWSのリファレンスページに正解が載っています。

やはりホストゾーンIDに固定値Z2FDTNDATAQYW2が書かれています。

ChatGPTに問い合わせた場合

2023年9月現在、ChatGPTにCloudFrontで作ったディストリビューションは、Route53にエイリアスレコードを作りたいと問い合わせれば、ホストゾーンIDに固定値を書くのも含めたサンプルが返ってきます。

ChatGPTへの質問

ChatGPTの回答

"HostedZoneId": "Z2FDTNDATAQYW2", # CloudFrontのHostedZoneID

ただし、ChatGPTの回答は「CloudFrontのHostedZoneID」という若干わかりづらい表現をしています。
大丈夫なのですが、初見だと誤解する可能性があると感じます。
この部分の裏取りの一助となればいいなあと、本記事を書きました。
参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0