Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Frammenti di modello Route 53
Argomenti
- Set di record della risorsa Amazon Route 53 che utilizza il nome o l'ID della zona ospitata
- Utilizzo RecordSetGroup per impostare set di record di risorse ponderati
- Utilizzo RecordSetGroup per impostare un set di record di risorse alias
- Alias: record di risorse impostato per una distribuzione CloudFront
Set di record della risorsa Amazon Route 53 che utilizza il nome o l'ID della zona ospitata
Quando crei un set di record della risorsa Amazon Route 53, devi specificare la zona ospitata in cui desideri aggiungerlo. AWS CloudFormation offre due modi per specificare una zona ospitata.
Puoi specificare esplicitamente la zona ospitata utilizzando la proprietà
HostedZoneId
.È possibile AWS CloudFormation trovare la zona ospitata utilizzando la
HostedZoneName
proprietà. Se si utilizza laHostedZoneName
proprietà e sono presenti più zone ospitate con lo stesso nome, AWS CloudFormation non crea lo stack.
Aggiungere utilizzando RecordSet HostedZoneId
In questo esempio viene aggiunto un set di record della risorsa Amazon Route 53 che contiene un record SPF per il nome di dominio mysite.example.com
utilizzando la proprietà HostedZoneId
per specificare la zona ospitata.
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"'
Aggiungere RecordSet usando HostedZoneName
In questo esempio viene aggiunto un set di record della risorsa Amazon Route 53 per il nome di dominio "mysite.example.com" utilizzando la proprietà HostedZoneName
per specificare la zona ospitata.
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
Utilizzo RecordSetGroup per impostare set di record di risorse ponderati
Questo esempio utilizza un AWS::Route53::RecordSetgruppo per impostare due record CNAME per «example.com». zona ospitata. La proprietà RecordSets
contiene il set di record CNAME per il nome DNS "mysite.example.com". Ogni set di record contiene un identificatore (SetIdentifier
) e un peso (Weight
). La proporzione di traffico Internet instradato alle risorse si basa sui seguenti calcoli:
Frontend One
:140/(140+60)
=140/200
= 70%Frontend Two
:60/(140+60)
=60/200
= 30%
Per ulteriori informazioni sui set di record di risorse ponderati, consulta Instradamento ponderato nella Guida per lo sviluppatore di 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
Utilizzo RecordSetGroup per impostare un set di record di risorse alias
Negli esempi seguenti viene utilizzato un AWS::Route53::RecordSetgruppo per impostare un set di record di risorse alias denominato example.com
che indirizza il traffico verso un sistema di bilanciamento del carico ELB versione 1 (classico) e un sistema di bilanciamento del carico versione 2 (applicazione o rete). La AliasTargetproprietà specifica l'ID della zona ospitata e il nome DNS per MyELB utilizzando la funzione LoadBalancer intrinseca. GetAtt GetAtt
recupera diverse proprietà della risorsa MyElb, a seconda che tu stia instradando il traffico verso un load balancer versione 1 o versione 2:
load balancer Versione 1:
CanonicalHostedZoneNameID
eDNSName
load balancer Versione 2:
CanonicalHostedZoneID
eDNSName
Per ulteriori informazioni sui set di record di risorse alias, consulta Scelta tra record alias e non alias nella Guida per gli sviluppatori di Route 53.
JSON per il load balancer Versione 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 per il load balancer Versione 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 per il load balancer Versione 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 per il load balancer Versione 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'
Alias: record di risorse impostato per una distribuzione CloudFront
L'esempio seguente crea un set di record di alias che indirizza le query alla distribuzione specificata. CloudFront
Nota
Quando crei set di record della risorsa alias, devi specificare Z2FDTNDATAQYW2
per la proprietà HostedZoneId
, come mostrato nel seguente esempio. I set di record di risorse alias per non CloudFront possono essere creati in un'area privata.
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