Modèles pilotés par des événements avec EventBridge

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Une commande, quatre réactions

  • Une commande doit parvenir à la facturation, l'exécution, l'analytique, le courriel
  • Les appels directs aux quatre sont fragiles et lents
  • Un événement se diffuse vers chaque consommateur

Un événement se diffusant d'un sujet central vers plusieurs services en aval en parallèle

Déployer des applications sur AWS

Choisir les bons services de messagerie

Grille 2x2 des services de messagerie AWS : file SQS avec flux producteur-consommateur, diffusion pub/sub SNS vers plusieurs abonnés, EventBridge (bus d'événements) avec routage par règles, et Kinesis avec fragments ordonnés et relecture

  • SQS : une file, un groupe de consommateurs, au moins une fois
  • SNS : pub/sub, pousse un message à plusieurs abonnés
  • EventBridge : achemine selon le contenu vers plusieurs cibles
  • Kinesis Data Streams : diffusion ordonnée, relecturable
Déployer des applications sur AWS

Le modèle de diffusion (fanout)

  • Un événement doit atteindre plusieurs consommateurs en même temps
  • Publier dans un sujet SNS
  • Chaque file SQS s'abonne au sujet
  • Chaque consommateur reçoit sa propre copie, découplée

Modèle de diffusion SNS vers SQS : un sujet SNS publie vers plusieurs files SQS, chacune servant son consommateur à son rythme

Déployer des applications sur AWS

Filtrer pour ne livrer que le nécessaire

  • Sans filtres, chaque abonné reçoit tous les événements
  • Politiques de filtrage d'abonnement SNS : filtrent par attributs de message
  • Filtres de contenu EventBridge : correspondent aux champs d'événement
  • Chaque consommateur reçoit seulement ce qui le concerne

Politique de filtrage d'abonnement SNS et filtre de contenu EventBridge : chaque consommateur reçoit seulement les événements correspondant à sa règle, réduisant le traitement inutile et les coûts

Déployer des applications sur AWS

Routage avec EventBridge

Schéma de routage EventBridge : bus recevant de multiples sources, règles correspondant à des modèles d'événements, et événements acheminés vers Lambda, SQS et d'autres cibles

  • Event bus : reçoit des événements de nombreuses sources
  • Rule : modèle d'événement qui fait correspondre certains événements
  • Target : destination des événements correspondants
  • Un événement peut être routé vers plusieurs cibles
Déployer des applications sur AWS

Diffusion en continu avec Kinesis Data Streams

  • Flux continu et en temps réel d'enregistrements
    • Enregistrements ordonnés dans un fragment
    • Relecturable : les consommateurs relisent à tout point
    • Plusieurs consommateurs lisent le même flux indépendamment
    • À utiliser pour clics, télémétrie, données à fort débit

Architecture Kinesis Data Streams : producteurs écrivant des enregistrements ordonnés dans des fragments numérotés ; trois consommateurs lisent indépendamment à des positions différentes, avec une flèche de retour illustrant la relecture

Déployer des applications sur AWS

Lambda comme consommateur d'événements

  • Lambda peut être déclenchée par SQS, SNS, EventBridge, Kinesis
  • Event source mapping interroge SQS et Kinesis pour vous
  • SNS et EventBridge poussent des événements vers Lambda
  • Traitement quasi en temps réel sans serveurs à gérer

Lambda déclenchée par quatre sources d'événements : mappage de source interrogeant SQS et Kinesis par lots, tandis que SNS et EventBridge envoient des événements directement à Lambda

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...