DynamoDB is een volledig beheerde, ser­ver­lo­ze NoSQL-database die is ont­wik­keld door Amazon. De be­lang­rijk­ste voordelen zijn de naadloze schaal­baar­heid, res­pons­tij­den van mil­li­se­con­den, minimale ope­ra­ti­o­ne­le in­span­nin­gen en een­vou­di­ge AWS-in­te­gra­tie. Toe­pas­sin­gen variëren van soft­wa­re­ont­wik­ke­ling tot het schalen van ga­ming­plat­forms en realtime vi­deo­st­rea­ming.

Wat is DynamoDB?

Amazon DynamoDB is een ser­ver­lo­ze NoSQL-da­ta­ba­se­ser­vi­ce voor moderne ap­pli­ca­ties van elke omvang en wordt sinds 2012 aan­ge­bo­den door AWS (Amazon Web Services). In te­gen­stel­ling tot veel con­cur­ren­ten is DynamoDB een volledig beheerde oplossing. Daardoor hoeft u zich niet bezig te houden met taken als upgrades, updates of schaal­baar­heid. Het da­ta­ba­se­be­heer­sys­teem biedt ook een breed scala aan be­vei­li­gings­func­ties en na­le­vings­nor­men. Bovendien kan DynamoDB naadloos worden ge­ïn­te­greerd met andere AWS-services zoals Lambda of de Amazon Open­Search Service.

Structuur van DynamoDB

De da­ta­ba­se­struc­tuur heeft een dui­de­lij­ke hi­ë­rar­chie met tabellen als hoogste en­ti­tei­ten, zonder strikte relaties tussen hen, in te­gen­stel­ling tot re­la­ti­o­ne­le databases. Amazon DynamoDB slaat gegevens op in partities, die au­to­ma­tisch worden ge­re­pli­ceerd. Elke partitie bestaat uit drie knoop­pun­ten, die elk een kopie van de gegevens bevatten, waardoor een­vou­di­ge schaal­baar­heid mogelijk is en re­dun­dan­tie wordt geboden in geval van een knoop­punt­sto­ring. Ont­wik­ke­laars slaan records op als at­tri­bu­ten en wijzen er een unieke primaire sleutel aan toe. De database on­der­steunt zowel sleutel-waarde-ge­ge­vens­mo­del­len als do­cu­ment­ge­o­ri­ën­teer­de modellen.

Ta­bel­klas­sen in AWS DynamoDB

Door gebruik te maken van ta­bel­klas­sen kunnen de pres­ta­ties en kos­ten­struc­tuur van DynamoDB-tabellen worden ge­op­ti­ma­li­seerd. Ge­brui­kers 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 ge­bruiks­pa­troon.

  • DynamoDB Standard is ontworpen als de standaard ta­bel­klas­se voor krachtige workloads en tabellen met on­voor­spel­ba­re workloads. In ver­ge­lij­king daarmee worden stan­daard­ta­bel­len ge­ken­merkt door lagere kosten voor lees- en schrijf­be­wer­kin­gen.
  • DynamoDB Standard In­fre­quent Access is ge­op­ti­ma­li­seerd voor tabellen waarbij opslag de be­lang­rijk­ste kos­ten­fac­tor is. IA-stan­daard­ta­bel­len bieden lagere op­slag­kos­ten. De klasse is ook ideaal voor tabellen met gegevens die zelden worden ge­raad­pleegd.

Welke functies biedt DynamoDB?

DynamoDB biedt een reeks krachtige functies die schaal­ba­re, zeer be­schik­ba­re en res­pon­sie­ve ap­pli­ca­ties mogelijk maken. Het volgende overzicht geeft een sa­men­vat­ting van de be­lang­rijk­ste functies:

  • Key-Value- en Document-ge­ge­vens­mo­del­len: De database beschikt over een flexibel schema waarmee veel ver­schil­len­de at­tri­bu­ten aan in­di­vi­du­e­le items kunnen worden toe­ge­we­zen.
  • ACID-trans­ac­ties: De NoSQL-database biedt trans­ac­ties met ato­mi­ci­teit, con­sis­ten­tie, isolatie en duur­zaam­heid – ook wel bekend als ACID – voor een breed scala aan toe­pas­sin­gen. Hierdoor is het mogelijk om de schaal­baar­heid en pres­ta­ties van DynamoDB uit te breiden naar een breder scala aan be­drijfs­kri­ti­sche processen.
  • Globale tabellen met actieve-actieve re­pli­ca­tie: DynamoDB globale tabellen zijn multi-actief, waardoor ge­brui­kers naar elke replica kunnen schrijven en lezen. De ca­pa­ci­teit wordt au­to­ma­tisch aangepast aan regionale workloads.
  • DynamoDB Streams: Deze functie legt wij­zi­gings­ge­ge­vens vast. Wanneer een item in een tabel wordt aan­ge­maakt, bij­ge­werkt of ver­wij­derd, re­gi­streert DynamoDB Streams de ge­beur­te­nis en slaat deze 24 uur op.
  • Se­cun­dai­re indexen: DynamoDB maakt zowel lokale als globale se­cun­dai­re indexen mogelijk om query’s met al­ter­na­tie­ve sleutels te kunnen uitvoeren. Optioneel kunnen ze worden ge­ïm­ple­men­teerd als sparse indexen om specifiek alleen subsets van de gegevens te indexeren.
  • Au­to­ma­ti­sche par­ti­ti­o­ne­ring: gegevens worden au­to­ma­tisch verdeeld over meerdere partities en naar behoefte geschaald.
  • Be­vei­li­gings­func­ties: de database biedt uit­ge­brei­de functies om de vei­lig­heid van uw gegevens te waar­bor­gen. Deze omvatten ge­de­tail­leer­de toe­gangs­con­tro­les, ver­sleu­te­ling in rust, point-in-time herstel, back-ups op aanvraag en privé-net­werk­con­nec­ti­vi­teit.
  • Ca­pa­ci­teits­mo­del­len: ge­brui­kers kunnen kiezen tussen een on-demand ca­pa­ci­teits­mo­dus en een vooraf toe­ge­we­zen ca­pa­ci­teits­mo­dus.
  • DynamoDB Ac­ce­le­ra­tor (DAX): Dit is een optionele service voor ver­be­ter­de caching die de pres­ta­ties tot tien keer verhoogt.

Voor- en nadelen van Amazon DynamoDB

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

  • Au­to­ma­ti­sche schaal­baar­heid: AWS DynamoDB past de ca­pa­ci­teit en par­ti­ti­o­ne­ring dynamisch aan de doorvoer aan, waardoor on­be­perk­te ho­ri­zon­ta­le groei mogelijk is.
  • Ser­ver­lo­ze ar­chi­tec­tuur: het da­ta­ba­se­be­heer­sys­teem wordt volledig beheerd. Hierdoor kunnen ge­brui­kers zich volledig richten op de ont­wik­ke­ling van ap­pli­ca­ties in plaats van zich te moeten con­cen­tre­ren op de on­der­lig­gen­de in­fra­struc­tuur.
  • Hoge be­schik­baar­heid: databases in meerdere regio’s en au­to­ma­ti­sche re­pli­ca­tie zorgen voor een be­schik­baar­heid van maximaal 99,999 %.
  • Lage latentie: de NoSQL-database biedt standaard lees- en schrijf­toe­gang met een latentie van minder dan tien mil­li­se­con­den. Met de DynamoDB Ac­ce­le­ra­tor kunnen de res­pons­tij­den indien nodig zelfs worden te­rug­ge­bracht tot mi­cro­se­con­den.
  • Een­vou­di­ge AWS-in­te­gra­tie: de naadloze in­te­gra­tie van AWS-services zoals Cloud­Watch of Kinesis breidt de func­ti­o­na­li­teit van DynamoDB uit en maakt aan­vul­len­de ge­ge­vens­ana­ly­ses mogelijk.

Hoewel de voordelen duidelijk opwegen tegen de nadelen en DynamoDB zeker tot de beste SQL-al­ter­na­tie­ven behoort, heeft het platform ook enkele zwakke punten. Enerzijds biedt de database slechts beperkte query-opties, die minder uit­ge­breid zijn dan veel con­cur­re­ren­de aan­bie­din­gen. An­der­zijds maakt de nauwe in­te­gra­tie met AWS-services migratie naar andere platforms moei­lij­ker. Bij on-demand-modellen bestaat ook het risico dat pieken in de vraag kunnen leiden tot on­voor­spel­baar hoge kosten.

Voor welke toe­pas­sings­ge­bie­den is DynamoDB geschikt?

DynamoDB is speciaal ontworpen voor workloads waarbij enorme hoe­veel­he­den gegevens moeten worden verwerkt, geschaald en geleverd met een zeer lage latentie en hoge be­schik­baar­heid. Typische ge­bruiks­sce­na­rio’s zijn onder meer:

  • Ser­ver­lo­ze we­bap­pli­ca­ties en mobiele backends, waar ac­count­ge­ge­vens, sessies en con­fi­gu­ra­ties met minimale latentie worden opgehaald
  • Ga­ming­plat­forms, waar hon­derd­dui­zen­den of miljoenen ge­brui­kers te­ge­lij­ker­tijd toegang hebben tot ga­me­ser­vers
  • Con­tent­strea­ming voor een we­reld­wijd publiek met on­ge­lijk­ma­tig of piek­ver­keer
  • Banken en fi­nan­ci­ë­le dienst­ver­le­ners, die veel trans­ac­ties te­ge­lij­ker­tijd en in realtime moeten verwerken, terwijl ze ook worden ge­con­fron­teerd met de uitdaging om de tij­dig­heid en vei­lig­heid van fi­nan­ci­ë­le trans­ac­ties te waar­bor­gen
  • IoT-toe­pas­sin­gen (IoT = Internet of Things), die sensor­ge­ge­vens op grote schaal verwerken en opslaan

De be­lang­rijk­ste al­ter­na­tie­ven voor DynamoDB

Naast DynamoDB zijn er nog andere da­ta­ba­se­sys­te­men die, af­han­ke­lijk van de vereisten, het ge­ge­vens­mo­del, de schaal­baar­heid en de in­fra­struc­tuur, als al­ter­na­tief kunnen dienen. Deze omvatten voor­na­me­lijk:

  • MongoDB: Hoge flexi­bi­li­teit en on­be­perk­te schaal­baar­heid
  • MySQL: re­la­ti­o­neel systeem met uit­ste­ken­de be­schik­baar­heid
  • MariaDB: Open-source al­ter­na­tief voor DynamoDB
  • Post­greSQL: re­la­ti­o­ne­le da­ta­ba­se­o­p­los­sing met on­der­steu­ning voor niet-re­la­ti­o­ne­le ge­ge­vens­ty­pen
  • Firebase van Google: een uit­ste­kend al­ter­na­tief, vooral voor mobiele en we­bap­pli­ca­ties
  • Apache Cassandra: Bijzonder geschikt voor grote hoe­veel­he­den gegevens

Welke voordelen de af­zon­der­lij­ke DynamoDB-al­ter­na­tie­ven precies bieden, wordt besproken in de ge­kop­pel­de hand­lei­ding.

Ga naar hoofdmenu