View a markdown version of this page

Augmenter la proportion de demandes traitées directement depuis les CloudFront caches (taux d'accès au 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 depuis les CloudFront caches (taux d'accès au cache)

Vous pouvez améliorer les performances en augmentant la proportion de demandes de vos spectateurs 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 le taux d'accès de votre cache, vous pouvez configurer votre origine pour ajouter une directive Cache-Control max-age à vos objets et spécifier la valeur la plus longue possible pour. max-age Plus la durée du cache est courte, plus les requêtes sont CloudFront envoyées fréquemment à 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 plus d’informations, consultez Gestion de la durée de conservation de contenu dans le cache (expiration).

Utilisation d’Origin Shield

CloudFront Origin Shield peut contribuer à améliorer le taux d'accès au cache de votre CloudFront distribution, car il fournit une couche de mise en cache supplémentaire devant votre origine. Lorsque vous utilisez Origin Shield, toutes les requêtes de toutes les couches de CloudFront mise en cache adressées à votre origine proviennent d'un seul emplacement. CloudFront peut récupérer chaque objet à l'aide d'une seule demande d'origine depuis 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 plus d’informations, consultez Utiliser 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 ne transmettre que 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 en contientparameter1=a, CloudFront transmet des demandes distinctes à votre origine lorsqu'une demande contient parameter1=A et quand une demande contientparameter1=a. CloudFront met ensuite en cache séparément les objets correspondants renvoyés séparément par votre origine, même s'ils sont identiques. Si vous utilisez uniquement A ou a, CloudFront réachemine moins de requêtes vers votre origine.

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

Pour plus d’informations, consultez Mise en cache de contenu basée 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 plus d’informations, consultez Journaux d'accès (journaux standard).

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 pour qu' CloudFront ils soient redirigés vers votre site d'origine, CloudFront ils transmettent toutes les combinaisons de nom et de valeur des cookies. 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 ait trois valeurs possibles et que toutes les combinaisons de valeurs de cookies soient possibles. CloudFront transmet jusqu'à neuf demandes différentes à votre source pour chaque objet. Si votre origine renvoie différentes versions d'un objet sur la base d'un seul des cookies, cela signifie qu' CloudFront il transmet plus de demandes que nécessaire à votre origine 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 cette distribution à la fois pour le contenu dynamique, tel que .js les fichiers, et pour .css les 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.

    Supposons que vous créiez un comportement de cache dont le modèle de chemin est *.css défini et que le comportement ne soit pas mis en cache en fonction des valeurs des cookies. Dans ce cas, CloudFront transfère les demandes de .css fichiers à votre origine uniquement pour la première demande qu'un emplacement périphérique reçoit 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 plus d’informations, consultez Mise en cache de contenu basée sur des cookies. Si vous souhaitez consulter les cookies qui redirigent CloudFront vers votre site d'origine, consultez les valeurs dans la cs(Cookie) colonne de vos fichiers CloudFront journaux. Pour plus d’informations, consultez Journaux d'accès (journaux standard).

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 uniquement en fonction des en-têtes spécifiés au lieu de transférer et de mettre 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 CloudFront la mise 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 d'en-tête.

  • 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 la mise en 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 du CloudFront 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 plus d’informations, consultez Mise en cache de contenu basée sur des en-têtes de 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 le prend pas en charge ou parce que le contenu n'est pas compressible, vous pouvez augmenter le taux d'accès du cache en associant un comportement de cache dans votre distribution à une origine qui définit comme suit : 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, CloudFront supprime l'Accept-Encodingen-tête de la clé de cache et n'inclut pas l'en-tête dans les demandes d'origine. Cette configuration s'applique à tout le CloudFront contenu diffusé à partir de cette origine.

Diffusion de contenu multimédia via HTTP

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