Prise en main du CDN CloudFront d'AWS
Un réseau de distribution de contenu (CDN) est un réseau de serveurs dans le monde entier qui met en cache vos ressources statiques, réduisant la charge sur vos serveurs Web principaux. Le CDN CloudFront d'AWS est facile à utiliser, rapide à configurer et peu coûteux à exécuter.
Sommaire
Qu'est-ce que CloudFront?
Il existe deux utilisations principales pour un CDN. Le plus souvent, ils sont utilisés pour héberger un contenu statique volumineux qu'il serait impossible d'héberger sur un serveur Web traditionnel, comme des vidéos, des images ou d'autres supports statiques volumineux. CloudFront utilise S3 à cet effet; vous pouvez placer toutes vos images et vidéos dans un compartiment S3 et configurer CloudFront pour servir ce compartiment.
En fait, si vous n'avez pas besoin de traitement côté serveur, vous pouvez même configurer un compartiment S3 pour héberger un site Web entier, ce qui fonctionne particulièrement bien pour les applications JavaScript côté client conçues à l'aide de frameworks comme React. Dans cette configuration, CloudFront est utilisé pour fournir un réseau de distribution résilient dans le monde entier et garantir la latence la plus faible possible à chaque utilisateur.
Étant donné que les CDN mettent en cache le contenu dans le monde entier, ils sont également utilisés comme une autre couche de cache pour l'ensemble de votre site Web. Pour de nombreuses pages, vous n'avez pas avoir besoin pour le servir directement depuis votre serveur Web. Surtout pour les sites WordPress, où un traitement côté serveur est en cours pour chaque demande, cela peut mettre une pression énorme sur vos serveurs. Au lieu de cela, CloudFront se trouve devant lui et gère la majeure partie de la charge.
En ce qui concerne le coût, CloudFront n'est pas si cher. Vous êtes simplement facturé en fonction des données transférées (comme la plupart des services AWS) et du nombre de demandes HTTP traitées. Les prix de transfert de données dépendent de la région, mais $0.020
par Go pour les États-Unis et l'UE. La demande de prix est $0.01
pour 10 000 requêtes HTTPS. C'est comparable à d'autres concurrents comme Fastly.
Demander un certificat à ACM
Si vous prévoyez d'utiliser votre propre URL (plutôt que *.cloudfront.net
), vous devrez demander un nouveau certificat SSL / TLS à AWS’s Certificate Manager (ACM). Pour une raison quelconque, il n'y a aucun moyen d'actualiser la liste déroulante pour choisir un certificat lors de la configuration d'une distribution CloudFront, vous devrez donc demander ce certificat au préalable.
Il convient de noter qu'il s'agit en fait de SSL entièrement gratuit – un service pour lequel de nombreuses entreprises vous factureront des centaines de dollars. Bien que LetsEncrypt offre un SSL gratuit, c'est quelque chose qui doit être renouvelé tous les quelques mois avec un travail cron (accordé, il est configuré automatiquement, donc ce n'est pas un gros problème). Cependant, les certificats fournis avec ACM seront automatiquement renouvelés et n'expireront jamais tant qu'ils seront utilisés.
Dirigez-vous sur la console de gestion ACM et fournissez un nouveau certificat public. Entrez les noms de domaine que vous utiliserez (par exemple, yourdomain.com
, et *.yourdomain.com
).
Pour chaque domaine, vous devrez vérifier que vous en êtes le propriétaire en créant un nouvel enregistrement CNAME dans votre DNS. Si vous utilisez le propre DNS Route 53 d'AWS, vous pouvez cliquer sur le bouton pour créer ces enregistrements automatiquement.
Cela peut prendre quelques minutes à traiter. Une fois qu'il est validé, vous verrez l'orange «Pending Validation» se transformer en vert «Issued» et vous pouvez passer à la configuration de CloudFront.
Débuter avec CloudFront
Rendez-vous sur la console de gestion CloudFront et créez une nouvelle distribution Web. L'autre option est RTMP, utilisée exclusivement pour diffuser des vidéos en direct. Dans la plupart des cas, le Web est probablement ce que vous voulez.
Tout d'abord, vous devrez configurer votre origine. Si vous utilisez un compartiment S3, vous pouvez sélectionner le compartiment dans cette liste déroulante. Si vous utilisez un équilibreur de charge devant vos instances EC2, vous devez le sélectionner. Sinon, entrez l'URL de votre site.
Vous souhaiterez entrer le nom de votre site pour l'ID d'origine, qui est juste utilisé pour l'identifier dans CloudFront. Si vous le souhaitez, vous pouvez également définir des en-têtes personnalisés que CloudFront enverra à votre site lors d'une demande d'extraction.
Le paramètre par défaut consiste à utiliser à la fois HTTP et HTTPS. Vous devriez probablement rediriger tout le trafic vers HTTPS. Assurez-vous de ne pas choisir «HTTPS uniquement», car cela entraînerait une erreur sur tout le trafic HTTP au lieu d'être redirigé.
Ensuite, vous devrez déterminer comment vous souhaitez gérer la mise en cache. Si vous laissez la valeur par défaut «Utiliser les en-têtes du cache d'origine», CloudFront utilisera le Cache-Control
en-têtes de votre serveur Web.
Vous pouvez également choisir d'utiliser le système de comportements personnalisés de CloudFront. Dans tous les cas, vous devrez protéger manuellement les itinéraires que vous ne souhaitez pas mettre en cache: des éléments tels que les pages utilisateur authentifiées ne doivent jamais être mis en cache.
Sous Certificat SSL, choisissez d'utiliser un certificat SSL personnalisé d'ACM. Sélectionnez le certificat que vous avez créé précédemment.
Cela devrait être toute la configuration dont vous aurez besoin. Cliquez sur "Créer une distribution". CloudFront prendra environ vingt minutes pour tout configurer (il y a beaucoup d'emplacements périphériques à configurer). Une fois cela fait, vous devriez voir que votre distribution est «activée».
Cependant, vous ne pourrez pas y accéder depuis votre URL personnalisée. Sous "Nom de domaine", copiez le nom de domaine de votre distribution, qui devrait ressembler à ceci:
d1b8r4efty9gim.cloudfront.net
Vous souhaiterez l'ajouter en tant qu'enregistrement CNAME dans votre DNS. Cela nécessite deux recherches DNS, donc si vous recherchez des performances, vous voudrez basculer vers le propre service DNS Route 53 d'AWS, qui offre la possibilité de créer des enregistrements "A Alias", qui pointeront dynamiquement vers un spécifique Ressource AWS.
Une fois vos mises à jour DNS effectuées, votre distribution devrait être disponible à partir de votre propre nom de domaine.
Configuration de la mise en cache personnalisée
Si vous avez choisi d'utiliser les paramètres de cache personnalisés de CloudFront, vous devrez ajouter plus de règles pour des itinéraires spécifiques, sous l'onglet "Comportements".
Si vous souhaitez empêcher la mise en cache d'un chemin, entrez zéro pour le TTL maximum et par défaut. Vous pouvez également choisir manuellement de récupérer Cache-Control
en-têtes de l'origine pour certains chemins, même si vous avez défini un TTL par défaut à l'échelle du site.