web-dev-qa-db-fra.com

Cloudfront et EC2

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?

8
ChrisRich

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).

19
Michael - sqlbot

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:

  1. Connectez-vous à votre console aws et recherchez CloudFront

  2. Aller à CloudFront: Créer une distribution (veuillez sélectionner Distribution Web )

  3. Sous Paramètres d'origine : sélectionnez le nom de domaine d'origine (vous pouvez affecter l'adresse IP publique de votre instance).
  4. Sous Paramètres de comportement du cache par défaut : Sélectionner une stratégie de protocole de visionneuse: redirection HTTP vers HTTPS
  5. Sous Mise en cache des objets : opt personnaliser (Conserver le paramètre par défaut dans Minimum TTL, Maximum TTL et TTL par défaut)
  6. Cookies Forward : Tous
  7. Transmission et mise en cache de chaînes de requête : All
  8. Paramètres de distribution : Sélectionnez Classe de prix : (Utiliser tous les emplacements de bord (meilleure performance)).
  9. Noms de domaine alternatifs (CNAME) s : ajoutez votre DNS ec2 i.e ec2-52-64-xxx-xxx.ap-southeast-2.compute.amazonaws.com
  10. Certificat SSL : Sous SSL, vous pouvez choisir par défaut ou votre certificat personnalisé en fonction de vos besoins. (Opt default.)

Remarque : Pour le certificat SSL personnalisé (le certificat doit être situé dans la région us-east-1).

  1. Cela peut prendre 10 à 15 minutes
1
Anoop Kumar

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.

0
Manly Electronics