« AWS messaging solutions » : laquelle choisir entre SQS, SNS, EventBridge, Kinesis Data Streams / Firehose ?

, ,
AWS messaging solutions SQS, SNS, EventBridge, Kinesis Data Streams Firehose

Dans une architecture serverless, les “Messaging services” sont nécessaires pour permettre aux solutions (applications, logiciels) de communiquer entre elles, et d’échanger des données. Sur AWS, plusieurs de ces services sont disponibles. Nous vous présentons les 4 principaux : Amazon Simple Queue service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS), Amazon EventBridge et Kinesis Data Streams / Firehose. Zoom sur le type de transfert d’information proposé (file d’attente, notification, bus d’événements & streams) et sur leur fonctionnement.

“Messaging services” : à quoi servent-ils sur AWS ?

Sur le cloud AWS, les “Messaging services” permettent à différents systèmes (logiciels, applications et appareils finaux) de communiquer et d’échanger des informations, et ce, même s’ils n’utilisent pas les mêmes langages de programmation, et s’ils sont installés sur des plateformes différentes.

Ces services sont primordiaux dans une architecture serverless. En effet, la plupart d’entre elles utilisent une combinaison de différents services AWS, microservices et fonctions AWS Lambda. Sans ces solutions, impossible pour elles de se transmettre les données nécessaires à la production.

Sur Amazon Web Services, il en existe plusieurs, chacun ayant des fonctionnalités bien précises. Avant d’en choisir un, nous vous conseillons de faire le point sur vos besoins et vos objectifs. Quel type de transfert d’informations souhaitez-vous mettre en place entre vos différents systèmes ?

Dans cet article, nous vous proposons de découvrir les quatre modèles de transfert d’information les plus utilisés par les développeurs : les files d’attente, les notifications, et les bus d’événements. Sur AWS, ces modèles sont fournis respectivement par les services Amazon SQS, Amazon SNS, Amazon EventBridge et Kinesis Data Streams / Firehose. Ces 4 services sont entièrement gérés et hautement disponibles, il n’y a donc pas d’infrastructure à gérer. Ils vous permettent de publier des messages via le kit AWS SDK et d’appeler des fonctions en tant que cibles.

Quand utiliser Amazon Simple Queue Service (AWS SQS) ?

Quand et comment utiliser Amazon Simple Queue Service (SQS)

Type de transfert d’information : file d’attente

SQS fournit des files d’attente pour vos applications Serverless. Vous pouvez utiliser une file d’attente pour envoyer, stocker et recevoir des messages entre différents composants logiciels.

SQS propose un traitement asynchrone des messages. Chaque message ne doit être traité qu’une seule fois par une seule instance de consommateur (Lambda ou parc de machines EC2).

Quantité et durée de traitement de message : nombre de messages illimité / 14 jours

SQS évolue de manière élastique, il n’y a pas de limite au nombre de messages par file d’attente. Le service conserve pendant 14 jours les messages jusqu’à ce qu’ils soient traités par un consommateur en aval (Lambda ou parc de machines EC2).

SQS propose deux types de files d’attente de messages :

  • Les files d’attente standard offrent un débit maximal, respectent l’ordre dans la mesure du possible et livrent les messages au moins une fois.
  • Les files d’attente FIFO sont conçues pour garantir que les messages sont traités uniquement une fois, dans l’ordre dans lequel ils sont envoyés.

Comment créer une file d’attente SQS
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/create-queue-cloudformation.html

Pour en savoir + | https://aws.amazon.com/fr/sqs/

Quand utiliser Amazon Simple Notification Service (AWS SNS) ?

Quand et comment utiiser Amazon Simple Notification Service (SNS)

Type de transfert d’information : communication vers des applications ou des personnes

SNS est un service de messagerie utile pour une communication d’application à application (A2A) et d’application à personne (A2P).

Relation one-to-many

Ce service propose une relation one-to-many. Ainsi, un message peut être envoyé à plusieurs consommateurs. Ce comportement est appelé fan-out. Un sujet SNS peut avoir jusqu’à 12 500 000 abonnés, offrant des capacités de diffusion hautement évolutives.

En utilisant les rubriques Amazon SNS, vos systèmes d’édition peuvent envoyer des messages vers des systèmes d’abonnés, y compris les files d’attente Amazon SQS, les fonctions AWS Lambda et les points de terminaison HTTP/S, pour un traitement parallèle, sans oublier Amazon Kinesis Data Firehose.

Service push

La fonctionnalité A2P vous permet d’envoyer des messages aux utilisateurs à l’échelle via SMS, Mobile Push et e-mail. À la différence de SQS, SNS ne conserve pas les messages, donc s’il n’y a pas d’abonnés pour une rubrique, le message est rejeté.

Comment filtrer les messages publiés vers des rubriques avec Amazon Simple Notification Service (SNS) et Amazon Simple Queue Service (SQS) |
https://aws.amazon.com/fr/getting-started/hands-on/filter-messages-published-to-topics/

Pour en savoir + | https://aws.amazon.com/fr/sns/

Quand utiliser Amazon EventBridge ?

comment et pourquoi utiliser Amazon EventBridge

Type de transfert d’information : bus d’événements

EventBridge connecte les services AWS, les fournisseurs de logiciels en tant que service (SaaS) et vos propres applications à l’aide d’événements. Un événement est un signal indiquant que l’état d’un système a changé, par exemple, le changement d’état d’un ticket de support client. Les clients peuvent intégrer à leurs propres applications AWS des microservices, des applications SaaS et des applications personnalisées sous la forme de sources d’événements qui publient des événements dans un bus d’événements.

Architectures basées sur les événements

EventBridge simplifie le processus de création d’architectures basées sur les événements. Vous pouvez filtrer et transformer les messages entrants au niveau du service et acheminer les événements vers plusieurs cibles, y compris les fonctions Lambda.

Écriture de code personnalisé

EventBridge simplifie la connexion d’applications. Vous pouvez ajouter, filtrer, transformer et délivrer des événements sans écrire de code personnalisé. Le registre de schémas EventBridge stocke une collection de schémas d’événements faciles à trouver et vous permet de télécharger des liaisons de code pour ces schémas dans votre IDE afin de représenter l’événement sous la forme d’un objet fortement typé dans votre code.

Comment créer un schéma Amazon EventBridge |
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema-create.html

Pour en savoir + | https://aws.amazon.com/fr/eventbridge/

Quand utiliser Amazon Kinesis Data Streams / Firehose ?

Pourquoi et comment utiliser Amazon Kinesis Data Streams

Type de transfert d’information : flux de données

Amazon Kinesis facilite la collecte, le traitement et l’analyse de données en streaming en temps réel, afin d’obtenir rapidement des informations stratégiques et de réagir rapidement. Avec Amazon Kinesis, vous pouvez intégrer des données en temps réel, les analyser à mesure de leur réception et réagir instantanément au lieu d’attendre que toutes les données soient collectées pour démarrer leur traitement.

2 types flux de données

  • Kinesis Data Streams est un service de streaming de données en temps réel, capable de capturer en continu plusieurs gigaoctets de données par seconde à partir de centaines de milliers de sources (clics de sites Web, flux d’événements de bases de données, transactions financières, flux de médias sociaux, journaux informatiques, événements de localisation). Les données collectées sont disponibles en millisecondes pour permettre l’utilisation d’analyses en temps réel telles que les tableaux de bord en temps réel, la détection des anomalies en temps réel, la tarification dynamique
  • Kinesis Data Firehose est le moyen le plus simple de capturer, transformer et charger des flux de données dans des magasins de données AWS pour des analyses en temps quasi réel avec des outils d’aide à la décision existants. Il peut capturer, transformer et diffuser des données de streaming vers Amazon S3, Amazon Redshift, Amazon Elasticsearch Service, des points de terminaison HTTP génériques et des fournisseurs de services tels que Datadog, New Relic, MongoDB et Splunk. Il peut également regrouper, compresser, transformer et chiffrer vos flux de données avant de les charger, ce qui réduit l’espace de stockage utilisé et renforce la sécurité.

Pour en savoir + | https://aws.amazon.com/fr/kinesis/

Choisir un service de messagerie approprié n’est pas toujours simple ! 

Dans certains cas, il vous sera nécessaire de combiner deux de ces services ou +. 

N’hésitez pas à consulter la documentation AWS de chaque service. 

Et si vous souhaitez être accompagné sur leur mise en place, contactez-nous !


A LIRE ÉGALEMENT