Gajus - stock.adobe.com

Amazon DAX verwaltet Datenbankspitzen für mehr Performance

Amazon DynamoDB Accelerator (DAX) ist ein vollständig verwalteter, hochverfügbarer In-Memory-Cache für DynamoDB, der die Reaktionszeiten verkürzen soll.

Mit dem immensen Anwachsen von Unternehmensdaten steigen auch die Herausforderungen an das Management und die Performance von Datenbankdiensten. Ein neuer Service, Amazon DynamoDB Accelerator (DAX), soll diese Probleme bei AWS-Anwendungen minimieren.

Amazon DynamoDB ist das Managed-NoSQL-Angebot und einer der ältesten Storage-Services von AWS, der bei einigen der größten Kunden des Cloud-Anbieters, zum Beispiel Expedia, Eyeview, Genesys und Twilio, populär ist und entsprechend eingesetzt wird.

Doch wie bei jeder Datenbankimplementierung kämpfen die IT-Teams der Anwender mit der Größe ihrer Infrastruktur, um akzeptable Leistungsniveaus aufrechtzuerhalten. Cloud-Services machen es einfach, die Kapazität zu skalieren, aber es ist immer noch eine Herausforderung, Datenbanken ohne Serviceunterbrechung zu skalieren und zu betreiben.

In-Memory-Datenbank-Caches, wie zum Beispiel Amazon ElastiCache, können Lastspitzen glätten und die Performance beschleunigen, ohne sich in die zugrunde liegende Datenbank einzumischen. Die schlechte Nachricht: ElastiCache, das Memcached und Redis unterstützt, reduziert zwar Engpässe bei der Datenbank-Performance, erschwert aber auch das Datenbank-Design und die Programmierung. ElastiCache ist außerdem ein separater Service mit eigenen APIs, und Entwickler implementieren ihn in der Regel als Side Cache und nicht im Rahmen der primären Datenbank.

Um diese Probleme zu beheben, führte AWS DynamoDB Accelerator (DAX) ein, einen gemanagten In-Memory-Cache, der als Erweiterung und nicht als Add-on für die zugrunde liegende NoSQL-Datenbank konzipiert wurde.

Amazon DAX zum Laufen bringen

Amazon DAX ist für eine ganze Reihe von Szenarien einsetzbar. IT-Teams können den Beschleuniger zum Beispiel verwenden, um unvorhersehbare Zugriffspitzen bei den Datenbanken besser zu verwalten, welche die Leistung erheblich beeinträchtigen kann. Caching erhöht die Auslastung einer primären Datenbank und verbessert die Performance, da die meisten Items direkt im Arbeitsspeicher angesprochen werden.

Ein IT-Team kann Amazon DAX auch nutzen, um eine schnellere Datenbank-Performance für Fast-Echtzeit-Anwendungen wie Online-Spiele, Internet-of-Things-Datenanalysen oder dynamische E-Commerce-Preisanalysen zu erreichen. Diese Anwendungen verlangen kurze Latenzzeiten im Bereich von Mikrosekunden.

Amazon DAX erfüllt diese Bedürfnisse auf zwei verschiedene Arten:

  • DAX dient als Write-Through-Cache, bei dem eingehende Daten direkt in den schnellen Cache geschrieben werden, der sie dann gleichzeitig in die Masterdatenbank kopiert. Write-Through Caches beschleunigen das Lesen und Schreiben, da alle neuen Daten im Cache liegen. Allerdings funktioniert dieser Ansatz in der Regel nur mit kleineren Datensätzen, die den Cache nicht ganz füllen.
  • DAX kann auch einen Read-Through-Cache zur Verfügung stellen. Bei diesem Ansatz werden Schreibzugriffe direkt in DynamoDB ausgeführt, aber Datenkopien so in den Cache eingelesen, dass die am häufigsten verwendeten Elemente aus dem Cache stammen.

Amazon DAX unterstützt derzeit keinen Write-Back-Cache – also einen Cache, der Daten zum Zurückschreiben puffert und dann geänderte Blöcke in die zugrunde liegende Datenbank schreibt. Im Gegensatz zu den beiden oben genannten Szenarien, die für leseintensive Anwendungen gedacht sind, eignen sich Write-Back-Caches am besten für schreibintensive Anwendungen. AWS könnte in Zukunft weitere Unterstützung für diesen Ansatz anbieten.

Wie Amazon DAX die Datenbank-Performance beschleunigt

Im Gegensatz zu den DynamoDB-Datenbanken läuft DAX innerhalb einer Virtual Private Cloud (VPC). Diese ermöglicht es den Benutzern, die Netzwerkadressierung und Zugriffsrichtlinien mit Sicherheitsgruppen und AWS Identity and Access Management (IAM) zu steuern. DAX wird als Scale-Out-Cluster eingesetzt, das aus fünf Knotengrößen besteht – einzelne Cache-Instanzen, die eine Replik der gecachten Daten enthalten.

Cluster sind Gruppen von Datenbank-Cache-Knoten. DAX verwaltet ein Cluster als eine Einheit. Der primäre Cluster-Knoten ist allein für das Schreiben verantwortlich, während alle anderen Knoten die Lesezugriffe und Speicherverwaltung abwickeln. DAX-Cluster-Endpunkte machen es überflüssig, dass Anwendungen die Namen der Knoten oder Port-Nummern kennen müssen. Diese Endpunkte erweitern die Kapazität um Leserepliken, ohne den Service zu unterbrechen.

Im Gegensatz zu ElastiCache ist DAX mit DynamoDB-APIs kompatibel. DAX unterstützt derzeit Read-APIs wie GetItem, BatchGetItem, Query und Scan und modifiziert APIs wie PutItem, UpdateItem, DeleteItem und BatchWriteItem. DAX unterstützt jedoch derzeit keine DynamoDB Control Plane APIs wie CreateTable und DeleteTable.

Außer für Read-Through- und Write-Through-Techniken können Entwickler DAX als Query-Cache für Abfragen und Ergebnisse oder als Item-Cache verwenden – bei letzterem im Wesentlichen als Key-Value Store. DAX unterstützt aktuell keine Vorbelegung des Cache mit Hot und Warm Data – also häufig abgerufenen Daten – von DynamoDB. Der Cache füllt sich einfach mit der Zeit, wenn Daten aus der Masterdatenbank gelesen werden.

Datenbank-Caches sind vorteilhaft, da sie die Kapazität erhöhen können, ohne die zugrunde liegende Datenbank zu beeinträchtigen. DAX kann zum einen vertikal innerhalb eines einzelnen Cache skalieren, indem die Speicherkapazität erhöht wird – auf bis zu 32 virtuelle CPUs und 244 GB bei r3.8xlarge-Instanzen.

Zum anderen kann DAX horizontal skalieren, indem der Cache auf bis zu zehn Knoten verteilt und repliziert wird, auf die über Round-Robin Load Balancing zugegriffen wird (Round-Robin gewährt allen Prozessen nacheinander für jeweils einen kurzen Zeitraum – Zeitschlitz – Zugang zu benötigten Ressourcen). Knoten, die vertikal skalieren, machen dies offline, aber die horizontale Skalierung kann online erfolgen.

Management-Tipps für Amazon DAX

Wie bei VPCs können Amazon DAX-Cluster nicht mehrere Regionen oder Verfügbarkeitszonen umfassen. Um Cluster richtig zu dimensionieren, schätzt man die Größe des Datensatzes einer Datenbank über die Requird Time to Live (TTL) für die Daten. Zum Beispiel beträgt das Working Set 50 GB für eine ein Terabyte große Datenbank, bei der Sie über einen Zeitraum von 24 Stunden nur auf fünf Prozent der Datensätze zugreifen.

Cache Garbage Collection sollten auf eine der folgenden drei Arten ausgeführt werden:

  • TTL-Parameter für Cache-Elemente verwenden, um Daten nach einer voreingestellten Zeit aus dem Cache zu entfernen.
  • Wenn man Platz benötigt, konstruieren man einen Algorithmus, der zuerst diejenigen Items entfernt, die am längsten nicht genutzt wurden.
  • Write-Through verwenden, um Cache-Elemente durch neuere Daten zu ersetzen, die an den gleichen Speicherort geschrieben werden.

DAX unterstützt derzeit kein manuelles Löschen des Cache. Allerdings haben Pilotkunden bereits bei AWS angefragt, so dass der Provider in Zukunft eine API hinzufügen könnte.

Zugriffskontrollen, wie zum Beispiel Richtlinien für den Lese-/Schreibzugriff auf bestimmte Tabellen, sind bei der DAX-Konfiguration – wie bei jedem AWS-Datenbankservice – ein zentraler Sicherheitsaspekt. DAX verfügt über keine spezifischen Sicherheitsmerkmale, erbt aber diejenigen, die Amazon-Diensten innerhalb eines VPCs zur Verfügung stehen, einschließlich der Kontrolle über die Netzwerk-Zugriffsrichtlinie, der Integration mit IAM und CloudTrail für die Protokollierung. Und AWS übernimmt automatisch die Netzwerkeinrichtung zwischen dem vom VPC gehosteten DAX-Cluster und der zugehörigen DynamoDB-Datenbank.

Entwickler verwalten DAX entweder über die AWS Management Console oder das AWS Command Line Interface. Sie können auch CloudWatch zur Überwachung des Dienstes verwenden. Zusätzlich können Tags die Nutzung und Ausgaben für Anwendungen verfolgen, die DynamoDB über den Cache nutzen.

Java ist derzeit mit einem DAX Software Development Kit (SDK) die einzige unterstützte Sprache. Und das, obwohl Amazon in einem Blog-Eintrag schreibt, dass es den Zugriff auf DAX durch andere Sprachen unterstützen will.

Amazon DynamoDB Accelerator (DAX) ist API-kompatibel mit DynamoDB, aber bestehende Anwendungen müssen für den Zugriff auf einen DAX-Cluster mit Hilfe des Java SDK modifiziert werden. Die AWS-Dokumentation liefert ein einfaches Beispiel für die Änderungen, die erforderlich sind, damit eine aus einer DynamoDB-Tabelle lesende Anwendung stattdessen DAX verwenden kann.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Wie AWS DynamoDB Streams und Lambda-Funktionen Datenbanken synchron halten.

Kostenloses E-Handbook: Was AWS und Co. für Datenbanken aus der Cloud bieten.

NoSQL-basierte Datenbanken bei Amazon Web Services (AWS) im Vergleich.

Artikel wurde zuletzt im Dezember 2017 aktualisiert

Erfahren Sie mehr über Cloud-Anwendungen

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close