Cuplikan templat Route 53 - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cuplikan templat Route 53

Rekaman sumber daya Amazon Route 53 yang ditetapkan menggunakan nama atau ID zona yang dihosting

Saat Anda membuat kumpulan catatan sumber daya Amazon Route 53, Anda harus menentukan zona yang dihosting tempat Anda ingin menambahkannya. AWS CloudFormation menyediakan dua cara untuk menentukan zona yang dihosting:

  • Anda dapat secara eksplisit menentukan zona yang di-host menggunakan properti HostedZoneId.

  • Anda dapat AWS CloudFormation menemukan zona yang dihosting menggunakan HostedZoneName properti. Jika Anda menggunakan HostedZoneName properti dan ada beberapa zona yang dihosting dengan nama yang sama, AWS CloudFormation tidak membuat tumpukan.

Menambahkan RecordSet menggunakan HostedZoneId

Contoh ini menambahkan kumpulan data sumber daya Amazon Route 53 yang berisi data SPF untuk nama domain mysite.example.com yang menggunakan HostedZoneId properti untuk menentukan zona yang dihosting.

JSON

"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

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"'

Menambahkan RecordSet menggunakan HostedZoneName

Contoh ini menambahkan data sumber daya Amazon Route 53 yang ditetapkan untuk nama domain “mysite.example.com” menggunakan HostedZoneName properti untuk menentukan zona yang dihosting.

JSON

"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

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

Menggunakan RecordSetGroup untuk mengatur set catatan sumber daya tertimbang

Contoh ini menggunakan AWS::Route53::RecordSetGrup untuk menyiapkan dua catatan CNAME untuk “example.com.” zona yang di-host. Properti RecordSets mengandung set catatan CNAME untuk nama DNS "mysite.example.com". Setiap set catatan mengandung sebuah pengidentifikasi (SetIdentifier) dan bobot (Weight). Proporsi lalu lintas internet yang dirutekan ke sumber daya didasarkan pada perhitungan berikut:

  • Frontend One: 140/(140+60) = 140/200 = 70%

  • Frontend Two: 60/(140+60) = 60/200 = 30%

Untuk informasi selengkapnya tentang kumpulan rekaman sumber daya tertimbang, lihat Perutean tertimbang di Panduan Pengembang Amazon Route 53.

JSON

"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" : "140", "ResourceRecords" : ["example-ec2.amazonaws.com"] }, { "Name" : "mysite.example.com.", "Type" : "CNAME", "TTL" : "900", "SetIdentifier" : "Frontend Two", "Weight" : "60", "ResourceRecords" : ["example-ec2-larger.amazonaws.com"] } ] } }

YAML

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: '140' ResourceRecords: - example-ec2.amazonaws.com - Name: mysite.example.com. Type: CNAME TTL: '900' SetIdentifier: Frontend Two Weight: '60' ResourceRecords: - example-ec2-larger.amazonaws.com

Menggunakan RecordSetGroup untuk menyiapkan kumpulan catatan sumber daya alias

Contoh berikut menggunakan AWS::Route53::RecordSetGrup untuk menyiapkan kumpulan catatan sumber daya alias bernama example.com yang merutekan lalu lintas ke penyeimbang beban ELB Versi 1 (Klasik) dan penyeimbang beban Versi 2 (Aplikasi atau Jaringan). AliasTargetProperti menentukan ID zona host dan nama DNS untuk myElb dengan menggunakan fungsi intrinsik LoadBalancer . GetAtt GetAttmengambil properti yang berbeda dari sumber daya myElb, tergantung pada apakah Anda merutekan lalu lintas ke penyeimbang beban Versi 1 atau Versi 2:

  • Penyeimbang beban Versi 1: CanonicalHostedZoneNameID dan DNSName

  • Penyeimbang beban Versi 2: CanonicalHostedZoneID dan DNSName

Untuk informasi selengkapnya tentang kumpulan rekaman sumber daya alias, lihat Memilih antara catatan alias dan non-alias di Panduan Pengembang Route 53.

JSON untuk penyeimbang beban versi 1

"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 untuk penyeimbang beban versi 1

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'

JSON untuk penyeimbang beban versi 2

"myELB" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "Subnets" : [ {"Ref": "SubnetAZ1"}, {"Ref" : "SubnetAZ2"} ] } }, "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", "CanonicalHostedZoneID"] }, "DNSName" : { "Fn::GetAtt" : ["myELB","DNSName"] } } } ] } }

YAML untuk penyeimbang beban versi 2

myELB: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Subnets: - Ref: SubnetAZ1 - Ref: SubnetAZ2 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.CanonicalHostedZoneID' DNSName: !GetAtt 'myELB.DNSName'

Catatan sumber daya alias ditetapkan untuk distribusi CloudFront

Contoh berikut membuat catatan alias set yang merutekan query ke distribusi tertentu CloudFront .

catatan

Ketika Anda membuat set catatan sumber daya alias, Anda harus menentukan Z2FDTNDATAQYW2 untuk properti HostedZoneId, seperti yang ditunjukkan dalam contoh berikut. Kumpulan catatan sumber daya alias untuk tidak CloudFront dapat dibuat di zona pribadi.

JSON

{ "myDNS": { "Type": "AWS::Route53::RecordSetGroup", "Properties": { "HostedZoneId": { "Ref": "myHostedZoneID" }, "RecordSets": [ { "Name": { "Ref": "myRecordSetDomainName" }, "Type": "A", "AliasTarget": { "HostedZoneId": "Z2FDTNDATAQYW2", "DNSName": { "Fn::GetAtt": [ "myCloudFrontDistribution", "DomainName" ] } } } ] } } }

YAML

myDNS: Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: !Ref myHostedZoneID RecordSets: - Name: !Ref myRecordSetDomainName Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 DNSName: !GetAtt - myCloudFrontDistribution - DomainName