Ga naar hoofdinhoud

Amazon EventBridge: een gids voor event-driven architectuur

Deze gids laat zien hoe je Amazon EventBridge gebruikt om schaalbare, event-driven applicaties te bouwen met praktische voorbeelden, installatie-stappen en best practices.
· 11 min lezen

Verken met AI

Amazon EventBridge is een krachtige serverloze event-busservice waarmee ontwikkelaars event-driven architecturen kunnen bouwen met minimale operationele overhead. 

In mijn werk met cloud-native systemen heb ik gezien hoe cruciaal real-time responsiviteit en het ontkoppelen van services zijn voor het bouwen van schaalbare, onderhoudbare applicaties, en EventBridge levert precies dat.

Wat is Amazon EventBridge?

Voordat je in de configuratie duikt, is het belangrijk te begrijpen wat EventBridge is, waarom het ertoe doet en hoe het past binnen het bredere AWS-ecosysteem van event-driven tools.

Overzicht van Amazon EventBridge

Amazon EventBridge is een volledig beheerde, serverloze event-busservice waarmee applicaties bijna real-time via events met elkaar communiceren. 

Het vereenvoudigt het routeren van events tussen eventproducers (bronnen van verandering, zoals S3, DynamoDB of maatwerkapps) en eventconsumers (services die op deze veranderingen reageren, zoals Lambda, Step Functions of SNS).

Afbeelding met een visueel diagram van Amazon EventBridge die events van producers naar meerdere targets routeert.

Afbeelding met een visueel diagram van Amazon EventBridge die events van producers naar meerdere targets routeert. Bron: AWS Blogs

EventBridge is ontworpen met schaalbaarheid en flexibiliteit in het achterhoofd. 

Het schaalt automatisch om miljoenen events per seconde te verwerken en biedt complexe routeringslogica via JSON-gebaseerde regels.

Enkele belangrijke mogelijkheden zijn:

  • Native integratie met meer dan 90 AWS-services (bijv. EC2, CodePipeline, CloudTrail)
  • Ondersteuning voor externe SaaS-eventbronnen, zoals Zendesk, Shopify en Datadog
  • Ingebouwde schema discovery en registry, die eventstructuren automatisch detecteert en documenteert
  • Eventarchivering en -replay, ter ondersteuning van debugging, auditing of het opnieuw verwerken van eerdere events

Dit maakt EventBridge tot een fundamentele tool voor het bouwen van ontkoppelde, veerkrachtige cloudarchitecturen.

EventBridge en event-driven architectuur

EventBridge is gebouwd op het model van event-driven architectuur (EDA).

In EDA communiceren services door events uit te zenden en erop te reageren, in plaats van synchrone calls naar elkaar te doen.

In plaats van bijvoorbeeld een service die de API van een andere service aanroept om een taak te starten, zendt hij simpelweg een event uit zoals "ImageUploaded", en andere services die naar dat event luisteren reageren dienovereenkomstig.

De onderstaande afbeelding illustreert deze opzet, met Amazon API Gateway als een beveiligd toegangspunt tot de centrale EventBridge-eventbus.

Afbeelding met Amazon API Gateway als een beveiligd toegangspunt tot de kern-EventBridge-bus.

Afbeelding met Amazon API Gateway als een beveiligd toegangspunt tot de kern-EventBridge-bus. Bron: AWS Blogs

Voordelen van event-driven architectuur:

Afbeelding die de voordelen van event-driven architectuur toont.

Afbeelding die de voordelen van event-driven architectuur toont.

  • Losse koppeling: services zijn onafhankelijk en weten niet van elkaars bestaan.
  • Schaalbaarheid: systemen kunnen individuele componenten onafhankelijk schalen.
  • Fouttolerantie: fouten in één deel van het systeem leiden niet tot kettingreacties elders.
  • Asynchrone verwerking: verbetert de responsiviteit en systeemprestaties.

EventBridge fungeert als de ruggengraat van EDA op AWS, waardoor je microservices, cloudresources en zelfs systemen van derden aan elkaar kunt koppelen zonder ze strak te koppelen.

> Wil je een solide begrip opbouwen van het event-driven ecosysteem van AWS? Bekijk de cursus AWS Cloud Technology and Services.

Hoe EventBridge verschilt van andere event-driven opties

AWS biedt meerdere tools voor event- en berichtafhandeling, maar EventBridge biedt unieke functies die het onderscheiden van alternatieven zoals SNS en SQS.

SNS (Simple Notification Service) 

SNS is ideaal voor eenvoudige pub/sub-berichten.

Je kunt een bericht publiceren naar een topic en het laten bezorgen aan meerdere abonnees, zoals e-mail, sms of Lambda. 

Het mist echter geavanceerde routering en eventfiltering.

SQS (Simple Queue Service)

SQS biedt een betrouwbare, schaalbare wachtrij voor opslag en verwerking van berichten. 

Consumers pollen de wachtrij voor berichten, wat nuttig is voor asynchrone, ontkoppelde systemen, maar het ondersteunt geen real-time push-gebaseerde routering.

EventBridge

EventBridge combineert het beste van beide: real-time routering, rijke filtering, schemavalidatie en SaaS-integratie. 

Het is ontworpen voor complexe, grootschalige event-driven systemen die flexibele regels, meerdere targets en naadloze integratie over services heen vereisen.

CloudWatch Events

CloudWatch Events was de voorloper van EventBridge. 

EventBridge is de next-gen vervanger, met toevoegingen zoals:

  • SaaS-partnerintegratie
  • Aangepaste eventbussen
  • Schema discovery en registry
  • Verbeterd beheer van regels en permissies

Als je nog CloudWatch Events gebruikt, overweeg dan te migreren naar EventBridge voor rijkere mogelijkheden.

Hier is een snelle vergelijking van de verschillende services die zijn besproken:

Functie

SNS

SQS

EventBridge

Bezorgmodel

Push (pub/sub)

Polling (queue)

Push (met regelgebaseerde routering)

Eventfiltering

Basis (message attributes)

Geen

Geavanceerd (JSON pattern matching)

Fan-out ondersteuning

Ja

Nee

Ja

Schemasupport

Nee

Nee

Ja (schema registry)

Integratie met SaaS

Beperkt

Beperkt

Ja (native SaaS-integraties)

Event replay

Nee

Met retentie

Ja

Dead-letter Queue (DLQ)

Ja

Ja

Ja

Kerncomponenten en belangrijke functies van Amazon EventBridge

Om Amazon EventBridge effectief te gebruiken, is het essentieel de kernbouwstenen te begrijpen. 

Deze componenten werken samen om dynamische, event-driven workflows mogelijk te maken met minimale infrastructuuroverhead. 

Hieronder vind je een gedetailleerde uitleg van elk onderdeel, wat het doet en hoe je het kunt gebruiken.

Eventbussen

Het hart van EventBridge is de eventbus, die fungeert als het kanaal waar alle events doorheen stromen. 

Een eventbus ontvangt events van AWS-services, maatwerkapplicaties of SaaS-providers en routeert ze vervolgens naar de juiste targets op basis van overeenkomende regels.

De onderstaande afbeelding toont de EventBridge Buses-sectie in de AWS Console.

Afbeelding met een screenshot van de AWS Console met de EventBridge Buses-sectie.

Afbeelding met een screenshot van de AWS Console met de EventBridge Buses-sectie.

Typen eventbussen

Dit zijn de typen eventbussen die binnen AWS beschikbaar zijn:

Standaard Event Bus:

  • Automatisch ingericht in elke AWS-account.
  • Wordt primair gebruikt voor het ontvangen van events van AWS-services (zoals EC2-statuswijzigingen of S3-events).
  • Je kunt ook je eigen custom events naar de standaardbus sturen als er geen andere bus nodig is.

Aangepaste Event Buses:

  • Door jou aangemaakt om verschillende domeinen, services of workloads te ondersteunen.
  • Ideaal om applicatie-events te isoleren of ontwikkel- en productieomgevingen te scheiden.
  • Bieden fijnmazige controle over toegangsbeleid en eventroutering.

Voorbeeld use-case:

Maak aparte eventbussen voor verschillende domeinen, zoals één voor e-commerce-operaties en een andere voor analytics, om eventstromen geïsoleerd en beheersbaar te houden.

Een aangepaste eventbus maken:

aws events create-event-bus --name my-app-bus

Regels en targets begrijpen

Regels bepalen welke events naar welke targets moeten worden gerouteerd. 

Ze gebruiken JSON-pattern matching om binnenkomende events op de bus te filteren en door te sturen naar één of meer targets.

Belangrijke aspecten van de regels:

  • Je kunt filteren op elk eventattribuut, zoals source, detail-type of geneste detail-velden.
  • Meerdere regels kunnen op hetzelfde event matchen, wat fan-out-gedrag mogelijk maakt.
  • Eén regel kan meerdere targets hebben, zodat een event parallelle verwerkingspijplijnen kan triggeren.

Ondersteunde targets zijn onder andere:

  • AWS Lambda
  • Step Functions
  • Kinesis Data Streams
  • SNS, SQS
  • ECS-taken
  • API Gateway

Afbeelding met AWS-servicepictogrammen voor ondersteunde targets.

Afbeelding met AWS-servicepictogrammen voor ondersteunde targets.

Het volgende voorbeeld laat zien hoe je een eventregel definieert en koppelt aan een Lambda-functie als target:

aws events put-rule \
  --name "ImageUploadRule" \
  --event-pattern file://event-pattern.json \
  --event-bus-name my-app-bus

aws events put-targets \
  --rule "ImageUploadRule" \
  --targets "Id"="1","Arn"="arn:aws:lambda:region:account-id:function:ImageProcessor"

Voorbeeld event pattern (event-pattern.json):

{
  "source": ["myapplication.upload"],
  "detail-type": ["Image Uploaded"]
}

Pipes

EventBridge Pipes vereenvoudigen de koppeling tussen bronnen (zoals DynamoDB Streams) en targets (zoals SQS of Lambda) zonder maatwerkcode.

De onderstaande afbeelding toont de EventBridge Pipes-sectie in de AWS Console.

Afbeelding met een screenshot van de AWS Console met de EventBridge Pipes-sectie.

Afbeelding met een screenshot van de AWS Console met de EventBridge Pipes-sectie.

Belangrijke functies van Pipes:

  • Filtering: gebruik event patterns om te beperken welke events door de pipe gaan.
  • Verrijking: voeg context toe door een Lambda-functie aan te roepen om het event vóór levering te verrijken.
  • Transformatie: pas de vorm van het event aan met input transformers.

Wanneer gebruik je Pipes:

  • Het verbinden van datastreams (bijv. Kinesis of DynamoDB) met downstream consumers.
  • Het integreren van AWS-services met verschillende eventformaten.

Scheduler

EventBridge Scheduler maakt tijdgebaseerde taakuitvoering mogelijk, ideaal voor het automatiseren van taken zoals dagelijkse back-ups, uurlijkse datasynchronisaties of het starten van workflows op een schema.

De onderstaande afbeelding toont de EventBridge Scheduler-sectie in de AWS Console.

Afbeelding met een screenshot van de AWS Console met de EventBridge Scheduler-sectie.

Afbeelding met een screenshot van de AWS Console met de EventBridge Scheduler-sectie.

Belangrijke functies zijn onder meer:

  • Eenmalige of terugkerende uitvoeringen
  • Ondersteuning voor cron-expressies of rate-gebaseerde expressies
  • Controle over tijdzones, start-/eindvensters en retry-logica

Maak een geplande event:

aws scheduler create-schedule \
  --name "DailyETLJob" \
  --schedule-expression "rate(1 day)" \
  --flexible-time-window '{"Mode":"OFF"}' \
  --target '{"Arn":"arn:aws:lambda:region:account-id:function:RunETL", "RoleArn":"arn:aws:iam::account-id:role/SchedulerExecutionRole"}'

Dit schema roept de RunETL Lambda-functie elke dag aan.

Schema Registry en Event Replays

Schema Registry helpt ontwikkelaars de structuur van events te begrijpen en te documenteren. 

Het ontdekt automatisch schema's van AWS-services en maatwerkapplicaties en slaat ze op in een registry.

Voordelen van Schema Registry zijn onder andere:

  • Sterk getypeerde codebindings genereren in Java, Python en TypeScript.
  • Consistentie verbeteren en parseerfouten verminderen in event-driven applicaties.

Event Replays stellen je in staat events op de bus te archiveren en later opnieuw af te spelen. 

Dit is waardevol voor:

  • Debuggen van mislukte workflows
  • Events opnieuw afspelen na een bugfix
  • Herstel van verloren of vertraagde gegevensverwerking

Afbeelding met een conceptueel diagram dat EventBridge-routern van events illustreert.

Afbeelding met een conceptueel diagram dat EventBridge-routern van events illustreert. Bron: AWS Blogs

Eventarchivering inschakelen:

aws events create-archive \
  --archive-name "MyApplicationArchive" \
  --event-source-arn "arn:aws:events:region:account-id:event-bus/my-application-bus" \
  --retention-days 7

Gearchiveerde events opnieuw afspelen:

aws events start-replay \
  --replay-name "MyReplay" \
  --source-arn "arn:aws:events:region:account-id:archive/MyApplicationArchive" \
  --destination "arn:aws:events:region:account-id:event-bus/my-application-bus"

Deze componenten — eventbussen, regels, pipes, scheduler en schema registry — vormen samen een uitgebreide, flexibele platform voor het bouwen en beheren van robuuste event-driven architecturen op AWS. 

Elk onderdeel speelt een unieke rol bij het ontkoppelen van services, het verbeteren van schaalbaarheid en het versnellen van applicatieontwikkeling.

Event-driven applicaties bouwen met EventBridge

Met de basis gezet is het tijd om Amazon EventBridge toe te passen in echte applicatieworkflows. 

EventBridge instellen in je applicatie

Zo verstuur je custom events vanuit je applicatie met de AWS CLI:

aws events put-events --entries '[
  {
    "Source": "myapplication.media",
    "DetailType": "ImageUploaded",
    "Detail": "{\"bucket\": \"my-bucket-name\", \"key\": \"image.jpg\"}",
    "EventBusName": "default"
  }
]'

Uitleg:

  • Source: de naam of het domein van de verzendende service.
  • DetailType: het type event dat wordt verzonden.
  • Detail: de payload, gecodeerd als een ge-stringifyde JSON.
  • EventBusName: de bus die het event ontvangt en routeert.

Je kunt deze logica direct integreren in je Lambda-functies, backendservices of containerworkloads met SDK's (bijv. Boto3, AWS SDK for JavaScript).

Events tussen AWS-services routeren

Events tussen AWS-services routeren maakt naadloze integraties mogelijk, zoals het triggeren van Lambda-functies vanuit S3-acties via EventBridge.

Voorbeeldscenario: koppel Amazon S3 aan een Lambda-functie via EventBridge.

Stap 01: Maak een S3-bucket en upload een object.

Stap 02: Schakel S3-eventmeldingen via EventBridge in:

  • Ga naar de S3-bucket.
  • Schakel de optie "EventBridge" in onder Event Notifications.

Stap 03: Maak een EventBridge-regel die matcht op het event pattern:

{
  "source": ["aws.s3"],
  "detail-type": ["Object Created"],
  "detail": {
    "bucket": {
      "name": ["my-bucket"]
    }
  }
}

Stap 04: Koppel een Lambda-functie als het target van de regel om het geüploade object te verwerken.

Met dit patroon kun je de verwerking later uitbreiden door andere targets toe te voegen, zoals Step Functions of SNS voor notificaties.

Praktisch voorbeeld: workflow voor uploaden en resizen van afbeeldingen

Laten we een typische event-driven pijplijn doorlopen:

01: Een gebruiker uploadt een afbeelding naar S3.

02: S3 zendt een event uit naar de standaard EventBridge-bus.

03: EventBridge matcht een regel voor s3:ObjectCreated:* en routeert deze naar een Lambda-functie.

04: De Lambda past het formaat van de afbeelding aan, slaat deze op in een andere S3-bucket en logt de output.

Dit patroon is krachtig omdat:

  • het schaalbaar is (d.w.z. het kan duizenden events per seconde verwerken).
  • het modulair is (d.w.z. je kunt de afbeeldingsresize-functie vervangen zonder andere componenten te raken).
  • het parallelisme toestaat (d.w.z. je kunt hetzelfde event gelijktijdig naar analytics- of notificatiepijplijnen sturen).

Regels toevoegen voor schaalbaarheid en flexibiliteit

Je kunt eenvoudig events fan-outen door meerdere targets aan één regel te koppelen:

aws events put-targets --rule image-uploaded \
  --targets '[
    {"Id": "resizeLambda", "Arn": "arn:aws:lambda:region:account-id:function:ResizeImage"},
    {"Id": "notifySNS", "Arn": "arn:aws:sns:region:account-id:ImageUploadedTopic"}
]'

Zo kan je applicatie het event verwerken, gebruikers notificeren en logs bijwerken, allemaal parallel en zonder deze taken aan elkaar te koppelen.

Prestaties optimaliseren en beveiliging waarborgen

Optimaliseer prestaties en beveiliging door precieze event patterns te ontwerpen die onnodige verwerking minimaliseren en risico's verkleinen.

Efficiënte event patterns ontwerpen

Vermijd brede of catch-all patterns die onnodige uitvoeringen triggeren. Filter in plaats daarvan events nauwkeurig:

{
  "source": ["myapplication.service"],
  "detail-type": ["ImageUploaded"],
  "detail": {
    "bucket": ["media-uploads"]
  }
}

Dit verlaagt de kosten, verbetert de latentie en zorgt dat alleen relevante events worden verwerkt.

Robuuste beveiligingscontroles implementeren

Beveiliging is cruciaal in elke serverloze architectuur. Volg deze richtlijnen:

  • Gebruik IAM least privilege: geef alleen de permissies die nodig zijn om events te publiceren of te consumeren.
  • Schakel encryptie in: EventBridge ondersteunt encryptie in rust met AWS KMS.
  • Implementeer DLQ's (Dead Letter Queues) voor mislukte afleveringen:
"DeadLetterConfig": {
  "Arn": "arn:aws:sqs:region:account-id:my-dlq"
}

DLQ's vangen niet-bezorgbare events op, zodat je ze later kunt diagnosticeren en opnieuw kunt verwerken.

> Wil je dieper duiken in het beveiligen van cloudapplicaties en het beheren van AWS-permissies? Bekijk de cursus AWS Security and Cost Management.

Kosten en servicequota beheren

Om kosten en prestaties effectief te beheren, is het belangrijk het prijsmodel van EventBridge te begrijpen en servicequota regelmatig te monitoren.

De prijsstructuur begrijpen

Je betaalt per:

  • Event gepubliceerd ($ per miljoen events)
  • Event opnieuw afgespeeld
  • Pipe-gebruik
  • Scheduler-jobs

De free tier bevat 100.000 events per maand, wat royaal is voor de meeste ontwikkel- en kleine productieomgevingen.

Servicequota monitoren en aanpassen

Volg en vraag verhogingen aan met:

aws service-quotas list-service-quotas --service-code events

Belangrijke quota om te monitoren:

  • Regels per eventbus
  • Targets per regel
  • Aanroepen per seconde

Je gebruik verantwoord opschalen zorgt ervoor dat je systeem betrouwbaar blijft naarmate de belasting toeneemt.

Geavanceerde EventBridge-configuraties en alternatieven

Voor complexere event-driven architecturen kun je geavanceerde EventBridge-functies en alternatieve patronen overwegen om controle, beveiliging en planningsflexibiliteit te vergroten.

Accountoverschrijdende eventdistributie

Schakel veilige eventdeling tussen AWS-accounts in:

{
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::123456789012:root"},
    "Action": "events:PutEvents",
    "Resource": "arn:aws:events:region:account-id:event-bus/shared-bus"
  }]
}

Gebruik AWS CloudTrail om gebruik te auditen en compliance te borgen.

Geavanceerde functies van EventBridge Scheduler

Ga verder dan basisplanning met:

  • Flexibele retry-strategieën
  • Tijdvenster-compliance
  • Ondersteuning voor cron- of rate()-expressies

Voorbeeld van een cron-expressie:

Start een workflow elke maandag om 9:00 uur:

--schedule-expression "cron(0 9 ? * MON *)"

Wanneer alternatieven overwegen

Afhankelijk van je vereisten wil je mogelijk andere AWS-services overwegen die beter bij specifieke use-cases passen. 

Hier zijn enkele voorbeelden:

Use-case

Alternatief

FIFO of strikte volgorde

Amazon SQS FIFO

Hoge doorvoer en lage latentie

Amazon MSK (Kafka)

Complexe orkestratie

Step Functions

Eenvoudige notificaties

Amazon SNS

Conclusie

Amazon EventBridge is een fundamentele bouwsteen voor moderne, cloud-native applicaties, waarmee je schaalbare, los gekoppelde systemen bouwt, in real-time reageert op events in AWS en SaaS-platforms, en workflows integreert met minimale infrastructuuroverhead. 

Om succesvol te zijn met EventBridge, richt je op het ontwerpen van modulaire, event-gebaseerde domeinen, het toepassen van best practices voor least privilege en dead-letter queues, en het continu monitoren van gebruik, quota en kosten.

Wil je je AWS-expertise verdiepen? Bekijk de AWS Cloud Practitioner-cursustrack!

FAQs

Hoe verschilt EventBridge van SNS en SQS?

EventBridge biedt regelgebaseerde filtering, schemasupport en integraties met SaaS-platforms, functies die niet beschikbaar zijn in SNS of SQS.

Is EventBridge serverless?

Ja, EventBridge is een volledig beheerde, serverloze service die automatisch schaalt op basis van het aantal events.

Kan ik EventBridge gebruiken om Lambda-functies te triggeren?

Ja. EventBridge kan events naar Lambda-functies routeren op basis van aangepaste regels en filters.

Wat zijn EventBridge Pipes en wanneer moet ik ze gebruiken?

Pipes bieden directe point-to-point-integraties tussen bronnen en targets met ondersteuning voor filtering, transformatie en verrijking.

Hoe beveilig ik mijn EventBridge-workflows?

Gebruik IAM-beleid, encryptie en dead-letter queues om je event-driven architectuur te beveiligen en te monitoren.

Ondersteunt EventBridge accountoverschrijdende eventroutering?

Ja, EventBridge ondersteunt accountoverschrijdend eventsharing met resourcegebaseerde policies en permissies.

Wat is de EventBridge Scheduler?

De Scheduler is een ingebouwde functie voor tijdgebaseerde eventtriggers met retry-logica en flexibele planningsopties.

Hoe werkt de prijsstelling voor EventBridge?

EventBridge rekent af op basis van het aantal gepubliceerde, afgeleverde en opnieuw afgespeelde events, met een royale free tier.

Kan ik eerdere events in EventBridge opnieuw afspelen?

Ja, met de event replay-functie kunnen gearchiveerde events opnieuw worden afgespeeld voor troubleshooting of herverwerking.

Don Kaluarachchi

Auteur

Don Kaluarachchi

Ik ben Don—Consultant, Developer, Engineer, Digitaal Architect en Schrijver (kortom: ik draag veel petten 👨‍💻🎩). Ik hou ervan om digitale platforms soepel te laten draaien en steeds manieren te vinden om ze te verbeteren. Als ik niet aan het coderen ben, schrijf ik over kunstmatige intelligentie, data science en alles wat met tech te maken heeft.
 
In de loop der jaren heb ik aan van alles gewerkt: van het bouwen en optimaliseren van software tot het implementeren van AI-modellen en het ontwerpen van cloudoplossingen. Ik heb een Master of Science in Artificial Intelligence en een Bachelor of Science in Computer Science, beide van Brunel University London.

Onderwerpen

Gerelateerd