Clément Schanen

Intégration d'applicationsService régional

SQS (Simple Queue Service) & SNS (Simple Notification Service)

Permet de mettre en file d’attente ou de diffuser des messages entre applications de façon scalable et fiable

Cette fiche couvre 2 services : SQS, SNS.

SQS

  • Modèle de queuing : le producteur écrit, le consommateur lit (polling)
  • Deux types de polling : court (par défaut) et long (recommandé)
  • Durée de rétention des messages : 4j (configurable jusqu’à 14j)
  • Taille maximum d’un message : 256 ko
  • Visibility timeout : empêche qu’un message soit traité en double
  • Sécurité : chiffrement en transit (TLS), au repos avec KMS

Types de queue

  • Deux types de queue : standard et FIFO (First In First Out)
Caractéristique Standard FIFO
Ordre Best effort Strict
Duplication Possible Aucune
Débit max Illimité 3 000/s
Coûts Moins cher Plus cher

La propriété messageDeduplicationId permet d’éviter la duplication sur une queue FIFO

La propriété messageGroupId permet de garantir l’ordre (au sein du groupe) sur une queue FIFO

SNS

  • Modèle pub/sub : un message produit est immédiatement poussé à tous les abonnés
  • Intégration avec d’autres services : SQS, Lambda, HTTPS, email, SMS, Kinesis Firehose…
  • Taille max message : 256 Ko (jusqu’à 2 Go via S3 payload)
  • Sécurité : chiffrement en transit (TLS), au repos avec KMS
  • Filter policies : routage conditionnel de messages vers certains abonnés
  • Fanout : 1 message envoyé à plusieurs consommateurs (traitement parallèle)
La diffusion d’un message par un topic SNS Un producteur publie un message sur un topic SNS, qui le distribue simultanément à deux files SQS, chacune servant son propre consommateur. Producteur TopicSNS Queue A Queue B ConsommateurA ConsommateurB

Dead Letter queue

  • Cible pour messages non traités
  • Fonctionne avec SNS et SQS
  • Utile pour le debugging
  • Permet de rejouer des events (redrive)
  • Si une queue est FIFO sa DLQ doit l’être également
  • Permet de configurer des alertes CloudWatch