View a markdown version of this page

PERF04-BP05 Choix de protocoles réseau afin d’améliorer les performances - Pilier Efficacité des performances

PERF04-BP05 Choix de protocoles réseau afin d’améliorer les performances

Prenez des décisions concernant les protocoles de communication entre les systèmes et les réseaux en fonction de l’impact sur les performances de la charge de travail.

Il existe une relation entre la latence et la bande passante pour atteindre le débit. Si votre transfert de fichiers utilise le protocole de contrôle de transmission (TCP), des latences plus élevées réduiront très probablement 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. Le protocole UDP (User Datagram Protocol) est une solution possible.

Anti-modèles courants :

  • Vous utilisez TCP pour toutes les charges de travail, quelles que soient les exigences de performance.

Avantages liés au respect de cette bonne pratique : 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, le protocole UDP sans connexion permet d’obtenir une vitesse élevée, mais sans retransmission ni fiabilité élevée. Quoique complet, le protocole TCP nécessite une surcharge plus importante pour le traitement des paquets.

Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : moyen

Directives d’implémentation

Si vous avez la possibilité de choisir différents protocoles pour votre application et que vous possédez l’expertise nécessaire dans ce domaine, optimisez votre application et l’expérience de l’utilisateur final en utilisant un autre protocole. Notez que cette approche présente des difficultés importantes et ne doit être tentée que si vous avez d’abord optimisé votre application à d’autres égards.

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 pour la communication entre les composants de l’application. Les e-mails et le transfert de données de fichiers sont des applications courantes qui utilisent également le protocole TCP, car il s’agit d’un mécanisme de transfert simple et fiable entre les composants de l’application. 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, mais elle présente l’avantage de la sécurité. 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 du protocole TLS (Transport Layer Security). 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 protocole SRD est donc le mieux adapté aux charges de travail de 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 le transfert d’un gros volume 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 mettre à l’échelle 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 cliente 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 de propagation aller et retour (RTT) peuvent être utilisées pour mesurer la latence du réseau. Si votre charge de travail sert des contenus dynamiques aux utilisateurs, envisagez d’utiliser Amazon CloudFront, qui établit une connexion persistante avec chaque origine de contenu dynamique afin de supprimer le temps d’établissement de la connexion qui, sinon, 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 le délestage 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 le processus de cryptage et de décryptage SSL/TLS au lieu de laisser les instances dorsales s’en charger. Cela peut contribuer à réduire l’utilisation du processeur 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 reposant sur le protocole UDP, tels que l’authentification et l’autorisation, la journalisation, DNS, IoT et le média de streaming, 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 mettre à l’échelle 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), pensez à utiliser la fonctionnalité Adaptateur réseau élastique (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 Gbit/s) et une latence de queue plus faible (99,9 centile) pour le trafic réseau entre les instances EC2.

  • Utilisez Application Load Balancer (ALB) pour acheminer et équilibrer la charge de 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 matière 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 :

Exemples connexes :