Comment créer des jeux d'enregistrements de ressource alias dans Route 53 à l'aide de l'AWS CLI ?

Dernière mise à jour : 10/08/2022

Comment puis-je créer des jeux d'enregistrements de ressources d'alias dans Amazon Route 53 à l'aide de l'interface de la ligne de commande AWS (AWS CLI) ?

Brève description

Vous pouvez utiliser un enregistrement d'alias dans Route 53 pour pointer vers une ressource AWS ou un compartiment Amazon Simple Storage Service (Amazon S3). Vous pouvez créer un enregistrement d'alias via la console Route 53 ou via l'AWS CLI.

Solution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes de l'interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'AWS CLI.

Avant de créer des jeux d'enregistrements de ressources d'alias, créez une zone hébergée pour contenir les enregistrements permettant d'acheminer le trafic vers votre domaine. La zone hébergée et votre domaine doivent avoir le même nom. En fonction de votre cas d'utilisation, deux choix s'offrent à vous. Vous pouvez créer une zone hébergée publique pour acheminer le trafic Internet. Vous pouvez également créer une zone hébergée privée pour acheminer le trafic dans un Amazon Virtual Private Cloud (Amazon VPC).

Créez votre jeu d'enregistrements de ressources d'alias

Modifiez l'exemple de syntaxe JSON suivant pour créer votre propre jeu d'enregistrements de ressources d'alias, puis spécifiez vos propres valeurs pour les enregistrements d'alias. Enregistrez le fichier (par exemple, sample.json).

Avertissement : veillez à utiliser l'ID de la zone hébergée de vos ressources AWS, et non votre nom de domaine, dans votre configuration. Dans le fichier JSON, cette valeur est spécifiée dans la paire clé-valeur HostedZoneId. Avant de poursuivre, recherchez l'HostedZoneId pour les points de terminaison Elastic Load Balancing, AWS Elastic Beanstalk, Amazon S3 et Amazon CloudFront pour chaque région.

Cet exemple crée le jeu d'enregistrements de ressources d'alias pour un domaine (elb.example.com) pour pointer vers un point de terminaison d'équilibreur de charge (ALB-xxxxxxxx.us-west-2.elb.amazonaws.com). Le corps de la demande comprend une liste d'éléments de modification, appelé lot de modifications. Les éléments de modification sont inclus avec un élément 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
        }
      }
    }
  ]
}

Ensuite, utilisez une commande change-resource-record-sets pour créer votre jeu d'enregistrements de ressources dans une zone hébergée. Les valeurs pour la création des enregistrements sont spécifiées dans le fichier de configuration JSON que vous avez créé précédemment.

Modifiez la commande suivante pour votre configuration. Pour le paramètre --hosted-zone-id, fournissez l'ID de votre zone hébergée pour le nom de domaine :

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

Paramètres Elastic Load Balancing

Si vous pointez vers un équilibreur de charge, incluez toujours dualstack dans la valeur de la paire clé-valeur DNSName du fichier JSON. Par exemple, si le nom DNS fourni par Amazon à votre équilibreur de charge est ALB-xxxxxxxx.us-west-2.elb.amazonaws.com, utilisez :

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

Paramètres de la distribution CloudFront

Si vous pointez vers une distribution CloudFront, spécifiez le nom de domaine de la distribution CloudFront fournie par Amazon dans la paire clé-valeur DNSName du fichier JSON. Par exemple, si le nom de domaine de votre distribution CloudFront fourni par Amazon est d111111abcdef8.cloudfront.net, utilisez :

"DNSName": "d111111abcdef8.cloudfront.net"

Avertissement : vous devez inclure un nom de domaine alternatif à utiliser à la place de celui attribué par CloudFront. Le nom de domaine alternatif doit correspondre au domaine pour lequel vous avez créé le jeu d'enregistrements de ressources d'alias. Par exemple, si vous voulez accéder à votre distribution CloudFront en utilisant le domaine exemple.com, ajoutez le domaine à Alternate Domaine Names (Noms de domaines alternatifs) pour la distribution.

Paramètres du compartiment Amazon S3

Si vous pointez vers un compartiment S3, spécifiez le nom de domaine du point de terminaison du site Web du compartiment pour la paire clé-valeur DNSName dans le fichier JSON. N'utilisez pas le point de terminaison S3 qui apparaît dans l'hébergement de site Web statique à partir de votre console de gestion S3 pour la valeur. Le nom de domaine pour lequel vous créez le jeu d'enregistrements de ressources doit correspondre au nom de votre compartiment Amazon S3.

Vous devez également spécifier la région où le compartiment est hébergé (par exemple, us-east-1).

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

Voici un exemple de syntaxe JSON pour pointer vers un compartiment S3 :

{
  "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
        }
      }
    }
  ]
}

Remarque : en plus de créer des enregistrements d'alias pointant vers les ressources AWS telles que CloudFront, Amazon S3 ou ELB, vous pouvez créer un enregistrement de ressource d'alias. L'enregistrement de ressource d'alias pointe vers un autre enregistrement dans la même zone hébergée que celle dans laquelle vous créez l'enregistrement d'alias. L'enregistrement d'alias doit avoir le même type que l'enregistrement vers lequel vous effectuez le routage.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?