DynamoDB is een volledig beheerde, serverloze NoSQL-database die is ontwikkeld door Amazon. De belangrijkste voordelen zijn de naadloze schaalbaarheid, responstijden van milliseconden, minimale operationele inspanningen en eenvoudige AWS-integratie. Toepassingen variëren van softwareontwikkeling tot het schalen van gamingplatforms en realtime videostreaming.

Wat is DynamoDB?

Amazon DynamoDB is een serverloze NoSQL-databaseservice voor moderne applicaties van elke omvang en wordt sinds 2012 aangeboden door AWS (Amazon Web Services). In tegenstelling tot veel concurrenten is DynamoDB een volledig beheerde oplossing. Daardoor hoeft u zich niet bezig te houden met taken als upgrades, updates of schaalbaarheid. Het databasebeheersysteem biedt ook een breed scala aan beveiligingsfuncties en nalevingsnormen. Bovendien kan DynamoDB naadloos worden geïntegreerd met andere AWS-services zoals Lambda of de Amazon OpenSearch Service.

Structuur van DynamoDB

De databasestructuur heeft een duidelijke hiërarchie met tabellen als hoogste entiteiten, zonder strikte relaties tussen hen, in tegenstelling tot relationele databases. Amazon DynamoDB slaat gegevens op in partities, die automatisch worden gerepliceerd. Elke partitie bestaat uit drie knooppunten, die elk een kopie van de gegevens bevatten, waardoor eenvoudige schaalbaarheid mogelijk is en redundantie wordt geboden in geval van een knooppuntstoring. Ontwikkelaars slaan records op als attributen en wijzen er een unieke primaire sleutel aan toe. De database ondersteunt zowel sleutel-waarde-gegevensmodellen als documentgeoriënteerde modellen.

Tabelklassen in AWS DynamoDB

Door gebruik te maken van tabelklassen kunnen de prestaties en kostenstructuur van DynamoDB-tabellen worden geoptimaliseerd. Gebruikers kunnen kiezen tussen twee klassen en binnen 30 dagen twee keer zonder downtime tussen beide klassen wisselen om de kosten aan te passen aan hun gebruikspatroon.

  • DynamoDB Standard is ontworpen als de standaard tabelklasse voor krachtige workloads en tabellen met onvoorspelbare workloads. In vergelijking daarmee worden standaardtabellen gekenmerkt door lagere kosten voor lees- en schrijfbewerkingen.
  • DynamoDB Standard Infrequent Access is geoptimaliseerd voor tabellen waarbij opslag de belangrijkste kostenfactor is. IA-standaardtabellen bieden lagere opslagkosten. De klasse is ook ideaal voor tabellen met gegevens die zelden worden geraadpleegd.

Welke functies biedt DynamoDB?

DynamoDB biedt een reeks krachtige functies die schaalbare, zeer beschikbare en responsieve applicaties mogelijk maken. Het volgende overzicht geeft een samenvatting van de belangrijkste functies:

  • Key-Value- en Document-gegevensmodellen: De database beschikt over een flexibel schema waarmee veel verschillende attributen aan individuele items kunnen worden toegewezen.
  • ACID-transacties: De NoSQL-database biedt transacties met atomiciteit, consistentie, isolatie en duurzaamheid – ook wel bekend als ACID – voor een breed scala aan toepassingen. Hierdoor is het mogelijk om de schaalbaarheid en prestaties van DynamoDB uit te breiden naar een breder scala aan bedrijfskritische processen.
  • Globale tabellen met actieve-actieve replicatie: DynamoDB globale tabellen zijn multi-actief, waardoor gebruikers naar elke replica kunnen schrijven en uit elke replica kunnen lezen. De capaciteit wordt automatisch aangepast aan regionale workloads.
  • DynamoDB Streams: Deze functie legt wijzigingsgegevens vast. Wanneer een item in een tabel wordt aangemaakt, bijgewerkt of verwijderd, registreert DynamoDB Streams de gebeurtenis en slaat deze 24 uur op.
  • Secundaire indexen: DynamoDB maakt zowel lokale als globale secundaire indexen mogelijk om query’s met alternatieve sleutels te kunnen uitvoeren. Optioneel kunnen ze worden geïmplementeerd als sparse indexen om specifiek alleen subsets van de gegevens te indexeren.
  • Automatische partitionering: gegevens worden automatisch verdeeld over meerdere partities en naar behoefte geschaald.
  • Beveiligingsfuncties: de database biedt uitgebreide functies om de veiligheid van uw gegevens te waarborgen. Deze omvatten gedetailleerde toegangscontroles, versleuteling in rust, point-in-time herstel, back-ups op aanvraag en privé-netwerkconnectiviteit.
  • Capaciteitsmodellen: gebruikers kunnen kiezen tussen een on-demand capaciteitsmodus en een vooraf ingestelde capaciteitsmodus.
  • DynamoDB Accelerator (DAX): Dit is een optionele service voor verbeterde caching die de prestaties tot tien keer verhoogt.

Voor- en nadelen van Amazon DynamoDB

De NoSQL-service DynamoDB van Amazon maakt vooral indruk met het volgende:

  • Automatische schaalbaarheid: AWS DynamoDB past de capaciteit en partitionering dynamisch aan de doorvoer aan, waardoor onbeperkte horizontale groei mogelijk is.
  • Serverloze architectuur: het databasebeheersysteem wordt volledig beheerd. Hierdoor kunnen gebruikers zich volledig richten op de ontwikkeling van applicaties in plaats van zich te moeten concentreren op de onderliggende infrastructuur.
  • Hoge beschikbaarheid: databases in meerdere regio’s en automatische replicatie zorgen voor een beschikbaarheid van maximaal 99,999 %.
  • Lage latentie: de NoSQL-database biedt standaard lees- en schrijftoegang met een latentie van minder dan tien milliseconden. Met de DynamoDB Accelerator kunnen de responstijden indien nodig zelfs worden teruggebracht tot microseconden.
  • Eenvoudige AWS-integratie: de naadloze integratie van AWS-services zoals CloudWatch of Kinesis breidt de functionaliteit van DynamoDB uit en maakt aanvullende gegevensanalyses mogelijk.

Hoewel de voordelen duidelijk opwegen tegen de nadelen en DynamoDB zeker tot de beste SQL-alternatieven behoort, heeft het platform ook enkele zwakke punten. Enerzijds biedt de database slechts beperkte query-opties, die minder uitgebreid zijn dan veel concurrerende aanbiedingen. Anderzijds maakt de nauwe integratie met AWS-services migratie naar andere platforms moeilijker. Bij on-demand modellen bestaat ook het risico dat pieken in de vraag kunnen leiden tot onvoorspelbaar hoge kosten.

Voor welke toepassingsgebieden is DynamoDB geschikt?

DynamoDB is speciaal ontworpen voor workloads waarbij enorme hoeveelheden gegevens moeten worden verwerkt, geschaald en geleverd met een zeer lage latentie en hoge beschikbaarheid. Typische gebruiksscenario’s zijn onder meer:

  • Serverloze webapplicaties en mobiele backends, waar accountgegevens, sessies en configuraties met minimale latentie worden opgehaald
  • Gamingplatforms, waar honderdduizenden of miljoenen gebruikers tegelijkertijd toegang hebben tot gameservers
  • Contentstreaming voor een wereldwijd publiek met ongelijkmatig of piekverkeer
  • Banken en financiële dienstverleners, die veel transacties tegelijkertijd en in realtime moeten verwerken, terwijl ze ook worden geconfronteerd met de uitdaging om de tijdigheid en veiligheid van financiële transacties te waarborgen
  • IoT-toepassingen (IoT = Internet of Things), die op grote schaal sensorgegevens verwerken en opslaan

De belangrijkste alternatieven voor DynamoDB

Naast DynamoDB zijn er nog andere databasesystemen die, afhankelijk van de vereisten, het gegevensmodel, de schaalbaarheid en de infrastructuur, als alternatief kunnen dienen. Deze omvatten voornamelijk:

  • MongoDB: Hoge flexibiliteit en onbeperkte schaalbaarheid
  • MySQL: relationeel systeem met uitstekende beschikbaarheid
  • MariaDB: Open-source alternatief voor DynamoDB
  • PostgreSQL: relationele databaseoplossing met ondersteuning voor niet-relationele gegevenstypen
  • Firebase van Google: een uitstekend alternatief, vooral voor mobiele en webapplicaties
  • Apache Cassandra: Bijzonder geschikt voor grote hoeveelheden gegevens

Welke voordelen de afzonderlijke DynamoDB-alternatieven precies bieden, wordt besproken in de gekoppelde gids.

Ga naar hoofdmenu