AWS コマンドラインインターフェース (AWS CLI) を使用して Amazon Route 53 でエイリアスリソースレコードセットを作成する方法を教えてください。

Route 53 でエイリアスレコードを使用して AWS リソースまたは Amazon S3 バケットをポイントできます。エイリアスレコードは、Route 53 コンソールで作成するか、AWS CLI で作成することができます。

注意: 先に進む前に最新バージョンの AWS CLI のインストールまたはアップグレードを必ず行います。

エイリアスリソースレコードセットを作成する前に、ホストゾーンを作成してドメインにトラフィックをルーティングするためのレコードを含めます。ホストゾーンとドメインは同じ名前にする必要があります。ユースケースに応じて、インターネットトラフィックをルーティングするためのパブリックホストゾーンを作成するか、Amazon Virtual Private Cloud (Amazon VPC) 内のトラフィックをルーティングするためのプライベートホストゾーンを作成できます。

エイリアスリソースレコードセットの作成

次の JSON のサンプル構文を変更して、独自のエイリアスリソースレコードセットを作成し、次に独自の値をエイリアスレコードに指定します。このファイル (例: sample.json) を保存します。

警告: 設定では、ドメイン名ではなく、必ず AWS リソースのホストゾーン ID を使用してください。JSON ファイルで、この値はキーと値のペアである HostedZoneId に指定されています。先に進む前に、各リージョンの Elastic Load BalancingAWS Elastic BeanstalkAmazon Simple Storage Service (Amazon S3)、および Amazon CloudFront の各エンドポイントの HostedZoneId を確認します。

この例では、ドメイン (elb.example.com) のエイリアスリソースレコードセットを作成して Elastic Load Balancing のエンドポイント (ALB-xxxxxxxx.us-west-2.elb.amazonaws.com) をポイントします。リクエストボディには、変更バッチと呼ばれる変更項目のリストが含まれています。変更項目は、ChangeResourceRecordSetsRequest 要素内にあります。

{
     "Comment": "Creating Alias resource record sets in Route 53",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                            "Name": "elb.example.com",
                            "Type": "A",
                            "AliasTarget":{
                                    "HostedZoneId": "Z1H1FL5HABSF5",
                                    "DNSName": "ALB-xxxxxxxx.us-west-2.elb.amazonaws.com",
                                    "EvaluateTargetHealth": false
                              }}
                          }]
}

次に、change-resource-record-sets コマンドを使用してリソースレコードセットをホストゾーンに作成します。レコードを作成するための値は、前に作成した JSON 設定ファイルに指定されています。

設定で、次のコマンドを変更します。--hosted-zone-id で、ドメイン名のホストゾーン ID を指定します。

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json

Elastic Load Balancing の設定

Elastic Load Balancing をポイントする場合は、JSON ファイルの DNSName のキーと値のペアの値として必ず dualstack を含めます。たとえば、ロードバランサーの Amazon 提供の DNS 名が ALB-xxxxxxxx.us-west-2.elb.amazonaws.com である場合は、以下を使用します。

"DNSName": "dualstack.ALB-xxxxxxxx.us-west-2.elb.amazonaws.com"

CloudFront ディストリビューションの設定

CloudFront ディストリビューションをポイントする場合は、Amazon 提供の CloudFront ディストリビューションのドメイン名を JSON ファイルの DNSName のキーと値のペアに指定します。たとえば、CloudFront ディストリビューションの Amazon 提供のドメイン名が d111111abcdef8.cloudfront.net である場合は、以下を使用します。

"DNSName": "d111111abcdef8.cloudfront.net"

警告: CloudFront に割り当てられたドメイン名の代わりに使用する代替ドメイン名を含める必要があります。代替ドメイン名は、エイリアスリソースレコードセットを作成したドメインと一致する必要があります。たとえば、ドメイン example.com を使用して CloudFront ディストリビューションにアクセスする場合は、このドメイン名をディストリビューションの代替ドメイン名として追加します。

Amazon S3 バケットの設定

Amazon S3 バケットをポイントする場合は、バケットのウェブサイトエンドポイントのドメイン名を JSON ファイルの DNSName のキーと値のペアに指定する必要があります。S3 マネジメントコンソールの静的ウェブサイトホスティングに表示される S3 エンドポイントを値として使用しないでください。リソースレコードセットを作成するドメイン名は、Amazon S3 バケットの名前と一致する必要があります。

バケットがホストされているリージョン (us-east-1 など) も指定する必要があります。

s3-website-us-east-1.amazonaws.com

S3 バケットをポイントする JSON 構文の例を以下に示します。

{
                "Comment": "Alias record for S3 bucket",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                                "Name": "new.example.com",
                                           "Type": "A",
                                "AliasTarget":{
                                                    "HostedZoneId": "Z3BJ6K6RIION7M",
                                          "DNSName": "s3-website-us-west-2.amazonaws.com",
                                               "EvaluateTargetHealth": false
                                         }}
                                  }]
}

注意: AWS リソース (CloudFront ディストリビューション、Elastic Beanstalk 環境、ELB ロードバランサー、Amazon S3 バケットなど) をポイントするエイリアスレコードを作成するほかに、エイリアスレコードを作成する同じホストゾーンの別のレコードセットをポイントするエイリアスリソースレコードを作成することもできます。エイリアスレコードは、ルーティング先のレコードと同じタイプであることが必要です。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2018 年 09 月 08 日