DynamoDB stellt eine voll­stän­dig ver­wal­te­te, ser­ver­lo­se NoSQL-Datenbank dar, die von Amazon ent­wi­ckelt wurde. Für den Dienst sprechen vor allem die nahtlose Ska­lie­rung, Re­ak­ti­ons­zei­ten im Mil­li­se­kun­den­be­reich und der minimale Be­triebs­auf­wand, aber ebenso die un­kom­pli­zier­te AWS-In­te­gra­ti­on. Die An­wen­dungs­fäl­le reichen von der Soft­ware­ent­wick­lung über die Ska­lie­rung von Gaming-Platt­for­men bis hin zu Echtzeit-Vi­deo­strea­ming.

Was ist DynamoDB?

Amazon DynamoDB ist ein ser­ver­lo­ser NoSQL-Da­ten­bank­dienst für moderne An­wen­dun­gen jeglicher Grö­ßen­ord­nung, der seit 2012 über AWS (Amazon Web Services) be­reit­ge­stellt wird. Im Gegensatz zu vielen Kon­kur­renz­pro­duk­ten handelt es sich bei DynamoDB um eine komplett ver­wal­te­te Lösung. Aus diesem Grund besteht nicht die Not­wen­dig­keit, sich um Aufgaben wie Upgrades, Ak­tua­li­sie­run­gen oder Ska­lie­rung zu kümmern. Das Da­ten­bank­ma­nage­ment­sys­tem liefert zudem ein breites Re­per­toire an Si­cher­heits­fea­tures und Com­pli­ance-Standards. Darüber hinaus lässt sich DynamoDB nahtlos in andere AWS-Dienste wie Lambda oder den Amazon Open­Se­arch Service in­te­grie­ren.

Managed Database Services
Da­ten­ban­ken – Auf´s We­sent­li­che kon­zen­trie­ren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maß­ge­schnei­der­te Datenbank-Lösungen ganz auf Ihre Be­dürf­nis­se
  • Re­chen­zen­tren in Deutsch­land: Ihre Daten sind sicher

Die Struktur von DynamoDB

Die Struktur der Datenbank weist eine klare Hier­ar­chie mit Tabellen als obersten Entitäten auf, zwischen denen – anders als bei re­la­tio­na­len Da­ten­ban­ken – keine strikten Be­zie­hun­gen bestehen. Daten speichert Amazon DynamoDB in Par­ti­tio­nen, die au­to­ma­tisch re­pli­ziert werden. Jede Partition besteht aus drei Knoten, die jeweils eine Da­ten­ko­pie vorhalten, was eine einfache Ska­lie­rung er­mög­licht und beim Ausfall eines Knotens für Redundanz sorgt. Ent­wick­le­rin­nen und Ent­wick­ler legen Da­ten­sät­ze in Form von At­tri­bu­ten ab und weisen diesen einen ein­deu­ti­gen Pri­mär­schlüs­sel zu. Die Datenbank un­ter­stützt sowohl Key-Value-Da­ten­mo­del­le als auch do­ku­men­ten­ori­en­tier­te Modelle.

Ta­bel­len­klas­sen in AWS DynamoDB

Mithilfe der Ta­bel­len­klas­sen lassen sich die Leistung und Kos­ten­struk­tur von DynamoDB-Tabellen op­ti­mie­ren. User können zwischen zwei Klassen wählen und innerhalb von 30 Tagen zweimal ohne Aus­fall­zei­ten zwischen diesen wechseln, um die Kosten an Nut­zungs­mus­ter an­zu­pas­sen:

  • DynamoDB Standard ist als Stan­dard­ta­bel­len­klas­se für High-Per­for­mance-Workloads und Tabellen mit un­vor­her­seh­ba­ren Workloads kon­zi­piert. Im Vergleich zeichnen sich die Stan­dard­ta­bel­len durch geringere Kosten für Lese- und Schreib­vor­gän­ge aus.
  • DynamoDB Standard In­fre­quent Access wurde für Tabellen optimiert, bei denen Speicher der größte Kos­ten­fak­tor ist. IA-Stan­dard­ta­bel­len punkten mit nied­ri­ge­ren Spei­cher­kos­ten. Die Klasse eignet sich aber ebenso ideal für Tabellen mit Daten, auf die nur selten zu­ge­grif­fen wird.

Welche Funk­tio­nen bietet DynamoDB?

DynamoDB stellt eine Vielzahl leis­tungs­fä­hi­ger Funk­tio­nen zur Verfügung, die ska­lier­ba­re, hoch­ver­füg­ba­re und re­ak­ti­ons­schnel­le An­wen­dun­gen er­mög­li­chen. Die nach­fol­gen­de Übersicht fasst die wich­tigs­ten Features zusammen:

  • Schlüssel- und Do­ku­ment­da­ten­mo­del­le: Die Datenbank verfügt über ein flexibles Schema, das die Zuweisung vieler ver­schie­de­ner Attribute für einzelne Elemente erlaubt.
  • ACID-Trans­ak­tio­nen: Die NoSQL-Datenbank bietet Trans­ak­tio­nen mit Ato­ma­ri­tät, Kon­sis­tenz, Iso­lie­rung und Dau­er­haf­tig­keit – kurz ACID – für un­ter­schied­lichs­te An­wen­dun­gen. Dadurch wird es möglich, die Ska­lie­rung und Per­for­mance von DynamoDB auf ein breiteres Spektrum an ge­schäfts­re­le­van­ten Prozessen aus­zu­deh­nen.
  • Globale Tabellen mit aktiv-aktiver Re­pli­ka­ti­on: Globale Tabellen von DynamoDB sind mul­ti­ak­tiv, wodurch es Usern möglich ist, von jedem Replikat zu schreiben und zu lesen. Die Kapazität wird dabei au­to­ma­tisch an regionale Workloads angepasst.
  • DynamoDB Streams: Die Funktion dient dazu, Än­de­rungs­da­ten zu erfassen. Wird ein Element in einer Tabelle erstellt, be­ar­bei­tet oder gelöscht, zeichnet DynamoDB Streams das Ereignis auf und speichert es für 24 Stunden.
  • Se­kun­där­in­di­zes: DynamoDB erlaubt sowohl lokale als auch globale Se­kun­där­in­di­zes, um Abfragen über al­ter­na­ti­ve Schlüssel zu er­mög­li­chen. Optional können sie als Sparse-Indizes im­ple­men­tiert werden, um gezielt nur Teil­men­gen der Daten zu in­di­zie­ren.
  • Au­to­ma­ti­sche Par­ti­tio­nie­rung: Daten werden au­to­ma­tisch auf mehrere Par­ti­tio­nen verteilt und bei Bedarf skaliert.
  • Si­cher­heits­funk­tio­nen: Die Datenbank bietet um­fang­rei­che Features, um die Si­cher­heit Ihrer Daten zu ge­währ­leis­ten. Dazu zählen dif­fe­ren­zier­te Zu­griffs­kon­trol­len, Ver­schlüs­se­lung im Ru­he­zu­stand, punkt­ge­naue Wie­der­her­stel­lung, On-Demand-Backups und private Netzwerk-Kon­nek­ti­vi­tät.
  • Ka­pa­zi­täts­mo­del­le: Nut­ze­rin­nen und Nutzer haben die Mög­lich­keit, zwischen einem On-Demand-Ka­pa­zi­täts­mo­dus und einem Modus für be­reit­ge­stell­te Kapazität zu wählen.
  • DynamoDB Ac­ce­le­ra­tor (DAX): Hierbei handelt es sich um einen op­tio­na­len Service für besseres Caching, der die Leistung bis auf das Zehnfache steigert.

Vorteile und Nachteile von Amazon DynamoDB

Amazons NoSQL-Service DynamoDB überzeugt vor allem durch folgende Stärken:

  • Au­to­ma­ti­sche Ska­lie­rung: AWS DynamoDB passt Kapazität und Par­ti­tio­nie­rung dynamisch an den Durchsatz an, was gren­zen­lo­ses ho­ri­zon­ta­les Wachstum er­mög­licht.
  • Ser­ver­lo­se Ar­chi­tek­tur: Das Da­ten­bank­ma­nage­ment­sys­tem wird voll­stän­dig verwaltet. Dies er­mög­licht es Nut­ze­rin­nen und Nutzern, den Fokus voll­kom­men auf die Ent­wick­lung von An­wen­dun­gen zu richten, statt sich auf die grund­le­gen­de In­fra­struk­tur kon­zen­trie­ren zu müssen.
  • Hohe Ver­füg­bar­keit: Multi-Region-Da­ten­ban­ken und au­to­ma­ti­sche Re­pli­ka­ti­on ge­währ­leis­ten eine Ver­füg­bar­keit von bis zu 99,999 Prozent.
  • Niedrige Latenz: Die NoSQL-Datenbank liefert stan­dard­mä­ßig Lese- und Schreib­zu­grif­fe mit Latenzen im ein­stel­li­gen Mil­li­se­kun­den­be­reich. Mit dem DynamoDB Ac­ce­le­ra­tor lassen sich die Ant­wort­zei­ten bei Bedarf sogar in den Mi­kro­se­kun­den­be­reich senken.
  • Einfache AWS-In­te­gra­ti­on: Die nahtlose In­te­gra­ti­on von AWS-Services wie Cloud­Watch oder Kinesis erweitert die Funk­tio­na­li­tät von DynamoDB und er­mög­licht zu­sätz­li­che Da­ten­ana­ly­sen.

Obwohl die Vorzüge klar über­wie­gen und DynamoDB definitiv zu den besten SQL-Al­ter­na­ti­ven zählt, weist die Plattform auch einige Schwächen auf. Ei­ner­seits bietet die Datenbank nur begrenzte Ab­fra­ge­op­tio­nen, die weniger um­fang­reich ausfallen als bei vielen Kon­kur­renz­an­ge­bo­ten. An­de­rer­seits erschwert die enge Ver­zah­nung mit AWS-Diensten die Migration auf andere Platt­for­men. Bei On-Demand-Modellen besteht außerdem das Risiko, dass Last­spit­zen zu un­vor­her­seh­bar hohen Gebühren führen.

Für welche An­wen­dungs­ge­bie­te eignet sich DynamoDB?

DynamoDB wurde gezielt für Workloads ent­wi­ckelt, bei denen enorme Da­ten­men­gen mit sehr niedriger Latenz ver­ar­bei­tet, skaliert und hoch­ver­füg­bar be­reit­ge­stellt werden müssen. Zu den typischen An­wen­dungs­fäl­len zählen unter anderem:

  • Ser­ver­lo­se Web­an­wen­dun­gen und Mobile Backends, bei denen Ac­count­da­ten, Sitzungen und Kon­fi­gu­ra­tio­nen mit minimaler Latenz abgerufen werden
  • Gaming-Platt­for­men, bei denen Hun­dert­tau­sen­de oder Millionen von Nut­ze­rin­nen und Nutzern gleich­zei­tig auf Spie­le­ser­ver zugreifen
  • Content-Streaming für ein globales Publikum mit un­gleich­mä­ßi­gem be­zie­hungs­wei­se stoß­wei­sem Da­ten­ver­kehr
  • Banken und Fi­nanz­dienst­leis­tungs­un­ter­neh­men, die viele Trans­ak­tio­nen gleich­zei­tig und in Echtzeit ver­ar­bei­ten müssen und zudem vor der Her­aus­for­de­rung stehen, die Ak­tua­li­tät sowie Si­cher­heit der Fi­nanz­trans­ak­tio­nen zu ge­währ­leis­ten
  • IoT-An­wen­dun­gen (IoT = Internet of Things), die Sen­sor­da­ten in großem Maßstab ver­ar­bei­ten und speichern

Die wich­tigs­ten Al­ter­na­ti­ven zu DynamoDB

Neben DynamoDB gibt es noch weitere Da­ten­bank­sys­te­me, die sich je nach An­for­de­run­gen, Da­ten­mo­dell, Ska­lie­rung und In­fra­struk­tur mög­li­cher­wei­se als Al­ter­na­ti­ve anbieten. Dazu zählen vor allem:

  • MongoDB: Hohe Fle­xi­bi­li­tät und gren­zen­lo­se Ska­lier­bar­keit
  • MySQL: Re­la­tio­na­les System mit erst­klas­si­ger Ver­füg­bar­keit
  • MariaDB: Open-Source-Al­ter­na­ti­ve zu DynamoDB
  • Post­greS­QL: Re­la­tio­na­le Da­ten­bank­lö­sung mit Support für nicht-re­la­tio­na­le Da­ten­ty­pen
  • Firebase von Google: Vor allem für mobile und Web­an­wen­dun­gen eine erst­klas­si­ge Al­ter­na­ti­ve
  • Apache Cassandra: Ins­be­son­de­re für große Da­ten­men­gen ideal

Welche Vorteile die einzelnen DynamoDB-Al­ter­na­ti­ven im Detail bieten, erörtern wir im ver­link­ten Guide.

Zum Hauptmenü