PERF05-BP05 Choisir des protocoles réseau afin d'améliorer les performances
Évaluez les exigences de performance de votre charge de travail et choisissez les protocoles réseau qui optimisent la performance globale de votre charge de travail.
Il existe une relation entre la latence et la bande passante pour atteindre le débit. Par exemple, si votre transfert de fichiers utilise le protocole de contrôle de transmission (TCP), des latences plus élevées réduiront le débit global. Il existe des approches pour résoudre ce problème avec le réglage du protocole TCP et les protocoles de transfert optimisés. Certaines approches utilisent le protocole UDP (User Datagram Protocol).
Le protocole SRD (scalable reliable datagram)
Anti-modèles courants :
-
Utilisation de TCP pour toutes les charges de travail, quelles que soient les exigences de performance.
Avantages liés au respect de cette bonne pratique :
-
Pour vous assurer d'obtenir les meilleures performances pour cette charge de travail, vous devez choisir le bon protocole de communication entre les différents éléments de la charge de travail.
-
Vérifiez que vous utilisez un protocole approprié pour la communication entre les utilisateurs et les composants de la charge de travail, afin d'améliorer l'expérience globale des utilisateurs de vos applications. Par exemple, en utilisant à la fois TCP et UDP, les charges de travail VDI peuvent profiter de la fiabilité de TCP pour les données critiques et de la vitesse d'UDP pour les données en temps réel.
Niveau de risque exposé si cette bonne pratique n'est pas respectée : moyen (l'utilisation d'un protocole de réseau inapproprié peut entraîner des performances médiocres, telles que des temps de réponse lents, une latence élevée et une capacité de mise à l'échelle réduite)
Directives d'implémentation
Pour améliorer les performances de votre charge de travail, il est essentiel de comprendre les exigences en matière de latence et de débit, puis de choisir des protocoles réseau qui optimisent les performances.
Quand envisager l'utilisation du protocole TCP
Le protocole TCP assure une livraison fiable des données et peut être utilisé pour la communication entre les composants de la charge de travail où la fiabilité et la livraison garantie des données sont importantes. De nombreuses applications web reposent sur des protocoles basés sur le protocole TCP, tels que HTTP et HTTPS, pour ouvrir des sockets TCP afin de communiquer avec des serveurs sur AWS. L'e-mail et le transfert de données de fichiers sont des applications courantes qui utilisent également le protocole TCP en raison de la capacité de ce dernier à contrôler le taux d'échange de données et la congestion du réseau. L'utilisation de TLS avec TCP peut ajouter une certaine surcharge à la communication, ce qui peut entraîner une augmentation de la latence et une réduction du débit. La surcharge provient principalement de la charge supplémentaire du processus de liaison, qui peut prendre plusieurs allers-retours pour se terminer. Une fois la liaison établie, la charge de chiffrement et de déchiffrement des données devient relativement faible.
Quand envisager l'utilisation du protocole UDP
UDP est un protocole orienté sans connexion et convient donc aux applications qui nécessitent une transmission rapide et efficace, comme les données de journal, de surveillance et de VoIP. En outre, envisagez d'utiliser UDP si vous avez des composants de charge de travail qui répondent à de petites requêtes provenant d'un grand nombre de clients, afin de garantir des performances optimales de la charge de travail. Le protocole DTLS (Datagram Transport Layer Security) est l'équivalent UDP de TLS. Lors de l'utilisation de DTLS avec UDP, la charge provient du chiffrement et du déchiffrement des données, car le processus de liaison est simplifié. DTLS ajoute également une petite quantité de charge aux paquets UDP, car il inclut des champs supplémentaires pour indiquer les paramètres de sécurité et pour détecter la falsification.
Quand envisager l'utilisation du protocole SRD
Le protocole SRD (Scalable reliable datagram) est un protocole de transport en réseau optimisé pour les charges de travail à haut débit en raison de sa capacité à répartir le trafic sur plusieurs chemins et à se rétablir rapidement en cas de perte de paquets ou de défaillance d'un lien. Le SRD est donc le mieux adapté aux charges de travail du calcul haute performance (HPC) qui nécessitent un débit élevé et une communication à faible latence entre les nœuds de calcul. Il peut s'agir de tâches de traitement parallèle telles que la simulation, la modélisation et l'analyse de données qui impliquent un grand nombre de transferts de données entre les nœuds.
Étapes d'implémentation
-
Utilisez les services AWS Global Accelerator
et AWS Transfer Family pour améliorer le débit de vos applications de transfert de fichiers en ligne. Le service AWS Global Accelerator vous aide à réduire la latence entre vos appareils clients et votre charge de travail sur AWS. Avec AWS Transfer Family, vous pouvez utiliser des protocoles basés sur TCP tels que le protocole de transfert de fichiers Secure Shell (SFTP) et le protocole de transfert de fichiers sur SSL (FTPS) pour dimensionner et gérer en toute sécurité vos transferts de fichiers vers des services de stockage AWS. -
Utilisez la latence du réseau pour déterminer si le protocole TCP est adapté à la communication entre les composants de la charge de travail. Si la latence du réseau entre votre application client et le serveur est élevée, la liaison tripartite TCP peut prendre un certain temps, ce qui a un impact sur la réactivité de votre application. Des métriques telles que le délai jusqu'au premier octet (TTFB) et le temps d'aller-retour (RTT) peuvent être utilisées pour mesurer la latence du réseau. Si votre charge de travail diffuse du contenu dynamique aux utilisateurs, envisagez d'utiliser Amazon CloudFront
, qui établit une connexion persistante avec chaque origine pour le contenu dynamique afin d'éliminer le temps d'établissement de la connexion qui, autrement, ralentirait chaque demande du client. -
L'utilisation de TLS avec TCP ou UDP peut entraîner une augmentation de la latence et une réduction du débit de votre charge de travail en raison de l'impact du chiffrement et du déchiffrement. Pour de telles charges de travail, envisagez d'activer le déchargement SSL/TLS sur Elastic Load Balancing
pour améliorer les performances de la charge de travail en permettant à l'équilibreur de charge de gérer les processus de chiffrement et de déchiffrement SSL/TLS au lieu de laisser les instances dorsales s'en charger. Cela peut contribuer à réduire l'utilisation du CPU sur les instances dorsales, ce qui peut améliorer les performances et augmenter la capacité. -
Utilisez le Network Load Balancer (NLB)
pour déployer des services qui reposent sur le protocole UDP, tels que l'authentification et l'autorisation, la journalisation, le DNS, l'IoT et le streaming média, afin d'améliorer les performances et la fiabilité de votre charge de travail. Le NLB distribue le trafic UDP entrant sur plusieurs cibles, ce qui vous permet de faire évoluer votre charge de travail horizontalement, d'augmenter la capacité et de réduire les frais généraux associés à une seule cible. -
Pour vos charges de travail de calcul haute performance (HPC), envisagez d'utiliser la fonctionnalité Elastic Network Adapter (ENA) Express
qui utilise le protocole SRD pour améliorer les performances du réseau en fournissant une bande passante à flux unique plus élevée (25 Gbps) et une latence de queue plus faible (99,9 %) pour le trafic réseau entre les instances EC2. -
Utilisez l'Application Load Balancer (ALB) pour router et répartir votre trafic gRPC (Remote Procedure Calls) entre les composants de la charge de travail ou entre les clients et les services gRPC. gRPC utilise le protocole HTTP/2 basé sur TCP pour le transport et offre des avantages en termes de performances, tels qu'une empreinte réseau plus légère, la compression, une sérialisation binaire efficace, la prise en charge de nombreux langages et le streaming bidirectionnel.
Ressources
Documents connexes :
Vidéos connexes :
-
Connectivity to AWS and hybrid AWS network architectures (NET317-R1)
-
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1)
-
Tuning Your Cloud: Improve Global Network Performance for Application
(Optimiser votre cloud : améliorer les performances du réseau mondial pour les applications)
Exemples connexes :