Comment configurez-vous Cloudfront devant une instance EC2? Je souhaite que les utilisateurs cliquent sur l'URL Cloudfront plutôt que sur l'EC2 Origin.
Ainsi, au lieu de frapper ec2-52-64-xxx-xxx.ap-southeast-2.compute.amazonaws.com, les utilisateurs appuieraient sur d111111abcdef8.cloudfront.net.
Mon intention est de faire des économies sur l'hébergement en réduisant le trafic et la charge de processeur de l'instance EC2, tout en offrant aux utilisateurs étrangers des temps de chargement plus courts.
Est-ce que je ferais simplement pointer mon DNS vers l'URL de Cloudfront au lieu de l'origine EC2?
Est-ce que je ferais simplement pointer mon DNS vers l'URL de Cloudfront au lieu de l'origine EC2?
Plutôt.
Techniquement, vous ne dirigez pas le DNS vers une URL, vous le dirigez vers un nom d'hôte ou une adresse IP, ce qui se fait un peu différemment avec CloudFront.
Tout d’abord, cependant ... dans les paramètres de distribution CloudFront, vous devez configurer tous les noms d’hôte que CloudFront devrait voir envoyés par le navigateur, dans la zone "Noms de domaine alternatifs".
Pour l'origine, entrez le nom d'hôte ec2-...-compute.amazonaws.com
.
À ce stade, après 10 à 15 minutes, la visite de l'URL attribuée à CloudFront devrait vous conduire à votre serveur.
Suivant ... si votre DNS est hébergé sur la Route 53, vous devez accéder à la zone hébergée et créer de nouveaux enregistrements "A" pour ces noms d'hôtes, en définissant "Alias" sur "Oui", ce qui devrait entraîner l'affichage de la zone des cibles. rempli avec la distribution CloudFront, que vous sélectionneriez ensuite, puis enregistrez l’enregistrement.
Si votre DNS n'est pas hébergé par Route 53, vous devez plutôt créer des enregistrements CNAME
dans DNS, en pointant vers le nom d'hôte attribué à la distribution CloudFront, par exemple. jozxyqkexample.cloudfront.net
. Le problème, ici, est que vous ne pouvez pas faire cela avec le sommet/la racine de votre domaine, car un CNAME
n'est pas valide là-bas ... donc www.example.com fonctionnerait, mais exemple.com ne fonctionnerait pas. Ceci est une limitation du DNS, et la seule solution consiste à utiliser Route 53 pour votre DNS, car il possède une intégration interne à CloudFront (d'où les enregistrements "Alias" mentionnés ci-dessus, qui utilisent des recherches internes plutôt que des références externes, comme un CNAME. ).
Vous pouvez également vouloir configurer CloudFront pour transférer l'en-tête Host
au serveur d'origine; sinon, lorsque la demande arrive, le nom d'hôte présenté à votre serveur dans les demandes HTTP ne sera pas votre nom de domaine, mais plutôt le nom d'hôte que vous avez configuré en tant qu'hôte d'origine.
Lorsque vous vous connectez via CloudFront, veillez à ce que le serveur ne vous redirige pas vers le nom d'hôte ou l'adresse IP d'EC2 (la barre d'adresse du navigateur changera, le cas échéant, et vous voudrez corriger la configuration de votre serveur Web si ça arrive).
Utilisez l’étape ci-dessous pour acheminer le fichier ec2-52-64-xxx-xxx.ap-southeast-2.compute.amazonaws.com à d111111abcdef8.cloudfront.net.
Suivez les étapes ci-dessous:
Connectez-vous à votre console aws et recherchez CloudFront
Aller à CloudFront: Créer une distribution (veuillez sélectionner Distribution Web )
Remarque : Pour le certificat SSL personnalisé (le certificat doit être situé dans la région us-east-1).
IP dans Origin donnerait l'erreur suivante: com.amazonaws.services.cloudfront.model.InvalidArgumentException: le paramètre nom d'origine ne peut pas être une adresse IP. (Service: AmazonCloudFront; Code d'état: 400; Code d'erreur: InvalidArgument;
Même si la documentation AWS indique que vous pouvez utiliser IP.
DNS public (IPv4) car Origin donne '504 "La requête n'a pas pu être satisfaite"
Je l'ai eu quand Origin était S3 et si S3 avait des permissions limitées. Mais EC2 n’a aucun contrôle d’autorisations. c'est public.