Accélération des performances applicatives avec AWS Global Accelerator : une analyse approfondie
Découvrez quand AWS Global Accelerator améliore la latence, le basculement et le routage IP statique pour les applications TCP et UDP mondiales.
Accélération des performances applicatives avec AWS Global Accelerator : une analyse approfondie
Lorsque vos utilisateurs sont éloignés de votre région AWS, le DNS seul ne peut pas toujours leur offrir un chemin réseau stable. AWS Global Accelerator améliore les performances des applications en fournissant aux clients des adresses IP anycast statiques et en acheminant le trafic sur le réseau mondial AWS après son entrée dans le site périphérique AWS le plus proche.
Cette analyse approfondie explique comment fonctionne Global Accelerator, où il est utile, en quoi il diffère de CloudFront et ce qu'il faut vérifier avant de le placer devant le trafic de production.
Le défi mondial : latence et performances applicatives
À mesure que les applications deviennent de plus en plus distribuées et servent des utilisateurs à travers les continents, la distance physique entre les utilisateurs et les serveurs d'applications devient un facteur critique. Les données voyagent à la vitesse de la lumière, mais la traversée de l'internet public implique de nombreux sauts, des conditions réseau variables et des points de congestion potentiels. Cela peut entraîner :
- Une latence élevée : le temps nécessaire pour que les données voyagent de l'utilisateur à l'application et inversement, ce qui a un impact direct sur la réactivité.
- Une perte de paquets : les paquets de données n'atteignent pas leur destination, ce qui nécessite des retransmissions et augmente encore la latence.
- La gigue : la variabilité des temps d'arrivée des paquets, particulièrement préjudiciable pour les applications en temps réel comme la VoIP ou les jeux.
Les approches traditionnelles, comme le simple déploiement d'instances dans plusieurs régions derrière des équilibreurs de charge régionaux, offrent une certaine amélioration mais acheminent toujours le trafic des utilisateurs sur l'internet public souvent imprévisible pour la connexion initiale. C'est là qu'un service comme Global Accelerator offre un avantage significatif.
Qu'est-ce qu'AWS Global Accelerator ?
AWS Global Accelerator est un service de mise en réseau qui améliore la disponibilité et les performances de vos applications pour les utilisateurs locaux et mondiaux. Il y parvient en dirigeant le trafic des utilisateurs vers le point de terminaison sain le plus proche via le réseau mondial AWS hautement fiable et performant. Au lieu d'acheminer le trafic sur l'internet public, Global Accelerator utilise la vaste infrastructure réseau d'AWS pour optimiser le chemin du site périphérique de l'utilisateur à vos points de terminaison d'application.
À la base, Global Accelerator vous fournit des adresses IP anycast statiques qui agissent comme des points d'entrée fixes pour votre application. Ces IP sont annoncées depuis plusieurs sites périphériques AWS dans le monde. Lorsqu'un utilisateur se connecte, son trafic est automatiquement dirigé vers le site périphérique le plus proche, et de là, il traverse le réseau privé optimisé d'AWS pour atteindre le point de terminaison d'application désigné.
Comment fonctionne AWS Global Accelerator : architecture et concepts clés
Pour comprendre la magie derrière Global Accelerator, décomposons ses composants fondamentaux et leur interaction :
Adresses IP Anycast
Contrairement aux adresses IP unicast traditionnelles qui sont uniques à un seul serveur, Global Accelerator fournit deux adresses IP anycast statiques. Ces IP sont annoncées simultanément depuis plusieurs sites périphériques AWS. Lorsqu'un utilisateur tente de se connecter à votre application en utilisant ces IP, les routeurs réseau sur l'internet dirigent leur trafic vers le site périphérique le plus proche annonçant cette adresse. Cela garantit que les utilisateurs se connectent toujours à un PoP AWS qui leur est géographiquement proche.
Réseau mondial AWS
La véritable puissance de Global Accelerator réside dans son utilisation du réseau mondial AWS. Une fois que le trafic utilisateur atteint un site périphérique AWS via l'IP anycast statique, il voyage ensuite sur le réseau de fibre optique privé à haut débit et à faible latence d'AWS jusqu'au point de terminaison d'application optimal. Cela contourne la nature imprévisible de l'internet public, ce qui conduit à des performances plus cohérentes, une gigue réduite et une latence plus faible.
Sites périphériques (Points de présence - PoP)
Ce sont des centres de données géographiquement distribués qui servent de points d'entrée et de sortie pour le trafic utilisateur entrant et sortant du réseau mondial AWS. Global Accelerator exploite ces PoP pour recevoir les connexions entrantes des utilisateurs et les transférer efficacement.
Optimisation du trafic et contrôles de santé
Global Accelerator surveille la santé des points de terminaison et achemine le trafic uniquement vers les points de terminaison sains en fonction de votre configuration d'écouteur, de groupe de points de terminaison, de cadran de trafic et de poids des points de terminaison. Si un point de terminaison devient défaillant, Global Accelerator achemine le nouveau trafic vers un autre point de terminaison sain.
Écouteurs, groupes de points de terminaison et points de terminaison
- Écouteurs : ils définissent les ports et protocoles (TCP/UDP) sur lesquels Global Accelerator accepte les connexions entrantes des clients.
- Groupes de points de terminaison : un groupe de points de terminaison est associé à une région AWS spécifique. Vous pouvez avoir plusieurs groupes de points de terminaison, chacun correspondant à une région où résident vos ressources d'application. Vous pouvez également configurer un "cadran de trafic" pour chaque groupe afin de contrôler le pourcentage de trafic qui lui est dirigé.
- Points de terminaison : ce sont les ressources réelles qui servent votre application. Pour les accélérateurs standard, les types de points de terminaison courants incluent :
- Équilibreurs de charge d'application (ALB)
- Équilibreurs de charge réseau (NLB)
- Instances EC2
- Adresses IP élastiques
- Points de terminaison de sous-réseau VPC pour les accélérateurs de routage personnalisé, qui sont un type d'accélérateur différent.
Principaux avantages de l'utilisation d'AWS Global Accelerator
L'exploitation de Global Accelerator offre plusieurs avantages convaincants pour vos applications mondiales :
- Performances améliorées et latence réduite : en acheminant le trafic sur le réseau mondial AWS, Global Accelerator réduit considérablement la latence et la gigue subies par les utilisateurs, ce qui rend l'application plus réactive et plus rapide.
- Disponibilité et tolérance aux pannes accrues : grâce aux contrôles de santé automatiques et au routage intelligent du trafic, Global Accelerator garantit que les requêtes des utilisateurs sont toujours dirigées vers des points de terminaison sains. Si une région entière ou un groupe de points de terminaison tombe en panne, le trafic est automatiquement redirigé vers le prochain point de terminaison sain disponible dans une autre région.
- Gestion simplifiée du trafic avec des IP statiques : les deux adresses IP anycast statiques fournies par Global Accelerator ne changent jamais. Cela simplifie les configurations DNS et les intégrations côté client, éliminant le besoin de mettre à jour les enregistrements DNS ou les configurations client si les points de terminaison sous-jacents de votre application changent ou se déplacent.
- Sécurité renforcée : le trafic atteignant Global Accelerator bénéficie de la protection DDoS d'AWS Shield Standard à la périphérie, contribuant à protéger votre application contre les attaques courantes au niveau réseau.
- Cadrans de trafic pour le routage pondéré : vous pouvez utiliser des cadrans de trafic pour contrôler le pourcentage de trafic dirigé vers différents groupes de points de terminaison régionaux. C'est excellent pour les tests A/B, les déploiements bleu/vert ou la maintenance planifiée.
Cas d'utilisation courants
AWS Global Accelerator est idéal pour une large gamme d'applications nécessitant des performances et une disponibilité élevées pour un public mondial :
- Applications Web mondiales : sites de commerce électronique, plateformes de diffusion de contenu, applications SaaS avec des utilisateurs répartis sur plusieurs continents.
- Serveurs de jeux : réduit la latence et améliore l'expérience réactive pour les jeux multijoueurs en ligne.
- VoIP et communication en temps réel : garantit des connexions stables et à faible latence pour la visioconférence et les appels vocaux.
- Backends IoT : fournit une connexion cohérente et à faible latence pour un grand nombre d'appareils IoT géographiquement dispersés envoyant des données.
- Reprise après sinistre : en maintenant des points de terminaison dans plusieurs régions, Global Accelerator peut basculer de manière transparente vers une région saine en cas de panne, prenant en charge des stratégies robustes de reprise après sinistre.
Configuration d'AWS Global Accelerator (étapes conceptuelles)
La configuration de Global Accelerator implique la définition de vos points d'entrée et leur orientation vers les ressources de votre application.
- Créer un accélérateur : il s'agit de la ressource de niveau supérieur qui génère vos deux adresses IP anycast statiques.
- Ajouter des écouteurs : configurez les ports et protocoles sur lesquels votre accélérateur écoutera les connexions client entrantes (par exemple, TCP 80, TCP 443, UDP 53).
- Créer des groupes de points de terminaison : pour chaque région AWS où votre application a des points de terminaison, créez un groupe de points de terminaison. Vous pouvez ajuster le "cadran de trafic" (pourcentage de trafic dirigé vers ce groupe) et configurer les paramètres de contrôle de santé spécifiques à ce groupe.
- Ajouter des points de terminaison : dans chaque groupe de points de terminaison, ajoutez vos ressources d'application (ALB, NLB, instances EC2, EIP). Vous pouvez spécifier des poids pour des points de terminaison individuels afin de distribuer davantage le trafic au sein d'un groupe de points de terminaison.
# Étapes conceptuelles dans AWS CLI (simplifiées)
# 1. Créer un accélérateur
aws globalaccelerator create-accelerator \
--name MyGlobalAppAccelerator \
--ip-address-type IPV4 \
--enabled
# 2. Créer un écouteur (par exemple, pour HTTP)
aws globalaccelerator create-listener \
--accelerator-arn <accelerator-arn> \
--port-ranges FromPort=80,ToPort=80 \
--protocol TCP \
--client-affinity NONE
# 3. Créer un groupe de points de terminaison (par exemple, dans us-east-1)
aws globalaccelerator create-endpoint-group \
--listener-arn <listener-arn> \
--endpoint-group-region us-east-1 \
--traffic-dial-percentage 100 \
--health-check-port 80 \
--health-check-protocol HTTP \
--health-check-path /health \
--endpoint-configurations EndpointId=<your-alb-arn>,Weight=100
Astuce : utilisez toujours deux adresses IP statiques pour la redondance. Global Accelerator les attribue automatiquement.
Avertissement : assurez-vous que vos groupes de sécurité et vos ACL réseau autorisent les contrôles de santé de Global Accelerator et le trafic d'application à atteindre vos points de terminaison. Le comportement de conservation de l'IP client dépend du type de point de terminaison et de la configuration.
AWS Global Accelerator vs. Amazon CloudFront
Bien que les deux services utilisent le réseau mondial et les sites périphériques d'AWS pour améliorer les performances, ils servent des objectifs principaux différents :
| Fonctionnalité | AWS Global Accelerator | Amazon CloudFront |
|---|---|---|
| Objectif principal | Améliorer les performances réseau et la disponibilité des applications (TCP/UDP) | Améliorer les performances de diffusion de contenu (HTTP/HTTPS) |
| Couche | Accélération du trafic de couche 4 pour TCP et UDP | Diffusion HTTP et HTTPS de couche 7 |
| IP statiques | Oui, deux adresses IP anycast statiques mondiales | Non, utilise des enregistrements DNS changeants pour la distribution en périphérie |
| Mise en cache | Non | Oui, met en cache le contenu aux sites périphériques |
| Cas d'utilisation | Jeux, VoIP, API, connexions persistantes, contenu dynamique | Sites Web statiques, streaming vidéo, contenu téléchargeable |
| Type de point de terminaison | ALB, NLB, instances EC2, IP élastiques ; sous-réseaux VPC pour routage personnalisé | Compartiments S3, instances EC2, équilibreurs de charge et origines HTTP |
Quand utiliser lequel ?
- Utilisez Global Accelerator lorsque vous devez améliorer les performances et la disponibilité de contenu non mis en cache, d'API, de jeux ou de toute application nécessitant des connexions persistantes ou un trafic TCP/UDP à faible latence entre les régions.
- Utilisez CloudFront lorsque vous devez diffuser du contenu statique ou dynamique mis en cache (images, vidéos, fichiers Web) aux utilisateurs avec une faible latence, souvent pour des applications Web traditionnelles.
Il est également courant d'utiliser les deux ensemble : CloudFront pour la mise en cache du contenu statique et Global Accelerator pour optimiser le chemin réseau vers le backend API dynamique de votre application.
Meilleures pratiques et considérations
- Contrôles de santé : configurez des contrôles de santé robustes qui reflètent avec précision l'état opérationnel de vos points de terminaison d'application. Ceci est crucial pour que Global Accelerator achemine correctement le trafic loin des instances défaillantes.
- Cadrans de trafic : exploitez les cadrans de trafic pour les déploiements contrôlés (par exemple, déplacer progressivement le trafic vers une nouvelle région ou version) et les scénarios de reprise après sinistre.
- Surveillance et journalisation : intégrez Global Accelerator à CloudWatch et CloudTrail pour surveiller les métriques de performance, le flux de trafic et les appels API. Cela aide à comprendre les modèles d'utilisation et à résoudre les problèmes.
- Groupes de sécurité / NACL : assurez-vous que vos configurations réseau sur les ressources backend (ALB, EC2) autorisent le trafic entrant des sondes de contrôle de santé de Global Accelerator et des IP client que Global Accelerator conserve (ou de la plage IP de Global Accelerator si la conservation de l'IP client n'est pas activée ou prise en charge).
- Gestion des coûts : comprenez le modèle de tarification, qui est basé sur le nombre d'accélérateurs provisionnés et le transfert de données sortant. Optimisez l'utilisation des points de terminaison pour gérer efficacement les coûts.
À retenir
Utilisez AWS Global Accelerator lorsque votre application a besoin d'IP globales statiques, d'un basculement régional rapide ou de meilleurs chemins TCP/UDP pour les utilisateurs répartis dans les régions. Utilisez CloudFront lorsque le principal avantage est la mise en cache HTTP et la diffusion en périphérie. Pour un déploiement en production, commencez par un écouteur, un ou deux groupes de points de terminaison régionaux, des contrôles de santé stricts et des alarmes CloudWatch avant de déplacer tout le trafic.