Amazon DOP-C02: Gebeurtenisgestuurde architecturen en Automatisering — Studiegids
Onderdeel van de AWS DevOps Engineer Professional DOP-C02 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.
Overzicht
Event-driven architecturen ontkoppelen producers van consumers, leggen de nadruk op asynchrone communicatie en maken systemen veerkrachtig tegen pieken en storingen. De kernprincipes zijn losse koppeling via events/berichten, consumer-gedreven schaling, idempotente handlers, en expliciete foutafhandeling en observeerbaarheid. AWS biedt bouwstenen voor duurzame wachtrijen, pub/sub, eventbussen, streamverwerking, orkestratie en operationele automatisering. Het beheersen van de wisselwerking tussen Amazon SQS, Amazon SNS, Amazon EventBridge, AWS Step Functions, Lambda event source mappings, AWS Systems Manager Automation en OpsCenter, plus Kinesis Data Streams en Firehose, stelt je in staat om schaalbare, fouttolerante en auditeerbare automatiserings- en datapijplijnen te bouwen.
Messaging en Ingestion: SQS, SNS, Kinesis en Firehose
Amazon SQS biedt duurzame, schaalbare wachtrijen voor ontkoppeling. Standaardwachtrijen bieden at-least-once delivery en best-effort-volgorde met vrijwel onbeperkte doorvoer; ze zijn geschikt voor parallelle workers die dubbele en niet-volgordelijke berichten tolereren door middel van idempotentiesleutels en conditionele schrijfacties. FIFO-wachtrijen dwingen een geordende aflevering per berichtengroep en exactly-once-verwerkingssemantiek af met ontdubbeling (binnen een venster van vijf minuten). Ze garanderen de volgorde en eenmalige verwerking, maar dit gaat ten koste van de absolute doorvoer: gebruik meerdere berichtengroepen om binnen FIFO te parallelliseren, of schakel high-throughput FIFO in voor duizenden berichten per seconde. Configureer de visibility timeout per wachtrij of per bericht zodat deze de maximale verwerkingstijd overschrijdt; met Lambda-consumers, stel de visibility timeout in op minstens zes keer de timeout van je functie om retries toe te staan voordat een bericht opnieuw verschijnt. Gebruik long polling om het aantal lege ontvangsten te verminderen. Dead-letter queues (DLQ’s) vangen ‘poison messages’ op wanneer een bericht de maxReceiveCount overschrijdt; voer later een redrive uit van de DLQ naar een bronwachtrij voor herverwerking met correcties. Monitor ApproximateAgeOfOldestMessage om achterstanden te detecteren en aanpassingen in concurrency/autoscaling aan te sturen.
Amazon SNS biedt beheerde, high-throughput pub/sub. Publishers pushen eenmalig naar een topic; SNS distribueert dit vervolgens naar meerdere subscriptions (SQS, Lambda, HTTP/S, e-mail, mobiel). Filterbeleid voor subscriptions gebruikt berichtattributen om alleen relevante notificaties per subscriber door te sturen, wat de kosten en belasting downstream vermindert; druk predicaten uit zoals exacte overeenkomst, prefix, numerieke bereiken, anything-but en exists. Gebruik SNS voor fan-out, ontkoppelde notificaties en mobile push. Schakel retries in en overweeg DLQ’s per subscription voor onbestelbare berichten. Voor fan-out-vereisten met een vaste volgorde, dwingen SNS FIFO-topics met FIFO SQS-subscriptions de volgorde en ontdubbeling af.
Kinesis Data Streams biedt geordende, low-latency streams met parallellisme op shard-niveau voor real-time analytics en eventverwerking. Producers schrijven records met partitiesleutels naar shards; consumers (Lambda, KCL, Enhanced Fan-Out consumers, Kinesis Data Analytics) lezen deze in volgorde per shard met checkpointing. Gebruik on-demand capaciteit voor onvoorspelbare belasting of provisioned shards met resharding voor voorspelbare doorvoer. Optimaliseer partitiesleutels om ‘hot shards’ te balanceren en monitor IteratorAge voor consumer-vertraging. Enhanced Fan-Out biedt een toegewijde doorvoer van 2 MB/s per consumer-stream met low-latency push via HTTP/2.
Kinesis Data Firehose is een volledig beheerde bezorgservice voor near-real-time opname in S3, Amazon OpenSearch Service, Splunk of HTTP-eindpunten, met optionele Lambda-transformatie, buffering (grootte/tijd), compressie en encryptie. Het haalt data uit directe PutRecord/PutRecordBatch-aanroepen, Kinesis Data Streams of CloudWatch Logs/Events-subscriptions. Gebruik Firehose wanneer je beheerde bezorging met transformatie en batching nodig hebt en geen consumercode hoeft te bouwen en te beheren. Met dynamische partitionering kun je records naar S3-prefixes routeren op basis van sleutels voor efficiënte downstream-verwerking.
Routing, Orkestratie en Scheduling: EventBridge en Step Functions
Amazon EventBridge is de centrale event bus voor routing, governance en integratie over accounts en event-domeinen heen. Gebruik de default bus voor events van AWS-services, custom bussen om domeinen te segmenteren en permissies toe te passen, en partnerbussen voor SaaS-integraties. Rules matchen events via op inhoud gebaseerde patronen en sturen deze door naar meer dan 200 AWS-services. Gebruik input transformers om payloads aan te passen en archive/replay om historische events opnieuw te verwerken tijdens herstel of bij het onboarden van nieuwe consumers. Resource policies maken cross-account event routing mogelijk om governance te centraliseren in een platform-account. EventBridge Pipes bieden point-to-point, configureerbare flows van eventbronnen (SQS, Kinesis, DynamoDB Streams, self-managed Apache Kafka op Amazon MSK, en andere) naar targets, met ingebouwde filtering, batching, transformatie en verrijking via Lambda of Step Functions—ideaal wanneer je geen volledige consumer-applicatie wilt beheren, maar wel lichtgewicht mediatie nodig hebt. EventBridge Scheduler biedt eenmalige en cron-schedules om targets aan te roepen met een execution role, ondersteuning voor tijdzones en optionele flexibele tijdvensters om ’thundering herds’ te verminderen.
AWS Step Functions orkestreert gedistribueerde workflows die zijn gedefinieerd in Amazon States Language met states voor Task, Choice, Parallel, Map (inclusief distributed Map), Wait, Pass, Succeed/Fail, en robuuste Retry/Catch-patronen. Diepe service-integraties elimineren de noodzaak voor ‘glue code’ om AWS API’s aan te roepen, inclusief synchrone (.sync) en callback-patronen met task tokens. Kies Standard Workflows voor langlopende, audit-intensieve orkestraties met exactly-once state-progressie, een duur tot één jaar en prijsbepaling per state-transitie; de uitvoeringsgeschiedenis wordt bewaard, met sterke zichtbaarheid en ingebouwde X-Ray traces. Kies Express Workflows voor high-throughput, kortstondige orkestraties (seconden tot minuten) waar je prijsbepaling per request+duur en at-least-once uitvoeringssemantiek kunt inruilen voor massale schaal; gebruik dit voor het verrijken van streaming data, event routers en micro-orkestraties waarbij je taken idempotent kunt maken. Pas patronen toe zoals de saga-pattern met compenserende taken en gecentraliseerde foutafhandeling; externaliseer retries/timeouts in de state machine om de taakcode te vereenvoudigen.
Compute Triggers en Backpressure: Lambda Event Source Mappings
Lambda event source mappings (ESM’s) verbinden op polling gebaseerde bronnen met Lambda en regelen concurrency, batching en foutafhandeling.
SQS: Lambda schaalt horizontaal door de queue te pollen en je functie aan te roepen met batches (tot 10 berichten; max batching window tot 300 seconden). Bij Standard queues is de schaling agressief op basis van de wachtrijdiepte en berichtdoorvoer; bij FIFO-queues behoudt Lambda de volgorde per message group en verwerkt het één batch per groep tegelijk. Configureer maximum concurrency op de ESM om de schaal van workers te beperken en downstream systemen te beschermen; combineer dit met reserved/provisioned concurrency om capaciteit te garanderen. Gebruik ‘partial batch response’ om alleen succesvolle records te bevestigen en mislukte records opnieuw in de wachtrij te plaatsen, waardoor het opnieuw afspelen van de hele batch wordt vermeden. Stel de visibility timeout van de queue zo in dat deze langer is dan de totale duur van de retries in het slechtste geval. DLQ’s en redrive policies isoleren ‘poison messages’.
Kinesis Data Streams: Standaard zorgt één gelijktijdige Lambda-aanroep per shard voor de juiste volgorde binnen die shard. Verhoog de ParallelizationFactor tot 10 om meerdere batches per shard gelijktijdig te verwerken waar de volgorde binnen sub-sequenties niet strikt noodzakelijk is. Een batchgrootte tot 10.000 records (6 MB) en een maximaal batching window van 5 minuten stellen je in staat om kosten te amortiseren en de doorvoer te verhogen. Gebruik ‘bisect on function error’ om via binary search foute records binnen een batch te vinden, en gebruik ‘on-failure destinations’ of een maximale retry/record-leeftijd om onverwerkbare records weg te gooien of door te sturen. Monitor de IteratorAge om vertraging bij de consumer (‘consumer lag’) te detecteren en voer dienovereenkomstig een reshard uit of verhoog de parallellisatie.
DynamoDB Streams: Vergelijkbaar met Kinesis qua semantiek; batchgrootte tot 1.000 records (6 MB) en een shard-per-partition-key model. Consumers ontvangen geordende mutaties op item-niveau (INSERT, MODIFY, REMOVE). Pas dezelfde foutafhandeling (bisect on error, maximum retry attempts, record age) en filtering toe. Gebruik het stream view type dat de attributen bevat die je consumer nodig heeft (NewImage, OldImage, NewAndOldImages, of KeysOnly) om de payload-grootte te optimaliseren.
Event filtering in ESM’s vermindert het aantal aanroepen door niet-relevante events al bij de poller te verwijderen. Gebruik ’tumbling window aggregation’ op streams met Lambda om records over een bepaalde tijd te aggregeren voor mini-batch verwerkingspatronen.
Automatisering en Herstel van Operaties: Systems Manager Automation en OpsCenter
AWS Systems Manager Automation levert runbooks (documenten van het type Automation) geschreven in JSON/YAML met stappen zoals aws:runCommand, aws:executeScript, aws:invokeLambda, aws:approve, aws:createStack en aws:executeAutomation. Automations accepteren parameters, produceren outputs, hebben versiebeheer met wijzigingsgeschiedenis en worden uitgevoerd met een toegewezen AutomationAssumeRole voor ’least privilege’ en operaties over meerdere accounts/Regions. Beheer de concurrency en foutdrempels voor hele fleets, vereis goedkeuringen en Change Calendar-vensters, en integreer met notificaties via SNS. Roep automations aan op een schema, vanuit EventBridge-regels (voor bijna-realtime herstel bij AWS Health-, CloudWatch- of API-events), vanuit AWS Config-remediations om beleid af te dwingen (bijvoorbeeld het toepassen van standaardtags op EBS-volumes of het koppelen van een standaard instance profile aan EC2-instances), en vanuit OpsCenter.
OpsCenter verzamelt operationele problemen in OpsItems vanuit CloudWatch-alarmen, AWS Config, Health-events of aangepaste bronnen. Elk OpsItem houdt de status, prioriteit, deduplicatie, gerelateerde resources en runbook-links bij. Koppel ‘one-click’ runbooks voor standaardoplossingen en schakel automatisch herstel in door EventBridge- of Config-regels te configureren om een specifieke Automation te starten wanneer een OpsItem wordt aangemaakt of bijgewerkt naar een overeenkomende conditie (bijvoorbeeld een security group die 0.0.0.0/0 toestaat op SSH, afgeweken patch-compliance of mislukte back-ups). Gebruik Systems Manager Explorer om de status van de fleet en openstaande OpsItems te visualiseren over meerdere accounts en Regions. Deze combinatie—OpsItems als duurzame records plus Automation-runbooks als gecodificeerde oplossingen—maakt auditeerbare, consistente operaties op schaal mogelijk.
Ontwerp- en Operationele Richtlijnen
Ontwerp voor idempotentie bij alle consumers, omdat at-least-once delivery gebruikelijk is. Geef de voorkeur aan event-driven fan-out via SNS of EventBridge-regels voor parallelle reacties met lage latentie; geef de voorkeur aan SQS om workloads te bufferen en producers af te schermen van trage consumers; geef de voorkeur aan Kinesis wanneer strikte volgorde per shard en herhaalbare streams vereist zijn voor analytics. Gebruik EventBridge Pipes voor lichtgewicht, beheerde integratie tussen bronnen en doelen wanneer een op maat gemaakte consumer overkill is, en EventBridge Scheduler voor op tijd gebaseerde triggers zonder cron-infrastructuur te hoeven onderhouden.
Kies de juiste grootte voor timeouts en retries. Voor SQS moet de visibility timeout langer zijn dan de maximale verwerkingstijd plus retries; voor streams, beperk het aantal retries en stel MaximumRecordAgeInSeconds in om te voorkomen dat foute records eindeloos opnieuw worden afgespeeld. Gebruik systematisch DLQ’s of on-failure destinations en voeg dashboards en alarmen toe voor SQS ApproximateAgeOfOldestMessage, Lambda ConcurrentExecutions/Throttles/Errors, IteratorAge, Step Functions ExecutionFailed/TimedOut en EventBridge FailedInvocations. Wanneer pieken in het verkeer onvermijdelijk zijn maar de latency-SLA’s streng zijn, gebruik dan Lambda provisioned concurrency om capaciteit vooraf op te warmen. Voor governance, geef de voorkeur aan EventBridge met resource policies voor cross-account routing en archive/replay om de evolutie van consumers en herstel na incidenten te ondersteunen.
Praktijkscenario
Shopify moet de orderverwerking voor flash-sale-evenementen moderniseren en tegelijkertijd real-time analytics en geautomatiseerde herstelacties toevoegen voor wanneer downstream services vertragen of uitvallen.
- Order-events opnemen en fan-out verzorgen
- Gebruik een SNS FIFO-topic om OrderPlaced-events vanuit de checkout te publiceren, wat geordende, ontdubbelde notificaties per OrderId garandeert. De subscriptions omvatten:
- SQS FIFO-wachtrij (Order-Workers) voor fulfillment, met behoud van de volgorde.
- EventBridge custom event bus (CommerceBus) voor governance en extra routing.
- Kinesis Data Firehose delivery stream voor near-real-time levering van Orders aan S3 met GZIP-compressie voor analytics. Waarom SNS FIFO: Het biedt geordende, exactly-once semantiek met schaalbare fan-out naar meerdere subscribers zonder publishers aan consumers te koppelen.
- Fulfillment bufferen en verwerken
- Lambda consumeert vanuit de SQS FIFO-wachtrij via een event source mapping met een batch size van 10, partial batch response ingeschakeld, en een maximum concurrency die beperkt is om de downstream warehouse-API’s te beschermen. De visibility timeout van de wachtrij is ingesteld op zes keer de Lambda-timeout om ruimte te bieden voor retries. Een DLQ vangt ‘poison messages’ op met maxReceiveCount=3; een redrive-workflow verwerkt later de herstelde berichten opnieuw. Waarom SQS FIFO + Lambda ESM: Dwingt de volgorde per bestelling af, isoleert traagheid van downstream systemen door te bufferen en biedt fijnmazige foutafhandeling.
- Een multi-step saga orkestreren
- Een Step Functions Standard-workflow orkestreert de betalingsverwerking, voorraadreservering, fraudescreening en het boeken van de verzending, inclusief retries, timeouts en compenserende taken (terugbetaling, voorraad aanvullen) bij fouten. De eerste Task wordt getriggerd door een Lambda die wordt aangeroepen vanuit de SQS-consumer. Waarom Standard: Langlopende, auditeerbare, exactly-once statusvoortgang over externe systemen met uitgebreide foutafhandeling.
- Domein-events naar capabilities routeren
- De CommerceBus ontvangt Order*-events via PutEvents van producer-services en vanuit de SNS-subscription. EventBridge-regels:
- Matchen op OrderPlaced om Marketing (Lambda) te informeren en een support case aan te maken (AWS Support API-integratie) wanneer klanten met een hoge waarde bestellen.
- OrderFailed doorsturen naar de event bus van een centraal operations-account met behulp van een resource policy voor cross-account governance. Waarom EventBridge: Gecentraliseerde routing, filtering, cross-account levering en de mogelijkheid om nieuwe consumers toe te voegen zonder de producers aan te passen.
- Partner-feed via een pipe naar verrijking sturen
- EventBridge Pipes verbindt de SQS Standard-wachtrij van een partner (SKU’s in backorder) met een Step Functions Express-workflow die items verrijkt via een Lambda-functie en de resultaten naar een interne SQS-wachtrij pusht voor het aanvullen van de voorraad. Waarom Pipes + Express: Beheerde integratie met lage overhead en lichtgewicht verrijking met hoge doorvoer en lage kosten.
- Real-time analytics en zoekfunctionaliteit
- Een Kinesis Data Stream verzamelt clickstream- en operationele events. Lambda (Enhanced Fan-Out consumer) voert sessionization uit en Kinesis Data Analytics aggregeert KPI’s. Firehose levert getransformeerde orders en analytics aan een S3-data lake en Amazon OpenSearch Service met dynamische partitionering op datum/markt voor efficiënte query’s. Waarom Streams + Firehose: Geordende verwerking met lage latentie voor analytics, met beheerde levering en transformatie naar opslag en zoekdiensten.
- Tijdgebaseerde automatisering
- EventBridge Scheduler voert elke minuut een cron-taak uit om InventorySnapshotRequested naar de CommerceBus te publiceren. Dit triggert een Step Functions Express-workflow die snapshots van verschillende magazijnen samenstelt voor near-real-time voorraadnauwkeurigheid. Waarom Scheduler: Native, veerkrachtige cron zonder eigen infrastructuur.
- Geautomatiseerd herstel en operations
- AWS Config-regels detecteren openstaande SSH-poorten of publieke S3 ACL’s in de fulfillment-VPC’s. Beheerde herstelacties roepen Systems Manager Automation-runbooks aan om ‘drift’ te corrigeren. CloudWatch-alarmen op SQS ApproximateAgeOfOldestMessage en Lambda IteratorAge creëren OpsItems in OpsCenter; bijbehorende runbooks schalen de provisioned concurrency op specifieke Lambda’s, verhogen de gereserveerde capaciteit van Step Functions, of verruimen tijdelijk de batch windows. Een EventBridge-regel voor AWS Health EC2-onderhoudsevents roept een SSM Automation-document aan om getroffen instances netjes te herstarten tijdens onderhoudsvensters. Waarom OpsCenter + Automation: Gecentraliseerde, auditeerbare opvolging van problemen met ‘one-click’ of automatische herstelacties met minimale rechten (least-privilege) die veilig over accounts en regio’s heen draaien.
Dit ontwerp kan de pieken van flash-sales opvangen door buffering en fan-out, behoudt bedrijfslogica via orkestratie, levert analytics binnen seconden, en sluit de cirkel met beleidsgestuurd, geautomatiseerd herstel.
← Hoge beschikbaarheid · Alle domeinen · Opslag →
Oefen deze vragen → · Getimede oefening op ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Slaag voor je examen →