Angefangen beim Partitionsschlüssel über effiziente Datenbankabfragen bis hin zum DynamoDB Accelerator Service: Um die Leistung, Skalierbarkeit und Effizienz von AWS DynamoDB optimal zu nutzen, gibt es in vielen Bereichen bestimmte Best Practices.
Schematische Darstellung der Architektur des AWS DynamoDB Accelerator, kurz DAX.
(Bild: AWS Germany GmbH)
Partitionsschlüssel
Der Partitionsschlüssel ist entscheidend für die Leistung von DynamoDB, da er die Verteilung der Daten auf Partitionen bestimmt. Um eine gleichmäßige Verteilung zu erreichen, sollte der Partitionsschlüssel viele eindeutige Werte besitzen. Zudem muss das Potenzial für Datenwachstum berücksichtigt werden, damit der Partitionsschlüssel auch bei wachsendem Datensatz weiterhin eine gleichmäßige Verteilung ermöglicht.
Ein gründliches Verständnis der erwarteten Abfragemuster vor der Datenbankerstellung hilft bei der optimalen Gestaltung von Sortierschlüsseln und Indizes.
Beispiel: In einer Tabelle mit Spieldaten ist der Partitionsschlüssel pro Spieler eindeutig, was eine hohe Kardinalität gewährleistet. Wenn bestimmte Daten, wie die Freundesliste oder Metadaten, weniger häufig abgerufen werden als Aktivitätsdaten, ist es ratsam, diese Informationen in separate Tabellen auszulagern, um eine bessere Auslastung der Partitionen zu gewährleisten.
Item-Größe
Die sorgfältige Verwaltung der Item-Größe ist von hoher Relevanz. Große Werte sollten vor der Speicherung komprimiert werden. Für sehr große Attributwerte ist die Auslagerung in alternative Speicher wie Amazon S3 empfehlenswert, wobei im DynamoDB-Item nur ein Identifier wie der S3-Pfad gespeichert wird. Darüber hinaus können große Attribute auf mehrere Items verteilt werden, indem virtuelle Item-Teile verwendet werden.
Beispiel: Profilbilder der Spieler werden nur als S3-Pfad gespeichert, um die Grenze von 400 KB pro Item einzuhalten und dennoch einen schnellen Zugriff mithilfe der Referenz zu gewährleisten.
Abfragen
Effiziente Lesevorgänge sind ebenfalls von großer Bedeutung. DynamoDB ist am performantesten bei gezielten GetItem-Abfragen auf einem oder mehreren Partitionsschlüsseln oder Indizes. Scans und Filter können die Ressourcen stark belasten und zu hohen Kosten führen. Große Scan-Operationen sollten in kleine, ressourcensparende, parallele Operationen aufgeteilt werden, um eine Drosselung zu verhindern. Um die Kosten bei Lesevorgängen zu reduzieren, bei denen Echtzeitkonsistenz nicht kritisch ist, kann die eventuale Konsistenz genutzt werden.
Batch-Verarbeitung in DynamoDB ermöglicht das gleichzeitige Schreiben und Lesen mehrerer Elemente, was die Leistung deutlich verbessern und die Kosten senken kann. Durch das Bündeln von Operationen in einem einzigen Netzwerkaufruf reduziert Batch-Verarbeitung die Latenz und die Anzahl der erforderlichen API-Aufrufe, was zu einer insgesamt besseren Ressourcennutzung und Kosteneffizienz führt.
Sekundäre Indizes
Indizes auf Tabellen mit schreibintensiven Workloads sollte man tunlichst vermeiden, da diese die Schreibleistung erheblich beeinträchtigen können. Indizes sollten so klein wie möglich gehalten werden, um Speicher- und Durchsatzkosten zu minimieren.
Des Weiteren sollte man globale sekundäre Indizes (GSIs) verwenden, sofern keine stark konsistenten Lesevorgänge erforderlich sind. Bei lokalen sekundären Indizes (LSIs) ist es sinnvoll, nicht projizierte Attribute in den Index zu projizieren, wenn die Mehrheit der Lesevorgänge diese Attribute benötigt. Obwohl dies zusätzliche Speicherkosten verursacht, kann es die Abfrageleistung erheblich verbessern und somit die Gesamtleistung der Anwendung steigern.
DAX – DynamoDB Accelerator
DynamoDB liefert bei Datenanfragen Ergebnisse im einstelligen Millisekunden-Bereich. Es gibt jedoch Anwendungen, die noch schnellere Antwortzeiten benötigen. Hierbei kann der DynamoDB Accelerator Service, auch DAX genannt, unterstützen.
DAX ist eine In-Memory-Cache-Erweiterung für die DynamoDB. Er sitzt zwischen der abfragenden Anwendung und der Datenbank und speichert häufig abgerufene Daten im In-Memory-Speicher zwischen. Dadurch wird die Notwendigkeit reduziert, Daten von der Festplatte zu lesen. Der Accelerator ermöglicht eine bis zu zehnfache Performance-Steigerung, auch bei Millionen von Anfragen pro Sekunde. Damit lassen sich Abfragezeiten im zweistelligen Mikrosekundenbereich erreichen.
DAX ist mit den vorhandenen DynamoDB-API-Aufrufen kompatibel, sodass der Anwendungscode nicht geändert werden muss, um DAX zu verwenden. Dadurch lässt sich DAX einfach in bestehende Anwendungen integrieren.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
DAX-Architektur
Ein DAX-Cluster besteht aus einem oder mehreren Knoten, wobei jeder Knoten eine dedizierte Cache-Instanz darstellt. Die Knoten kommunizieren untereinander über ein proprietäres Protokoll, um eine konsistente Sicht auf die Daten im Cluster sicherzustellen. Um das Cluster bei steigender Last zu skalieren, können entweder zusätzliche Knoten hinzugefügt oder leistungsstärkere Knotentypen verwendet werden.
Ein DAX-Cluster kann nur mit DynamoDB-Tabellen in derselben Region kommunizieren. Es ist jedoch möglich, mehrere Cluster in verschiedenen Verfügbarkeitszonen für eine Tabelle zu erstellen. Durch die Replikation verwaltet DAX eine Kopie Ihrer Daten in jeder Verfügbarkeitszone.
Zur Verwaltung der Daten im Cache verwendet der DynamoDB Accelerator drei Caching-Strategien. Für Lesevorgänge wird das Read-Through-Caching verwendet, bei dem zunächst im Cache nachgeschaut wird. Bei einem Cache-Hit werden die Daten sofort zurückgegeben. Sind die Daten noch nicht im Cache, werden sie nachgeladen und für zukünftige Abfragen bereitgestellt.
Beim Schreiben der Daten wird eine Kombination aus Write-Through- und Write-Back-Caching genutzt. Beim Write-Through-Caching werden Daten, die in DynamoDB geschrieben werden, auch im DAX-Cache gespeichert. Beim Write-Back-Caching werden Daten, die im DAX-Cache aktualisiert werden, schließlich in DynamoDB zurückgeschrieben.
Der DynamoDB Accelerator eignet sich besonders für Anwendungen, die eine schnelle Reaktionszeit für Lesevorgänge benötigen. Des Weiteren können durch die Auslagerung der Lesevorgänge in den DAX-Cache die Kosten der DynamoDB reduziert werden. Allerdings sollte DAX nicht verwendet werden, wenn die Anwendung schreibintensiv ist oder bereits eine andere Cache-Lösung mit eigener client-seitiger Logik verwendet wird.
Fazit
DynamoDB von Amazon Web Services bietet eine solide NoSQL-Datenbanklösung mit einem flexiblen Datenmodell, effizienter Partitionierung und Anpassungsmöglichkeiten bei der Provisionierung. Die Implementierung des DynamoDB Accelerator (DAX) Service ermöglicht eine verbesserte Leistung durch einen verwalteten In-Memory-Cache für DynamoDB-Tabellen.
Die Schnelligkeit und Reaktionsfähigkeit von DynamoDB machen es zu einer attraktiven Option für Anwendungen, die eine hohe Leistung benötigen. Die Möglichkeit zur nahtlosen Integration über SDKs und APIs erleichtert die Entwicklung und den Einsatz von Anwendungen, die auf DynamoDB basieren.
Es ist jedoch wichtig, die potenziellen Herausforderungen zu beachten, insbesondere den Vendor Lock-in zu AWS. Durch die Verwendung einer proprietären Technologie wie DynamoDB entsteht eine enge Bindung an die AWS-Plattform, was möglicherweise die Portabilität und Flexibilität von Anwendungen beeinträchtigen kann. Unternehmen sollten daher eine gründliche Analyse durchführen und alternative Lösungen in Betracht ziehen, um die langfristige Nachhaltigkeit ihrer Architekturen sicherzustellen.
Insgesamt bietet DynamoDB eine fortschrittliche NoSQL-Lösung, die mit ihren Funktionen und Integrationsoptionen viele Vorteile bietet. Durch eine sorgfältige Bewertung der technischen Anforderungen und eine strategische Planung können Organisationen die Potenziale von DynamoDB ausschöpfen und gleichzeitig die Risiken im Zusammenhang mit dem Vendor Lock-in proaktiv angehen.
* Über den Autor Yannik Rust arbeitet als Consultant bei adesso SE, wo er in diversen Cloud-Migrationsprojekten umfangreiche Erfahrungen mit verschiedenen SQL- und NoSQL-Datenbanken gesammelt hat. Als Experte auf dem Gebiet der Datenbank-Technologien berät Yannik Kunden aus unterschiedlichen Wirtschaftssektoren und unterstützt aktuell ein groß angelegtes Datenmigrationsprojekt in die AWS-Cloud unter Einbeziehung verschiedener NoSQL-Datenbanken und Cloud-Services. Yannik hält einen Abschluss in Wirtschaftsinformatik und ist zertifizierter AWS-Datenbankingenieur. Sein Fachwissen und seine praktische Erfahrung machen ihn zu einem gefragten Ansprechpartner für komplexe Datenbank-Architekturen und Cloud-Infrastrukturen.