Extraits de modèle Route 53 - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Extraits de modèle Route 53

Jeu d'enregistrements de ressources Amazon Route 53 avec l'ID ou le nom de la zone hébergée

Lorsque vous créez un jeu d'enregistrements de ressources Amazon Route 53, vous devez spécifier la zone hébergée à laquelle vous souhaitez l'ajouter. AWS CloudFormation offre deux possibilités pour spécifier une zone hébergée :

  • Vous pouvez spécifier explicitement la zone hébergée à l'aide de la propriété HostedZoneId.

  • Vous pouvez avoir AWS CloudFormation trouvé la zone hébergée à l'aide de la HostedZoneName propriété. Si vous utilisez la HostedZoneName propriété et que plusieurs zones hébergées portent le même nom, AWS CloudFormation cela ne crée pas la pile.

Ajouter en RecordSet utilisant HostedZoneId

Cet exemple ajoute un jeu d'enregistrements de ressources Amazon Route 53 contenant un enregistrement SPF pour le nom de domaine mysite.example.com, qui utilise la propriété HostedZoneId pour spécifier la zone hébergée.

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

Ajouter en RecordSet utilisant HostedZoneName

Cet exemple ajoute un jeu d'enregistrements de ressources Amazon Route 53 pour le nom de domaine « mysite.example.com » à l'aide de la propriété HostedZoneName pour spécifier la zone hébergée.

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

Utilisation RecordSetGroup pour configurer des ensembles d'enregistrements de ressources pondérés

Cet exemple utilise un AWS::Route53::RecordSetgroupe pour configurer deux enregistrements CNAME pour « exemple.com ». zone hébergée « exemple.com ». La propriété RecordSets contient les jeux d'enregistrements CNAME pour le nom DNS « mysite.example.com ». Chaque jeu d'enregistrements contient un identifiant (SetIdentifier) et une pondération (Weight). La proportion du trafic Internet acheminé vers les ressources est basée sur les calculs suivants :

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

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

Pour de plus amples informations sur les jeux d'enregistrements de ressources pondérés, veuillez consulter Routage pondéré dans le Amazon Route 53 Manuel du développeur.

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

Utilisation RecordSetGroup pour configurer un jeu d'enregistrements de ressources alias

Les exemples suivants utilisent un AWS::Route53::RecordSetgroupe pour configurer un jeu d'enregistrements de ressources d'alias nommé example.com qui achemine le trafic vers un équilibreur de charge ELB version 1 (classique) et un équilibreur de charge version 2 (application ou réseau). La AliasTargetpropriété spécifie l'ID de zone hébergée et le nom DNS du LoadBalancer MyELB à l'aide GetAttde la fonction intrinsèque. GetAttrécupère différentes propriétés de la ressource MyELB, selon que vous acheminez le trafic vers un équilibreur de charge version 1 ou version 2 :

  • Équilibreur de charge Version 1 : CanonicalHostedZoneNameID et DNSName

  • Équilibreur de charge Version 2 : CanonicalHostedZoneID et DNSName

Pour plus d'informations sur les jeux d'enregistrements de ressources d'alias, veuillez consulter Choix entre des enregistrements avec ou sans alias dans le Guide du développeur Amazon Route 53.

JSON pour équilibreur de charge Version 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 pour équilibreur de charge Version 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 pour équilibreur de charge Version 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 pour équilibreur de charge Version 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'

Enregistrement de ressource Alias défini pour une CloudFront distribution

L'exemple suivant crée un jeu d'enregistrements d'alias qui achemine les requêtes vers la CloudFront distribution spécifiée.

Note

Lorsque vous créez des jeux d'enregistrement de ressources d'alias, vous devez spécifier Z2FDTNDATAQYW2 pour la propriété HostedZoneId, comme l'exemple suivant le montre. Les ensembles d'enregistrements de ressources d'alias pour ne CloudFront peuvent pas être créés dans une zone privée.

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