メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

Amazon Route 53 テンプレートスニペット

ホストゾーンの名前または ID を使用した Amazon Route 53 リソースレコードセット

Amazon Route 53 リソースレコードセットを作成する際は、その追加先となるホストゾーンを指定する必要があります。AWS CloudFormation には、次の 2 通りの方法が用意されています。HostedZoneId property を使用してホストゾーンを明示的に指定する方法と、HostedZoneName プロパティを使用して AWS CloudFormation にホストゾーンを検索させる方法です。HostedZoneName プロパティを使用した場合で、かつ同じドメイン名の複数のホストゾーンが存在した場合、AWS CloudFormation によってスタックは作成されません。

HostedZoneId を使用したリソースレコードセットの追加

この例では、HostedZoneId プロパティでホストゾーンを指定するドメイン名 mysite.example.com の SPF レコードを含んだ Amazon Route 53 リソースレコードセットを追加します。

JSON

Copy
"myDNSRecord" : { "Type" : "AWS::Route53::RecordSet", "Properties" : { "HostedZoneId" : "Z3DG6IL3SJCGPX", "Name" : "mysite.example.com.", "Type" : "SPF", "TTL" : "900", "ResourceRecords" : [ "\"v=spf1 ip4:192.168.0.1/16 -all\"" ] } }

YAML

Copy
myDNSRecord: Type: AWS::Route53::RecordSet Properties: HostedZoneId: Z3DG6IL3SJCGPX Name: mysite.example.com. Type: SPF TTL: '900' ResourceRecords: - '"v=spf1 ip4:192.168.0.1/16 -all"'

HostedZoneName を使用したリソースレコードセットの追加

この例では、HostedZoneName プロパティでホストゾーンを指定することによって、ドメイン名 "mysite.example.com" の A レコードを含んだ Amazon Route 53 リソースレコードセットを追加します。

JSON

Copy
"myDNSRecord2" : { "Type" : "AWS::Route53::RecordSet", "Properties" : { "HostedZoneName" : "example.com.", "Name" : "mysite.example.com.", "Type" : "A", "TTL" : "900", "ResourceRecords" : [ "192.168.0.1", "192.168.0.2" ] } }

YAML

Copy
myDNSRecord2: Type: AWS::Route53::RecordSet Properties: HostedZoneName: example.com. Name: mysite.example.com. Type: A TTL: '900' ResourceRecords: - 192.168.0.1 - 192.168.0.2

RecordSetGroup を使用した加重リソースレコードセットの設定

この例では、AWS::Route53::RecordSetGroup を使用して、"example.com" に対する 2 つの CNAME レコードを設定します。ホストゾーン。​RecordSets プロパティは、"mysite.example.com" という DNS 名の CNAME レコードセットを保持します。各レコードセットは、識別子 (SetIdentifier) と重み (Weight) を持ちます。Frontend One の重みは 40% (4/10) で、Frontend Two の重みは 60% (6/10) です。加重リソースレコードセットの詳細については、Amazon Route 53 開発者ガイドの「加重リソースレコードセットの設定」を参照してください。

JSON

Copy
"myDNSOne" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : "example.com.", "Comment" : "Weighted RR for my frontends.", "RecordSets" : [ { "Name" : "mysite.example.com.", "Type" : "CNAME", "TTL" : "900", "SetIdentifier" : "Frontend One", "Weight" : "4", "ResourceRecords" : ["example-ec2.amazonaws.com"] }, { "Name" : "mysite.example.com.", "Type" : "CNAME", "TTL" : "900", "SetIdentifier" : "Frontend Two", "Weight" : "6", "ResourceRecords" : ["example-ec2-larger.amazonaws.com"] } ] } }

YAML

Copy
myDNSOne: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneName: example.com. Comment: Weighted RR for my frontends. RecordSets: - Name: mysite.example.com. Type: CNAME TTL: '900' SetIdentifier: Frontend One Weight: '4' ResourceRecords: - example-ec2.amazonaws.com - Name: mysite.example.com. Type: CNAME TTL: '900' SetIdentifier: Frontend Two Weight: '6' ResourceRecords: - example-ec2-larger.amazonaws.com

RecordSetGroup を使用したエイリアスリソースレコードセットの設定

この例では、AWS::Route53::RecordSetGroup を使用して、"example.com" に対するエイリアスレコードを設定します。ホストゾーン。​RecordSets プロパティは、"example.com" という Zone Apex の A レコードを保持します。myELB LoadBalancer のホストゾーン ID と DNS 名は、AliasTarget プロパティで GetAtt 組み込み関数を使用し、myELB リソースの CanonicalHostedZoneNameID プロパティと DNSName プロパティを取得することによって指定しています。エイリアスリソースレコードセットの詳細については、Amazon Route 53 開発者ガイドの「エイリアスリソースレコードセットの作成」を参照してください。

JSON

Copy
"myELB" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "AvailabilityZones" : [ "us-east-1a" ], "Listeners" : [ { "LoadBalancerPort" : "80", "InstancePort" : "80", "Protocol" : "HTTP" } ] } }, "myDNS" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : "example.com.", "Comment" : "Zone apex alias targeted to myELB LoadBalancer.", "RecordSets" : [ { "Name" : "example.com.", "Type" : "A", "AliasTarget" : { "HostedZoneId" : { "Fn::GetAtt" : ["myELB", "CanonicalHostedZoneNameID"] }, "DNSName" : { "Fn::GetAtt" : ["myELB","DNSName"] } } } ] } }

YAML

Copy
myELB: Type: AWS::ElasticLoadBalancing::LoadBalancer Properties: AvailabilityZones: - "us-east-1a" Listeners: - LoadBalancerPort: '80' InstancePort: '80' Protocol: HTTP myDNS: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneName: example.com. Comment: Zone apex alias targeted to myELB LoadBalancer. RecordSets: - Name: example.com. Type: A AliasTarget: HostedZoneId: !GetAtt myELB.CanonicalHostedZoneNameID DNSName: !GetAtt myELB.DNSName

CloudFront ディストリビューションのエイリアスリソースレコードセット

以下の例は、指定された CloudFront ディストリビューションドメイン名にクエリをルーティングするエイリアスレコードセットを作成します。

JSON

Copy
"myDNS" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneId" : { "Ref" : "myHostedZoneID" }, "RecordSets" : [{ "Name" : { "Ref" : "myRecordSetDomainName" }, "Type" : "A", "AliasTarget" : { "HostedZoneId" : "Z2FDTNDATAQYW2", "DNSName" : { "Ref" : "myCloudFrontDistributionDomainName" } } }] } }

YAML

Copy
myDNS: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneId: Ref: myHostedZoneID RecordSets: - Name: Ref: myRecordSetDomainName Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 DNSName: Ref: myCloudFrontDistributionDomainName