Simple Queue Service : Tout savoir sur le Service de messagerie d’AWS

-
4
 m de lecture
-

Amazon Simple Queue Service (SQS) est un service de messagerie entièrement géré, proposé par Amazon Web Services (AWS). Il permet aux développeurs de créer des applications hautement évolutives, fiables et résistantes en utilisant une architecture de microservices.

Avant d’entrer plus loin dans le sujet, il faut bien comprendre ce qu’est un service de messagerie dans le contexte du cloud computing : ici, ce type de service permet à différents composants d’une application distribuée de communiquer entre eux, par le biais de transmission de messages. Ces messages peuvent être des demandes de traitement, des informations, des notifications, etc.

Quelles sont les fonctionnalités de SQS AWS ?

Amazon SQS est riche en fonctionnalités. Le tableau ci-après vous permettra d’en savoir plus quant aux plus communes :

Fonctionnalité Description
Files d’attente Il s’agit d’une fonctionnalité clé de SQS. Il existe deux types de file d’attente :
  • Standard : file d’attente par défaut, qui supporte un nombre de transaction quasi-illimité pour chaque action d’API. Les files standard demandent plus d’attention car les messages délivrés ne sont pas garantis de l’être dans l’ordre.
    • → Ces files sont le choix par défaut pour la plupart des cas d’utilisation, tant que vous n’avez pas besoins de recevoir les messages dans l’ordre exact
  • FIFO (First In First Out) : garantit que les messages sont délivrés exactement dans l’ordre d’envoi, et supporte jusqu’à 300 transactions par secondes par action de l’API. Les files FIFO fournissent un processus qui fait que les messages sont délivrés exactement seule fois et restent disponibles tant qu’ils n’ont pas été consultés ou supprimés.
    • → Ces files sont plus adaptées aux besoins qui requiert que les messages arrivent dans l’ordre précis d’envoi avec un traitement unique, comme les transactions financières
    Asynchrone Avec une fonctionnalité de messagerie asynchrone, SQS permet de décharger les applications des tâches de surveillances constantes de l’arrivée de nouveaux messages
    Fiabilité Le délivrement des messages est garantie au moins une fois, et SQS propose également des mécanismes de réplication et de redondance pour éviter les pertes
    Scalabilité SQS peut gérer de très grands volumes de messages et de très grandes charges de travail
    Délais d’attente Des délais peuvent être imposés dans le but d’éviter que les messages soient traités trop rapidement ou trop tard
    Accès distant Via des APIs REST ou des SDK (Software Deployment Kit) pour de nombreux langages de programmation, les développeurs peuvent facilement intégrer SQS dans leurs applications
    Intégration AWS SQS s’intègre parfaitement avec d’autres services AWS, comme S3, EC2, Lambda ou encore SNS pour créer des architectures distribuées
    Sécurité L’authentification et la gestion des accès grâce à IAM permet à SQS d’être très sécurisé, et propose également des fonctionnalités de cryptage des données

    Comprendre le fonctionnement de Amazon SQS

    Un système de messagerie distribuée est composé de trois parties principales : les composants du système distribué, la file d’attente (gérée sur les serveurs Amazon SQS), et les messages en attente.

    Dans l’exemple suivant, notre système dispose de plusieurs producers (les producteurs de messages, ces composants chargés d’envoyer les messages en file d’attente), et de consumers (les consommateurs de message, ces composants chargés de recevoir les messages en attente). La file d’attente stocke les messages sur les serveurs SQS.

    Regardons à présent la figure suivante :

    ➡️Le producer (composant 1), envoie le message A en file d’attente, et ce message est distribué sur les serveurs Amazon SQS de manière redondante. 

    ➡️Lorsqu’un consumer (composant 2) est prêt à s’occuper du message, on dit qu’il le “consomme” de la file, et le message A est ainsi retourné, entamant par la même occasion un timer de visibilité (paramétrable).

    ➡️Pendant son traitement, il reste en file et n’est pas transmis aux demandes de réception suivante pendant la durée du timer. Le consumer supprime le message A de la file pour empêcher qu’il soit reçu et traité de nouveau une fois le délai de visibilité expiré.

    Dans quels cas peut-on utiliser SQS AWS ?

    Amazon SQS inclut les différents cas d’utilisation suivants : 

    • Découplage des application : cela permet une meilleure scalabilité, une plus grande résilience et une meilleure isolation entre les composants
    • Traitement en arrière plan : SQS peut traiter les tâches en arrière plan afin de libérer les ressources du serveur, et par conséquent d’améliorer les performances globales
    • Gestion des files d’attente : les applications peuvent traiter les messages à leur rythme sans avoir besoin d’un traitement en temps réel
    • Architecture de micro-service : SQS améliore la communication entre les différents micro-services
    • Traitement des tâches distribuées : la possibilité de traiter des données volumineuses améliore la performance globale de l’application et réduit les temps de traitement.

    Amazon SQS versus Apache Kafka

    Ces 2 solutions de messagerie en temps réel sont utilisées dans les architectures de microservices et d’applications distribuées. Souvent comparées, elles ont néanmoins quelques différences clés : 

    ➡️ En termes d’architecture, SQS est entièrement gérée par Amazon, et permet donc de s’affranchir de tous les aspects infrastructure, disponibilité et sécurité. En revanche, Kafka est open-source et nécessite une configuration et une gestion plus avancées.

    ➡️ Kafka est souvent préféré lorsqu’il est nécessaire d’avoir un débit très élevé et une latence minimale. SQS fournit malgré tout une latence de l’ordre de quelques millisecondes, mais reste généralement moins rapide que Kafka.

    ➡️ SQS est conçu pour être hautement évolutif, mais est plus limité en termes de fonctionnalités que Kafka, qui, quant à lui, est très flexible et peut être utilisé dans une plus large gamme de cas d’utilisation

    ➡️ Etant donné que SQS est construit sur l’infrastructure Amazon, il dispose d’une sécurité très élevée. Kafka peut également être sécurisé, moyennant un investissement et des configuration plus poussées.

    Nous pouvons conclure que SQS, sans surprise, convient particulièrement aux applications basées sur AWS, alors que Kafka, de part son statut open-source, est plus flexible  et plus riche en fonctionnalité, mais demande également bien plus d’investissement dans sa configuration et sa gestion

    Etude de cas : La NASA

    Qui ne connaît pas l’Agence nationale de l’espace et de l’aéronautique, la NASA ?

    En 2017, la NASA a lancé une bibliothèque de contenu appelée “NASA Image and Video Library”, qui permet aux utilisateurs de rechercher, visualiser et télécharger les différents contenus multimédia de la NASA. Cependant, la mise en place d’une telle plateforme a posé de nombreux défis techniques pour les équipes de développement. L’un d’eux était la gestion de la file d’attente des tâches de traitement des médias.

    Pour résoudre ce défi, la NASA s’est orientée vers le service Amazon SQS, grâce auquel ils ont pu découpler les tâches de traitement de la file d’attente principale, ce qui a permis de réduire la pression sur les serveurs et donc d’améliorer les performances de leur système.

    Avec l’intégration entre les différents services Amazon, la NASA a également utilisé Amazon S3 pour le stockage des fichiers, mais également d’autres services, tels que Amazon EC2, RDS ou encore DynamoDB.

    Amazon SQS a donc pu aider la NASA à relever les défis de sa plateforme de contenu en offrant une solution de messagerie fiable et scalable pour gérer le traitement des médias.

    Conclusion

    Amazon SQS est un service de messagerie asynchrone fiable et scalable qui permet aux applications distribuées et aux microservices de communiquer entre eux. Il s’avérera être en choix idéal si vous souhaitez simplifier la communication entre les différents composants de votre application.

    Si vous désirez en savoir un peu plus sur Amazon SQS, nous vous invitons à découvrir notre formation dédier à Amazon Web Services

    Facebook
    Twitter
    LinkedIn

    DataScientest News

    Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

    Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

    Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

    Newsletter icone
    icon newsletter

    DataNews

    Vous souhaitez recevoir notre
    newsletter Data hebdomadaire ?