Présentation

Les charges de travail telles que les API dynamiques ou les pages Web très personnalisées sont minimes, voire ne peuvent pas être mises en cache. Elles bénéficient toutefois de la sécurité et de l'accélération fournies par les services de périphérie d'AWS, tels que CloudFront et Global Accelerator. Les services de périphérie d'AWS fonctionnent sur des centaines de points de présence (PoP) répartis dans le monde entier en 20 à 30 millisecondes en moyenne par rapport aux utilisateurs. Le trafic vers l'origine est renvoyé via le réseau mondial AWS au lieu de passer par l'Internet public. L'infrastructure mondiale AWS est une infrastructure privée spécialisée, hautement disponible et à faible latence construite sur un réseau de fibre optique métropolitain mondial entièrement redondant qui est relié par des câbles terrestres et transocéaniques à travers le monde.

Accélération dynamique avec CloudFront

En plus de mettre fin à la connexion TCP/TLS plus près des utilisateurs, CloudFront accélère le contenu dynamique :

  • En diffusant du contenu via des protocoles Internet modernes tels que QUIC ou TLS1.3, même si l'origine ne le prend pas en charge.
  • En maintenant les connexions avec l'origine. Parfois, la demande doit être transmise à l'origine, par exemple lorsque le contenu n'est pas présent dans le cache local ou lorsqu'il est purement dynamique, comme dans le cas des API. Les demandes transmises via des connexions persistantes depuis des PoP n'ont pas besoin d'établir une nouvelle connexion TCP/TLS vers l'origine, ce qui supprime la latence liée à plusieurs allers-retours et maintient les fenêtres TCP à l'échelle. Vous pouvez améliorer la réutilisation des connexions en augmentant le délai d'expiration de TCP Keep-Alive sur votre origine et dans la configuration CloudFront, et éventuellement en activant Origin Shield. En outre, la baisse du taux d'établissement de la connexion à l'origine réduit son coût en termes de mise à l'échelle. Plus précisément, pour les origines basées sur EC2 et ALB, cela se traduit par une baisse des frais de transfert de données sortantes (DTO), car les frais de DTO liés à l'envoi de certificats TLS depuis l'origine seront réduits. Notez que CloudFront ne prend pas en compte les frais généraux liés au protocole TLS dans ses calculs DTO. Vous pouvez améliorer la réutilisation des connexions sur CloudFront en activant Origin Shield.
    Dans les témoignages vidéo ci-dessous, Tinder et Slack expliquent comment CloudFront les aide à réduire de manière significative le temps de réponse de leurs API.

Dans les témoignages vidéo ci-dessous, Tinder et Slack expliquent comment CloudFront les aide à réduire de manière significative le temps de réponse de leurs API.

Slack témoigne sur l'accélération sécurisée des API avec Amazon CloudFront
Optimisation des performances dans CloudFront : chaque milliseconde compte !

Pour plus d'informations sur la manière dont CloudFront optimise le trafic dynamique HTTP, consultez ce blog. En outre, ce blog explique comment utiliser un script python afin de mieux comprendre comment CloudFront améliore les performances des demandes dynamiques HTTP.

Pour utiliser CloudFront en tant que proxy inverse, vous devez configurer le Cache désactivé la Politique de gestion du cache dans votre distribution, dans le comportement de cache approprié. Cela indiquera à CloudFront de transférer les demandes reçues des PoP directement à votre origine. Par défaut, si vous ne configurez pas explicitement de politique de demande d'origine, CloudFront supprime les cookies, les paramètres de demande et la plupart des en-têtes avant de transmettre la demande à votre origine. Exceptionnellement, CloudFront envoie l'en-tête de l'hôte avec la valeur du nom de domaine de votre origine, ajoute l'en-tête X-Forwarded-For incrémenté par l'IP du demandeur, et remplace l'en-tête User-Agent avec la valeur d'Amazon CloudFront. Notez que lorsque CloudFront est configuré en tant que proxy inverse, il ne compresse pas les réponses à l'aide de Gzip ou de Brotli.

Si vous souhaitez que certains attributs de demande soient transmis à CloudFront, vous devez les configurer explicitement dans la politique de demande d'origine. Par exemple, vous pouvez transmettre tous les attributs de demande reçus par l'utilisateur en configurant la politique de demande d'origine gérée AllViewer. Notez que dans ce cas, CloudFront envoie l'en-tête de l'hôte tel qu'il a été reçu par l'utilisateur, au lieu d'envoyer la valeur du nom de domaine de votre origine. Lorsque l'origine de votre API attend son nom de domaine d'origine dans l'en-tête de l'hôte, par exemple avec API Gateway, configurez plutôt la politique de demande d'origine gérée AllViewerExceptHostHeader.

Pour enrichir la demande transférée avec des métadonnées provenant de CloudFront, telles que le pays de l'utilisateur ou des informations sur son appareil, configurez les en-têtes CloudFront correspondants dans la politique de demande d'origine. Pour les en-têtes dynamiques personnalisés, tels que True-Client-IP, utilisez une fonction CloudFront lors d'un événement de demande d'utilisateur pour les ajouter en amont.

Pour tester l'amélioration des performances du contenu dynamique avec CloudFront, consultez cet atelier.

Accélération dynamique avec Global Accelerator

Global Accelerator achemine le trafic des utilisateurs vers le PoP le plus proche à l'aide de BGP Anycast. De là, Global Accelerator achemine le trafic de vos utilisateurs vers votre point d'origine via la dorsale Amazon. Global Accelerator améliore encore les performances à l'aide des techniques suivantes :

  • Support de trame Jumbo. En activant les trames jumbo entre l'emplacement périphérique AWS et le point de terminaison de l'application dans la région AWS, Global Accelerator est en mesure d'envoyer et de recevoir jusqu'à 6 fois plus de données (charge utile) dans chaque paquet. La prise en charge des trames Jumbo réduit le temps total nécessaire à la transmission des données entre les utilisateurs et votre application.
  • Terminaison TCP à la périphérie. Global Accelerator réduit le temps de configuration TCP initial en établissant une connexion TCP entre le client et le PoP AWS le plus proche du client. Presque simultanément, une deuxième connexion TCP est établie entre le PoP et le point de terminaison de l'application dans la région AWS.
  • Grande fenêtre latérale de réception, tampons TCP et fenêtre de congestion. Pour le trafic TCP terminé, Global Accelerator est capable de recevoir et de mettre en mémoire tampon de plus grandes quantités de données en provenance de votre application sur une période plus courte en ajustant les paramètres de la fenêtre latérale de réception et de la mémoire tampon TCP sur l'infrastructure périphérique AWS. Cela permet des téléchargements plus rapides pour vos clients, qui récupèrent désormais les données dans un délai plus court, directement depuis la périphérie d'AWS. En transmettant des données via le réseau mondial AWS, Global Accelerator peut augmenter la fenêtre de congestion TCP pour envoyer de plus grandes quantités de données que ce qui est habituellement possible via l'Internet public.
Améliorer les performances et la disponibilité avec AWS Global Accelerator

Ressources

Cette page vous a-t-elle été utile ?