Augmenter la proportion de demandes traitées directement à partir des CloudFront caches (taux de réussite du cache) - Amazon CloudFront

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.

Augmenter la proportion de demandes traitées directement à partir des CloudFront caches (taux de réussite du cache)

Vous pouvez améliorer les performances en augmentant la proportion de demandes de vos visiteurs qui sont traitées directement depuis le CloudFront cache au lieu d'être transmises à vos serveurs d'origine pour le contenu. Ce processus est appelé « amélioration du taux d'accès au cache ».

Les sections suivantes expliquent comment améliorer votre taux d'accès au cache.

Spécifiez la durée de mise CloudFront en cache de vos objets

Pour augmenter votre taux d'accès au cache, vous pouvez configurer votre origine de sorte qu'une directive Cache-Control max-age soit ajoutée à vos objets et spécifier la valeur pratique la plus longue pour max-age. Plus la durée du cache est courte, plus il CloudFront envoie fréquemment des demandes à votre origine pour déterminer si un objet a changé et pour obtenir la dernière version. Vous pouvez compléter max-age avec les directives stale-while-revalidate et stale-if-error pour améliorer davantage le taux d'accès au cache sous certaines conditions. Pour de plus amples informations, veuillez consulter Gérer la durée pendant laquelle le contenu reste dans le cache (expiration).

Utiliser Origin Shield

CloudFront Origin Shield peut contribuer à améliorer le taux de réussite du cache de votre CloudFront distribution, car il fournit une couche de mise en cache supplémentaire devant votre source d'origine. Lorsque vous utilisez Origin Shield, toutes les demandes de toutes les couches CloudFront de mise en cache envoyées à votre origine proviennent d'un seul endroit. CloudFront peut récupérer chaque objet à l'aide d'une seule demande d'origine provenant d'Origin Shield, et toutes les autres couches du CloudFront cache (emplacements périphériques et caches périphériques régionaux) peuvent récupérer l'objet depuis Origin Shield.

Pour de plus amples informations, veuillez consulter Utilisation d'Amazon CloudFront Origin Shield.

Mise en cache basée sur les paramètres de chaîne de requête

Si vous configurez CloudFront la mise en cache en fonction des paramètres de chaîne de requête, vous pouvez améliorer la mise en cache en procédant comme suit :

  • Configurez CloudFront pour transmettre uniquement les paramètres de chaîne de requête pour lesquels votre origine renverra des objets uniques.

  • Utilisez la même casse (majuscules ou minuscules) pour toutes les instances du même paramètre. Par exemple, si une demande contient parameter1=A et qu'une autre contientparameter1=a, CloudFront transfère des demandes distinctes à votre origine lorsqu'une demande contient parameter1=A et lorsqu'une demande contientparameter1=a. CloudFront met ensuite en cache séparément les objets correspondants renvoyés par votre origine séparément, même s'ils sont identiques. Si vous utilisez just A ora, CloudFront vous transférez moins de demandes à votre source.

  • Listez les paramètres dans le même ordre. Comme dans le cas des différences de cas, si une demande pour un objet contient la chaîne de requête parameter1=a&parameter2=b et qu'une autre demande pour le même objet contientparameter2=b&parameter1=a, CloudFront transmet les deux demandes à votre origine et met en cache séparément les objets correspondants, même s'ils sont identiques. Si vous utilisez toujours le même ordre pour les paramètres, CloudFront vous transférez moins de demandes à votre source.

Pour de plus amples informations, veuillez consulter Contenu du cache basé sur les paramètres de chaîne de requête. Si vous souhaitez consulter les chaînes de requête qui CloudFront sont transmises à votre origine, consultez les valeurs dans la cs-uri-query colonne de vos fichiers CloudFront journaux. Pour de plus amples informations, veuillez consulter Configuration et utilisation de journaux standard (journaux d'accès).

Mise en cache basée sur des valeurs de cookie

Si vous configurez CloudFront la mise en cache en fonction des valeurs des cookies, vous pouvez améliorer la mise en cache en procédant comme suit :

  • Configurez CloudFront pour transférer uniquement les cookies spécifiés au lieu de transférer tous les cookies. Pour les cookies que vous configurez CloudFront pour rediriger vers votre origine, CloudFront transmet chaque combinaison de nom et de valeur du cookie. Il met ensuite en cache séparément les objets renvoyés par votre origine, même s'ils sont tous identiques.

    Supposons, par exemple, que les utilisateurs incluent deux cookies dans chaque demande, que chaque cookie possède trois valeurs possibles et que toutes les combinaisons de valeurs de cookies soient possibles. CloudFront transmet jusqu'à six demandes différentes à votre origine pour chaque objet. Si votre origine renvoie différentes versions d'un objet en fonction d'un seul des cookies, cela signifie qu' CloudFront il transmet plus de demandes à votre origine que nécessaire et met inutilement en cache plusieurs versions identiques de l'objet.

  • Créez des comportements de cache distincts pour le contenu statique et dynamique, et configurez CloudFront pour transférer les cookies vers votre origine uniquement pour le contenu dynamique.

    Supposons, par exemple, que vous n'ayez qu'un seul comportement de cache pour votre distribution et que vous utilisiez la distribution à la fois pour du contenu dynamique, tel que .js des fichiers, et pour .css des fichiers qui changent rarement. CloudFront met en cache des versions distinctes de vos .css fichiers en fonction des valeurs des cookies, de sorte que chaque emplacement CloudFront périphérique transmet une demande à votre origine pour chaque nouvelle valeur de cookie ou combinaison de valeurs de cookie.

    Si vous créez un comportement de cache qui suit le modèle de chemin *.css et qui CloudFront ne met pas en cache en fonction des valeurs des cookies, CloudFront vous transférez les demandes de .css fichiers à votre origine uniquement pour la première demande reçue par un emplacement périphérique pour un .css fichier donné et pour la première demande après l'expiration d'un .css fichier.

  • Si possible, créez des comportements de cache distincts pour les contenus dynamiques pour lesquels les valeurs de cookie sont uniques pour chaque utilisateur (comme un ID utilisateur) et les contenus dynamiques qui varient selon un plus petit nombre de valeurs uniques.

Pour de plus amples informations, veuillez consulter Contenu du cache basé sur les cookies. Si vous souhaitez consulter les cookies qui sont CloudFront transférés vers votre source, consultez les valeurs dans la cs(Cookie) colonne de vos fichiers CloudFront journaux. Pour de plus amples informations, veuillez consulter Configuration et utilisation de journaux standard (journaux d'accès).

Mise en cache basée sur des valeurs d'en-tête

Si vous configurez CloudFront la mise en cache en fonction des en-têtes de demande, vous pouvez améliorer la mise en cache en procédant comme suit :

  • Configurez CloudFront pour transférer et mettre en cache en fonction uniquement des en-têtes spécifiés au lieu du transfert et de la mise en cache en fonction de tous les en-têtes. Pour les en-têtes que vous spécifiez, CloudFront transfère chaque combinaison de nom et de valeur d'en-tête. Il met ensuite en cache séparément les objets que votre origine renvoie, même s'ils sont tous identiques.

    Note

    CloudFront transmet toujours à votre origine les en-têtes spécifiés dans les rubriques suivantes :

    Lorsque vous configurez la mise CloudFront en cache en fonction des en-têtes de demande, vous ne modifiez pas les en-têtes qui CloudFront sont transférés, mais uniquement si les objets sont mis en CloudFront cache en fonction des valeurs des en-têtes.

  • Essayez d'éviter d'effectuer la mise en cache en fonction d'en-têtes de demande qui ont des nombres importants de valeurs uniques.

    Par exemple, si vous souhaitez diffuser différentes tailles d'image en fonction de l'appareil de l'utilisateur, ne configurez CloudFront pas le cache en fonction de l'User-Agenten-tête, qui comporte un très grand nombre de valeurs possibles. Configurez plutôt CloudFront pour mettre en cache en fonction des en-têtes CloudFront de type de périphériqueCloudFront-Is-Desktop-Viewer,CloudFront-Is-Mobile-Viewer, CloudFront-Is-SmartTV-Viewer et. CloudFront-Is-Tablet-Viewer De plus, si vous renvoyez la même version de l'image pour des tablettes et des ordinateurs de bureau, transmettez uniquement l'en-tête CloudFront-Is-Tablet-Viewer, pas l'en-tête CloudFront-Is-Desktop-Viewer.

Pour de plus amples informations, veuillez consulter Contenu du cache basé sur les en-têtes des demandes.

Supprimer l'en-tête Accept-Encoding lorsqu'une compression n'est pas nécessaire

Si la compression n'est pas activée, parce que l'origine ne la prend pas en charge, CloudFront ne la prend pas en charge ou parce que le contenu n'est pas compressible, vous pouvez augmenter le taux de réussite du cache en associant un comportement de cache dans votre distribution à une origine qui définit les paramètres suivants : Custom Origin Header

  • Header name (Nom de l'en-tête: Accept-Encoding

  • Header value (Valeur de l'en-tête) : (laisser vide)

Lorsque vous utilisez cette configuration, elle CloudFront supprime l'Accept-Encodingen-tête de la clé de cache et ne l'inclut pas dans les demandes d'origine. Cette configuration s'applique à tous les contenus fournis CloudFront par la distribution à partir de cette origine.

Diffusez du contenu multimédia sur HTTP

Pour plus d'informations sur l'optimisation de la vidéo à la demande (VOD) et du contenu vidéo en streaming, consultezVidéo à la demande et diffusion vidéo en direct avec CloudFront.