Features von Amazon MemoryDB

Warum MemoryDB?

Amazon MemoryDB ist ein Valkey- und Redis-OSS-kompatibler, langlebiger In-Memory-Datenbank-Service, der eine extrem schnelle Leistung bietet. Es wurde speziell für moderne Anwendungen mit Microservices-Architekturen entwickelt.

MemoryDB ist kompatibel mit Valkey und Redis OSS, wodurch Kunden schnell Anwendungen mit denselben flexiblen und benutzerfreundlichen Valkey- und Redis-OSS-Datenstrukturen, -APIs und -Befehlen erstellen können, die sie bereits heute verwenden. Mit MemoryDB werden alle Ihre Daten im Arbeitsspeicher gespeichert, wodurch Sie eine Lese-Latenzzeit von Mikrosekunden und eine Schreib-Latenz im einstelligen Millisekundenbereich sowie einen hohen Durchsatz erreichen. MemoryDB speichert auch Daten dauerhaft über mehrere Availability Zones (AZs) hinweg und verwendet ein Multi-AZ-Transaktionsprotokoll, um schnelles Failover, Datenbank-Wiederherstellung und Knoten-Neustarts zu ermöglichen. MemoryDB bietet sowohl In-Memory-Leistung als auch Multi-AZ-Beständigkeit und kann als leistungsstarke primäre Datenbank für Ihre Microservice-Anwendungen verwendet werden, sodass Sie sowohl einen Cache als auch eine dauerhafte Datenbank nicht separat verwalten müssen.

Valkey- und Redis-OSS-Kompatibilität

Valkey und Redis OSS sind schnelle Open-Source-In-Memory-Schlüsselwert-Datenspeicher. Entwickler verwenden Valkey und Redis OSS, um Reaktionszeiten von unter einer Millisekunde bereitzustellen und so Millionen von Anforderungen für Echtzeitanwendungen in den Bereichen Gaming, Ad-Tech, Finanzdienstleistungen, Gesundheitswesen und IoT zu verarbeiten. 

Valkey und Redis OSS bieten flexible APIs, Befehle und Datenstrukturen wie Streams, Sets und Listen, um agile und vielseitige Anwendungen zu erstellen. MemoryDB ist mit Valkey und Redis OSS kompatibel und unterstützt dieselben Valkey- und Redis-OSS-Datentypen, -Parameter und -Befehle, mit denen Sie bereits vertraut sind. Das bedeutet, dass der Code, die Anwendungen, die Treiber und die Tools, die Sie bereits heute mit Valkey und Redis OSS verwenden, auch mit MemoryDB genutzt werden können, sodass Sie schnell Anwendungen erstellen können.

Ultraschnelle Leistung

MemoryDB speichert Ihren gesamten Datensatz im Arbeitsspeicher und bietet so eine Lese-Latenzzeit im Mikrosekundenbereich, eine Schreib-Latenz im einstelligen Millisekundenbereich und einen hohen Durchsatz. Sie kann mehr als 13 Billionen Anforderungen pro Tag bearbeiten und Spitzen von 160 Millionen Anforderungen pro Sekunde unterstützen. Entwickler, die mit Microservices-Architekturen arbeiten, benötigen eine extrem hohe Leistung, da diese Anwendungen Interaktionen mit vielen Servicekomponenten pro Benutzerinteraktion oder API-Aufruf beinhalten können. Mit MemoryDB ermöglichen Sie eine extrem niedrige Latenz, um Endbenutzern Echtzeitleistung zu bieten.

MemoryDB beinhaltet jetzt verbessertes E/A-Multiplexing, das zu erheblichen Verbesserungen des Durchsatzes und der Latenz in großem Maßstab führt. Verbessertes I/O-Multiplexing eignet sich ideal für durchsatzgebundene Workloads mit mehreren Client-Verbindungen, und die Vorteile skalieren mit dem Grad der Parallelität der Workloads. Wenn Sie beispielsweise den Knoten r6g.4xlarge verwenden und 5 200 Clients gleichzeitig ausführen, können Sie im Vergleich zu MemoryDB Version 6 kompatibel mit Redis OSS einen um bis zu 46 % höheren Durchsatz (Lese- und Schreibvorgänge pro Sekunde) und eine um bis zu 21 % geringere P99-Latenz erzielen. Bei diesen Arten von Workloads kann die Netzwerk-IO-Verarbeitung eines Knotens zu einem begrenzenden Faktor für die Skalierbarkeit werden.

Mit verbessertem E/A-Multiplexing leitet jeder dedizierte Netzwerk-IO-Thread Befehle von mehreren Clients an die Valkey- und Redis-OSS-Engine weiter und nutzt dabei die Fähigkeit von Valkey und Redis OSS, Befehle effizient stapelweise zu verarbeiten.

Multi-AZ-Zuverlässigkeit

Zusätzlich zur Speicherung Ihres gesamten Datensatzes im Speicher verwendet MemoryDB ein verteiltes Transaktionsprotokoll, um die Haltbarkeit, Konsistenz und Wiederherstellbarkeit der Daten zu gewährleisten. MemoryDB speichert Daten über mehrere AZs hinweg, sodass Sie die Datenbank schnell wiederherstellen und neu starten können. Sie können MemoryDB als einen einzigen, primären Datenbankservice für Ihre Workloads verwenden, die eine geringe Latenz und einen hohen Durchsatz erfordern, anstatt einen Cache für die Geschwindigkeit und eine zusätzliche relationale oder nichtrelationale Datenbank für die Zuverlässigkeit separat zu verwalten.

Skalierbarkeit

Sie können Ihren MemoryDB-Cluster skalieren, um schwankenden Anwendungsanforderungen gerecht zu werden. Horizontal durch Hinzufügen oder Entfernen von Knoten oder vertikal durch den Wechsel zu größeren oder kleineren Knotentypen. MemoryDB unterstützt Schreibskalierung durch Sharding und Leseskalierung durch Hinzufügen von Replikaten. Ihr Cluster bleibt weiterhin online und unterstützt Lese- und Schreibvorgänge während der Größenänderung.

Vollständig verwaltet

Die ersten Schritte mit MemoryDB sind einfach. Starten Sie einfach einen neuen MemoryDB-Cluster über die AWS-Managementkonsole, oder verwenden Sie die AWS CLI oder das SDK. MemoryDB-Datenbank-Instances sind mit Parametern und Einstellungen vorkonfiguriert, welche für den ausgewählten Knotentyp geeignet sind. Sie können einen Cluster starten und Ihre Anwendung innerhalb von Minuten ohne weitere Konfigurationen damit verbinden.

MemoryDB bietet Amazon-CloudWatch-Metriken für Ihre Datenbank-Instances. Sie können die Konsole verwenden, um über 35 wichtige Betriebsmetriken für Ihren Cluster anzuzeigen, darunter Rechenleistung, Arbeitsspeicher, Speicher, Durchsatz, aktive Verbindungen und vieles mehr.

MemoryDB hält Ihre Cluster automatisch mit neuen Updates auf dem neuesten Stand. Sie können Ihre Cluster ganz einfach auf die neuesten Versionen von Valkey und Redis OSS aktualisieren.

Sicherheit

MemoryDB wird in Amazon Virtual Private Cloud (Amazon VPC) ausgeführt. So können Sie Ihre Datenbank in Ihrem eigenen virtuellen Netzwerk isolieren und Ihre On-Premises-IT-Infrastruktur mit den Branchenstandards entsprechenden verschlüsselten IPSec-VPNs verbinden. Darüber hinaus können Sie mithilfe der VPC-Konfiguration in MemoryDB Firewall-Einstellungen konfigurieren und den Netzwerkzugriff auf Ihre Datenbankinstances steuern.

Mit MemoryDB werden Daten im Ruhezustand mit Schlüsseln verschlüsselt, die Sie über den AWS Key Management Service (AWS KMS) erstellen und kontrollieren. Und Cluster, die mit AWS-Graviton2-Knotentypen erstellt werden, enthalten eine ständig aktive 256-Bit-DRAM-Verschlüsselung. MemoryDB unterstützt die Verschlüsselung während der Übertragung mit Transport Layer Security (TLS).

Mit den in MemoryDB integrierten Features von AWS Identity and Access Management (IAM) können Sie die Aktionen steuern, die Ihre IAM-Benutzer und -Gruppen auf MemoryDB-Ressourcen durchführen können. Beispielsweise können Sie Ihre IAM-Regeln so konfigurieren, dass sichergestellt ist, dass bestimmte Benutzer nur Lesezugriff haben, während ein Administrator Ressourcen erstellen, ändern und löschen kann. Weitere Informationen über Berechtigungen auf API-Ebene erhalten Sie unter Verwendung von IAM-Richtlinien für MemoryDB.

MemoryDB verwendet Redis-OSS-Zugriffssteuerungslisten (ACLs), um sowohl die Authentifizierung als auch die Autorisierung für Ihren Cluster zu steuern. ACLs ermöglichen es Ihnen, unterschiedliche Berechtigungen für verschiedene Benutzer im selben Cluster zu definieren.

Integration mit Kubernetes

AWS Controller für Kubernetes (ACK) für Amazon MemoryDB ermöglicht es Ihnen, MemoryDB-Ressourcen direkt von Ihrem Kubernetes-Cluster aus zu definieren und zu nutzen. So können Sie die Vorteile von MemoryDB zur Unterstützung Ihrer Kubernetes-Anwendungen nutzen, ohne MemoryDB-Ressourcen außerhalb des Clusters definieren oder In-Memory-Datenbankfunktionen innerhalb des Clusters ausführen und verwalten zu müssen. Sie können das MemoryDB-ACK-Container-Image von Amazon Elastic Container Registry (Amazon ECR) herunterladen und sich in der Dokumentation über die Installation informieren. Sie können auch den Blog besuchen, um detailliertere Informationen zu erhalten.

Hinweis: ACK für MemoryDB ist jetzt allgemein verfügbar. Geben Sie uns Feedback auf unserer Github-Seite.

 

JSON-Unterstützung

MemoryDB bietet native Unterstützung für JavaScript Object Notation (JSON)-Dokumente ohne Mehrkosten zusätzlich zu den in Redis OSS enthaltenen Datenstrukturen. Indem Sie die integrierten Befehle verwenden, die für JSON-Dokumente entwickelt und optimiert wurden, können Sie die Entwicklung von Anwendungen vereinfachen. MemoryDB unterstützt partielle Aktualisierungen von JSON-Dokumenten, sowie leistungsstarke Such- und Filterfunktionen mit der Abfragesprache JSONPath. Die Unterstützung von JSON ist bei Verwendung von Valkey und Redis OSS 6.2 und höher verfügbar. Weitere Informationen finden Sie in der MemoryDB-Dokumentation.

Kostenoptimierung

MemoryDB bietet Daten-Tiering als kostengünstige Möglichkeit, Ihre Cluster auf Hunderte von Terabytes Kapazität zu skalieren. Daten-Tiering bietet eine Preis-Leistungs-Option für MemoryDB, indem zusätzlich zur Speicherung von Daten im Arbeitsspeicher in jedem Clusterknoten kostengünstigere Solid-State-Laufwerke (SSDs) verwendet werden. Es ist ideal für Workloads, die regelmäßig auf bis zu 20 % ihres gesamten Datenbestands zugreifen, und für Anwendungen, die zusätzliche Latenzzeiten beim Zugriff auf SSD-Daten tolerieren können.

Bei der Verwendung von Clustern mit Daten-Tiering ist MemoryDB so konzipiert, dass die am wenigsten genutzten Elemente automatisch und transparent vom Speicher auf lokal angefügte NVMe-SSDs verschoben werden, wenn die verfügbare Speicherkapazität verbraucht ist. Wenn Sie auf ein auf SSD gespeichertes Element zugreifen, verschiebt MemoryDB es zurück in den Speicher, bevor die Anfrage bedient wird. MemoryDB-Daten-Tiering ist auf Graviton2-basierten R6gd-Knoten verfügbar. R6gd-Knoten verfügen über eine fast fünfmal höhere Gesamtkapazität (Speicher + SSD) und können bei maximaler Auslastung im Vergleich zu R6g-Knoten (nur Speicher) über 60 % Speicherkosten-Einsparungen erzielen. Geht man von 500-Byte-String-Werten aus, kann man typischerweise mit einer zusätzlichen Latenz von durchschnittlich 450 µs für Lese-Anfragen an auf SSD gespeicherte Daten im Vergleich zu Lese-Anfragen an Daten im Speicher rechnen.

MemoryDB bietet reservierte Knoten, damit können Sie im Vergleich zu On-Demand-Knoten bis zu 55 % sparen, wenn Sie eine Nutzungsverpflichtung über eine Laufzeit von ein oder drei Jahren eingehen. Reservierte Knoten ergänzen die On-Demand-Knoten der MemoryDB und bieten Unternehmen die nötige Flexibilität, um ihre Kosten zu senken. MemoryDB bietet drei Zahlungsoptionen für die reservierten Knoten: Keine Vorauszahlung, Teilweise Vorauszahlung und Komplette Vorauszahlung. Das sollte jedem Unternehmen eine optimale Balance zwischen Vorauszahlung und effektivem Stundenpreis ermöglichen.

Reservierte MemoryDB-Knoten bieten Größenflexibilität innerhalb einer Knotenfamilie und einer AWS-Region. Dies bedeutet, dass der ermäßigte reservierte Knotentarif automatisch auf die Nutzung aller Größen in derselben Knotengruppe angewendet wird. Durch die Möglichkeit der Größenflexibilität müssen Sie weniger Zeit auf die Verwaltung Ihrer reservierten Knoten verwenden. Da Sie an keine bestimmte Datenbankknotengröße mehr gebunden sind, können Sie Ihren Rabatt außerdem optimal nutzen, auch wenn Ihre Datenbank aktualisiert werden muss.