Überspringen zum Hauptinhalt

Amazon DynamoDB

Über DynamoDB

Alles öffnen

DynamoDB ist ein vollständig verwalteter, verteilter Serverless-NoSQL-Datenbankservice mit einer Leistung im einstelligen Millisekundenbereich in jeder Größenordnung. DynamoDB bietet nimmt Ihnen das Infrastrukturmanagement ab, bietet Wartungsarbeiten ohne Ausfallzeiten, sofortige Skalierung an alle Anwendungsanforderungen und eine Abrechnung nach Bezahlung pro Anforderung. Es gibt keine Kaltstarts, keine Versionsaktualisierungen und keine Wartungsfenster. DynamoDB wird vollständig verwaltet, sodass undifferenzierte Datenbankverwaltungsaufgaben wie Sicherungen, Sicherheit, Compliance, Überwachung und mehr entfallen. Für global verteilte Anwendungen sind globale DynamoDB-Tabellen eine multiregionale, multiaktive Datenbank mit einer Verfügbarkeit von bis zu 99,999 % und bietet die höchste Datenbank-Ausfallsicherheit. Es unterstützt eine starke regionsübergreifende Konsistenz, sodass Ihre Anwendungen immer verfügbar bleiben und immer dieselben Daten aus jeder Region lesen, sodass Sie Anwendungen ohne RPO-Anforderungen erstellen können. DynamoDB verfügt über eine breite Palette von Sicherheitskontrollen und Compliance-Standards, die entwickelt wurden, um die Anforderungen von Regierungen, globalen Banken und anderen hochsensiblen Organisationen zu erfüllen.

Mit DynamoDB überlassen Sie den Kunden die administrativen Aufgaben hinsichtlich des Betriebs und der Skalierung verteilter Datenbanken auf AWS. So müssen Sie sich keine Gedanken um die Bereitstellung von Hardware, deren Einrichtung und Konfiguration, die Planung der Durchsatzkapazität, die Replikation, Software-Patches oder die Cluster-Skalierung machen. Sie können eine verteilte NoSQL-Datenbank in wenigen Minuten bereitstellen. DynamoDB skaliert die Durchsatzkapazität automatisch und bewältigt so mühelos sämtliche Workload-Anforderungen. Wenn Ihre Tabelle größer wird, partitioniert und repartitioniert die Datenbank Ihre Daten. Außerdem repliziert DynamoDB synchron Daten über drei Availability Zones (AZs) in einer AWS-Region, was Ihnen eine hohe Verfügbarkeit und Datenbeständigkeit bietet.

Zu den einzigartigen Vorteilen von DynamoDB gehört, dass es sich um eine bewährte, vollständig verwaltete, Scale-to-Zero-Serverless-Datenbank handelt, die eine Leistung im einstelligen Millisekundenbereich und eine Verfügbarkeit von bis zu 99,999 % bietet. Mit der gleichbleibenden Leistung im großen Maßstab bietet DynamoDB auch integrierte Sicherheit, Haltbarkeit und Zuverlässigkeit, die für globale Anwendungen mit den strengsten Anforderungen erforderlich sind. Aufgrund seiner Benutzerfreundlichkeit wird DynamoDB häufig sowohl für neue datengesteuerte und generative KI-Anwendungen als auch für etablierte Internetanwendungen ausgewählt, die eine konsistente, schnelle Leistung mit unbegrenzter Skalierbarkeit anstreben.

Speicher

Alles öffnen

DynamoDB-Tabellenklassen sind Optionen zur Leistungs- und Kostenoptimierung für DynamoDB-Tabellen. Die beiden verfügbaren Tabellenklassen sind DynamoDB Standard (Standardtabellenklasse für Workloads, die maximale Leistung erfordern und die sich am besten für Tabellen mit unvorhersehbaren Workloads eignet) und DynamoDB Standard-Infrequent Access (Tabellenklasse optimiert für Tabellen, bei denen Speicher die dominierenden Kosten sind, und ideal für Tabellen, in denen sich Daten befinden, auf die selten zugegriffen wird). Standardtabellen haben geringere Kosten für Lese- und Schreibvorgänge, aber höhere Speicherkosten. Standard-IA-Tabellen haben niedrigere Speicherkosten, aber höhere Kosten für Lese- und Schreibvorgänge. Sie können innerhalb von 30 Tagen zweimal ohne Ausfallzeiten zwischen diesen Tabellenklassen wechseln, sodass Sie Ihre Kosten auf der Grundlage der Nutzungsmuster Ihrer Tabelle optimieren können. Die Wahl zwischen diesen Klassen hängt von den spezifischen Anforderungen Ihrer Anwendung und den Zugriffsmustern Ihrer Daten ab.

Bei der Auswahl einer Tabellenklasse in DynamoDB sind mehrere Faktoren zu berücksichtigen. Die gewöhnlichsten, die Sie berücksichtigen sollten, sind die Zugriffsmuster Ihrer Daten, Kostenüberlegungen und die Vorhersagbarkeit der Workload. Sie können ohne Programmierung oder Ausfallzeiten zwischen Tabellenklassen wechseln, sodass Sie Ihre Auswahl anpassen können, wenn sich Ihre Anforderungen im Laufe der Zeit ändern.

DynamoDB-Standard-IA-Tabellen (Infrequent Access) funktionieren nahtlos mit vorhandenen DynamoDB-Features. Sie verwenden dieselben APIs wie reguläre DynamoDB-Tabellen, sodass Sie sie mit vorhandenen Anwendungen ohne Codeänderungen verwenden können. Sie unterstützen Global Tables für multiregionale Replikation, zeitpunktbezogene Wiederherstellung (PITR), On-Demand-Backups, Verschlüsselung im Ruhezustand mit AWS Key Management Service (KMS), DynamoDB-Streams, Time To Live zum automatischen Löschen von Elementen sowie transaktionale Lese- und Schreibvorgänge. Standard-IA-Tabellen sind mit DynamoDB Accelerator (DAX) kompatibel.

Amazon DynamoDB speichert Daten in Partitionen. Eine Partition ist eine Speicherzuweisung für eine Tabelle, die von Solid-State-Laufwerken (SSDs) gestützt und automatisch über mehrere Availability Zones innerhalb einer AWS-Region repliziert wird. Die Partitionsverwaltung wird vollständig von DynamoDB übernommen – Sie müssen Partitionen nie selbst verwalten.

Die maximale Größe eines Elements, das in einer DynamoDB-Tabelle gespeichert werden kann, beträgt 400 KB. Es gibt keine vordefinierten Speicherlimits.

Ja, DynamoDB kann BLOB speichern; es ist jedoch im Allgemeinen nicht zum Speichern von Dokumenten oder Bildern geeignet. Ein besseres Architekturmuster besteht darin, Zeiger auf Amazon S3-Objekte in einer DynamoDB-Tabelle zu speichern.

Es gibt standardmäßig keine festgelegte Ablauf- oder Löschzeit für Daten, die in einer Amazon DynamoDB-Tabelle gespeichert sind. Die Daten bleiben auf unbestimmte Zeit in der Tabelle, sofern sie nicht ausdrücklich vom Kunden oder durch Time-to-Live-Löschungen (TTL) gelöscht werden, wenn TTL aktiviert ist.

Es gibt kein vordefiniertes Limit für die Anzahl der Elemente, die in einer DynamoDB-Tabelle gespeichert werden können. DynamoDB skaliert auf Hunderte von Terabyte oder mehr an Daten über eine beliebige Anzahl von Elementen hinweg.

Es ist zwar technisch möglich, Bilder in DynamoDB als Binärdaten (base64-kodiert) zu speichern, aufgrund der Größenbeschränkung von 400 KB für Elemente gibt es jedoch einige Einschränkungen und Nachteile. Anstatt Bilder direkt in DynamoDB zu speichern, ist es besser, die Bilder in Amazon S3 (Simple Storage Service) zu speichern und dann die S3-Objekt-URL oder den Schlüssel in DynamoDB zu speichern.

Um eine Liste in DynamoDB zu speichern, müssen Sie einen der DynamoDB-Listendatentypen verwenden – entweder eine Liste oder ein Set. Beim Schreiben von Elementen in die Tabelle kann der Wert für dieses Attribut ein Array oder eine Sammlung von skalaren (objektfreien) Datentypen wie Zeichenketten, Zahlen usw. sein. DynamoDB kümmert sich automatisch darum, die Listendaten zu serialisieren und so zu speichern, dass die Listenstruktur erhalten bleibt. Anschließend können Sie das Tabellenattribut abfragen, um die vollständige Liste abzurufen. Das Hinzufügen, Aktualisieren oder Entfernen von Elementen aus der Liste funktioniert genauso wie ein regulärer Schreibvorgang.

Ja, DynamoDB unterstützt das Speichern von Maps als Attributdatentyp

Sicherheit

Alles öffnen

Ja, DynamoDB unterstützt IAM-Berechtigungen. IAM-Berechtigungen können in identitätsbasierten Richtlinien, ressourcenbasierten Richtlinien oder anderen AWS-Richtlinien definiert werden, um den Zugriff auf DynamoDB-Ressourcen zu kontrollieren. Sie können IAM-Richtlinien an IAM-Benutzer, -Gruppen, -Rollen sowie DynamoDB-Tabellen und -Streams anhängen und sie nach Bedarf steuern.

Ja, DynamoDB unterstützt ressourcenbasierte Richtlinien für Tabellen und Streams. Die ressourcenbasierten Richtlinien für jede Tabelle decken auch die Zugriffsberechtigungen für die Indizes der Tabelle ab (globale sekundäre Indizes und lokale sekundäre Indizes). Mit ressourcenbasierten Richtlinien können Kunden detaillierte Zugriffsberechtigungen für DynamoDB-Tabellen und andere Ressourcen definieren, ohne vollen Zugriff auf AWS-Kontoebene gewähren zu müssen. Mithilfe dieser Richtlinien können Kunden steuern, welche Benutzer, Rollen und Verbundbenutzer Aktionen wie Lesen, Schreiben oder Löschen für bestimmte DynamoDB-Tabellen, Indizes und Streams ausführen können. Die ressourcenbasierten Richtlinien werden innerhalb jeder DynamoDB-Ressource angehängt und verwaltet.

Ressourcenbasierte Richtlinien unterstützen Integrationen mit AWS Identity and Access Management (IAM) Access Analyzer und der Fähigkeit zu Block Public Access (BPA). IAM Access Analyzer hilft Kunden dabei, Berechtigungen zu verfeinern und die geringste Berechtigung einzuhalten. BPA hilft Kunden dabei, den öffentlichen Zugriff auf DynamoDB-Tabellen, -Indizes und -Streams zu verhindern, und ist bei DynamoDB immer aktiviert.
 

DynamoDB unterstützt die attributbasierte Zugriffskontrolle, die allgemein für DynamoDB-Tabellen und -Indizes verfügbar ist.

Ja, Sie können Amazon DynamoDB mithilfe von VPC-Endpunkten verwenden. DynamoDB unterstützt zwei Arten von VPC-Endpunkten: Gateway-Endpunkte und die Verwendung von AWS PrivateLink. Mit einem Gateway-Endpunkt können Sie von Ihrer VPC aus auf DynamoDB zugreifen, ohne ein Internet-Gateway oder NAT-Gerät für Ihre VPC zu benötigen. Gateway-Endpunkte erlauben jedoch keinen Zugriff von On-Premises-Netzwerken, von Peering-VPCs in anderen AWS-Regionen oder über ein Transit-Gateway. Für diese Szenarien müssen Sie AWS PrivateLink verwenden, das gegen Aufpreis erhältlich ist.

Die differenzierte Zugriffskontrolle (Fine-grained access control, FGAC) gibt einem Besitzer einer DynamoDB-Tabelle mithilfe von Richtlinien und Bedingungen von AWS Identity and Access Management (IAM) eine granulare Kontrolle über die Daten in der Tabelle. Mit FGAC kann der Besitzer Berechtigungen für den Zugriff auf Elemente oder Attribute der Tabelle und die zugehörigen Aktionen gewähren. Die differenzierte Zugriffskontrolle wird zusammen mit AWS IAM genutzt, einem Service, der zur Verwaltung der Anmeldeinformationen und dazugehörigen Berechtigungen dient.

Ja, alle Benutzerdaten in Amazon DynamoDB sind während der Übertragung und im Ruhezustand vollständig verschlüsselt.

Das HTTPS-Protokoll wird verwendet, um den Netzwerkverkehr mithilfe der Verschlüsselung von Secure Sockets Layer zu schützen.

DynamoDB-Verschlüsselung im Ruhezustand verwendet Verschlüsselungsschlüssel, die im AWS Key Management Service (AWS KMS) gespeichert sind. Daten im Ruhezustand werden mit AES-256, dem Goldstandard, verschlüsselt bei dem ein Höchstmaß an Sicherheit erforderlich ist.

Die folgenden Schlüsseltypen sind verfügbar, um Daten im Ruhezustand zu verschlüsseln:
1. AWS-eigene Schlüssel: Diese werden vollständig von AWS verwaltet und standardmäßig verwendet, sofern keine andere Option angegeben ist. Sie können kostenlos verwendet werden und erfordern keine zusätzliche Einrichtung.
2. Von AWS verwaltete Schlüssel: Dies sind Kundenmasterschlüssel (CMKs), die im AWS Key Management Service (KMS) gespeichert sind und im Namen des Kunden von AWS erstellt, verwaltet und verwendet werden. Sie bieten im Vergleich zu AWS-eigenen Schlüsseln zusätzliche Kontroll- und Auditfunktionen.
3. Vom Kunden verwaltete Schlüssel: Dies sind CMKs, die Sie in AWS KMS erstellen, besitzen und verwalten. Sie bieten ein Höchstmaß an Kontrolle über die Verschlüsselungsschlüssel, einschließlich der Möglichkeit, Zugriffskontrollen zu erstellen, zu rotieren, zu deaktivieren und zu definieren.

Jeder dieser Schlüsseltypen bietet ein anderes Gleichgewicht zwischen Komfort, Kontrolle und Kosten. AWS-eigene Schlüssel sind am einfachsten zu verwenden, während vom Kunden verwaltete Schlüssel die meiste Kontrolle bieten, aber mehr Verwaltungsaufwand erfordern.

Die Verschlüsselung im Ruhezustand trägt zum Schutz der Daten bei, indem Dateien mit vertraulichen Informationen verschlüsselt werden, wenn sie inaktiv sind. Wenn Daten im Ruhezustand verschlüsselt werden, können Unbefugte nicht auf den Klartextinhalt zugreifen, selbst wenn sie physischen Zugriff auf die Geräte erhalten, auf denen die Daten gespeichert sind. Dies bietet eine zusätzliche Sicherheitsebene für Daten, die über die bloße Zugriffskontrolle hinausgeht, und trägt dazu bei, dass vertrauliche Informationen privat bleiben, auch wenn das physische Gerät verloren geht oder gestohlen wird.

Ja, DynamoDB unterstützt die Auditprotokollierung für Änderungen auf Elementebene in Tabellen. DynamoDB ist in AWS CloudTrail integriert. Das ist ein Service, der eine Aufzeichnung der Aktionen eines Benutzers, einer Rolle oder eines AWS-Service in DynamoDB auf Elementebene bereitstellt. Zu den zusätzlich erfassten Protokollierungsdaten gehören Erstellungs-, Aktualisierungs- und Löschdaten sowie etwaige Fehler bei der bedingten Überprüfung. Kunden können auf diese in CloudWatch Logs gespeicherten Protokolldatensätze zugreifen und Anwendungen erstellen, um Änderungen auf Elementebene zu Audit-, Überwachungs- oder anderen Zwecken zu analysieren. Die Auditprotokollierung bietet Einblick in Datenänderungen auf granularer Ebene, ohne die normale Lese-/Schreibleistung der DynamoDB-Tabelle zu beeinträchtigen.

Ja, Sie können Amazon DynamoDB verwenden, um im Rahmen eines Geschäftspartnervertrags mit AWS HIPAA-konforme Anwendungen zu erstellen und Daten aus dem Gesundheitswesen zu speichern. Dies gilt auch für geschützte Patientendaten.

DynamoDB erfüllt viele Compliance-Zertifizierungen, darunter HIPAA-konform, FedRAMP, ISO 27001, SOC 1/SSAE 16/ISAE 3402 (ehemals SAS 70) und SOC 2. Weitere Informationen finden Sie unter Konformitätsüberprüfung durch die Branche für DynamoDB. AWS-Compliance-Berichte können in AWS Artifact heruntergeladen werden.

Hohe Verfügbarkeit und Ausfallsicherheit

Alles öffnen

Globale Tabellen von Amazon DynamoDB ist eine vollständig verwaltete, multiregionale und multiaktive Serverless-Datenbank. Globale Tabellen bieten eine Verfügbarkeit von 99,999 %, eine erhöhte Anwendungsstabilität und eine verbesserte Geschäftskontinuität. Es repliziert Ihre Amazon-DynamoDB-Tabellen automatisch in den von Ihnen ausgewählten AWS-Regionen, daher können Sie eine schnelle, lokale Lese- und Schreibleistung erzielen. Globale Tabellen verwenden dieselben APIs wie DynamoDB-Tabellen mit einer einzelnen Region, sodass Sie Ihre DynamoDB-Tabellen problemlos global verfügbar machen können, ohne dass Änderungen an der Anwendung vorgenommen werden müssen.

Eine globale Tabelle ist eine Sammlung von einer oder mehreren Replikattabellen, die alle einem einzigen AWS-Konto gehören. Eine einzelne globale Amazon-DynamoDB-Tabelle kann nur eine Replikattabelle pro AWS-Region haben.

Sie sollten globale Tabellen verwenden, um die Stabilität Ihrer Anwendung in mehreren Regionen zu verbessern. Globale Tabellen ermöglichen es Anwendungen auch, im unwahrscheinlichen Fall einer Isolierung oder Verschlechterung einer ganzen Region eine hohe Verfügbarkeit aufrechtzuerhalten.

Es sind zwei Versionen der globalen DynamoDB-Tabellen verfügbar: Version 2019.11.21 (aktuell) und Version 2017.11.29 (Legacy). Kunden sollten Version 2019.11.21 (Aktuell) für alle neuen globalen Tabellen verwenden, da diese Version effizienter ist und weniger Schreibkapazität verbraucht. Jeder, der Version 2017.11.29 (Legacy) verwendet, sollte seine globalen Tabellen auf Version 2019.11.21 (Aktuell) aktualisieren.

Sie können die Version einer globalen Tabelle mit nur wenigen Klicks in der AWS-Managementkonsole aktualisieren. Das Aktualisieren von Version 2017.11.29 (Legacy) auf Version 2019.11.21 (Aktuell) ist eine einmalige Aktion und kann nicht rückgängig gemacht werden. Stellen Sie vor der Aktualisierung sicher, dass Sie die Unterschiede im Verhalten zwischen den Versionen überprüft und alle erforderlichen Tests durchgeführt haben. Weitere Informationen finden Sie unter Aktualisieren globaler Tabellen von Version 2017.11.29 (Legacy) auf Version 2019.11.21 (Aktuell).

DynamoDB-Tabellen verwenden die multiaktive Replikation über Regionen hinweg, wobei alle Replikattabellen in allen Regionen einer globalen Tabelle Lese- und Schreibverkehr unterstützen. Eine globale Tabelle hat keine primäre Region, und daher ist kein Datenbank-Failover erforderlich, wenn Lese- und Schreibverkehr in eine andere Region geleitet wird. In dem unwahrscheinlichen Fall, dass eine AWS-Region isoliert oder beeinträchtigt wird, kann Ihre Anwendung einfach aus einer Replikattabelle in einer nicht betroffenen Region lesen und schreiben. Weitere Informationen finden Sie unter Bewährte Methoden für das globale DynamoDB-Tabellendesign.

Eine Replikattabelle ist eine einzelne DynamoDB-Tabelle. Jede Replikattabelle speichert denselben Satz von Datenelementen, hat denselben Tabellennamen und dasselbe Primärschlüsselschema. Wenn eine Anwendung Daten in eine Replikattabelle in einer Region schreibt, repliziert DynamoDB automatisch das Schreiben in den anderen Replikattabellen in den anderen AWS-Regionen.

Ja, globale DynamoDB-Tabellen fördern die Geschäftskontinuität, da sie die Stabilität einer Anwendung erhöhen und eine starke Konsistenz für eine einzelne Region bieten. Dank der starken Konsistenz in mehreren Regionen können Sie Anwendungen ohne RPO und mit höchster Ausfallsicherheit erstellen.

Mit dieser schrittweisen Anleitung können Sie mithilfe der DynamoDB-Konsole, AWS CLI oder AWS CloudFormation eine globale Tabelle erstellen.

Bevor Sie einer globalen DynamoDB-Tabelle ein zusätzliches Replikat in einer anderen Region hinzufügen, müssen für die Tabelle DynamoDB-Streams aktiviert sein, die Tabelle muss denselben Namen wie alle anderen Replikate haben, denselben Partitionsschlüssel wie alle anderen Replikate haben und dieselben angegebenen Schreibkapazitätseinstellungen haben.

Alle Replikatabellen in einer globalen DynamoDB-Tabelle müssen denselben Namen haben.

Ähnlich wie bei anderen Datenbanken speichert DynamoDB Daten in Tabellen. Eine Tabelle ist eine Sammlung von Elementen, und jedes Element ist eine Sammlung von Attributen. DynamoDB verwendet Primärschlüssel, um jedes Element in einer Tabelle eindeutig zu identifizieren, und verfügt über sekundäre Indizes, um mehr Flexibilität bei Abfragen zu bieten.

Ja, Sie können die zeitpunktbezogene Wiederherstellung für jedes Replikat einer globalen DynamoDB-Tabelle aktivieren.

Integrationen

Alles öffnen

Ja, DynamoDB unterstützt Change Data Capture (CDC). Dieses wird mithilfe eines Streaming-Modells implementiert, sodass Anwendungen Änderungen auf Elementebene in einer DynamoDB-Tabelle nahezu in Echtzeit als Stream von Datensätzen erfassen können. Der CDC-Strom von Datensätzen ermöglicht es Anwendungen, die Datenänderungen in der DynamoDB-Tabelle effizient zu verarbeiten und darauf zu reagieren. DynamoDB bietet zwei Streaming-Modelle für CDC: DynamoDB Streams und Kinesis Data Streams für DynamoDB. Informationen zur Auswahl der richtigen Lösung für Ihre Anwendung finden Sie unter Streaming-Optionen für die Erfassung von Änderungsdaten.

Ein DynamoDB-Stream ist ein geordneter Informationsfluss über Änderungen an Elementen in einer DynamoDB-Tabelle. DynamoDB Streams erfassen eine deduplizierte, zeitlich geordnete Abfolge von Änderungen auf Elementebene in jeder beliebigen Tabelle und speichern diese Informationen bis zu 24 Stunden in einem Protokoll. DynamoDB Streams skaliert Kapazitäten automatisch, welches Sie von Bereitstellungs- und Verwaltungskapazitäten befreit. Basierend auf Ihrer DynamoDB-Streams-Konfiguration können Sie die Datenelemente so anzeigen, wie sie vor und nach ihrer Änderung angezeigt werden. Sie können Anwendungen erstellen, die diese Stream-Ereignisse verarbeiten, und Workflows auf der Grundlage des Inhalts des Event-Streams aufrufen.

DynamoDB Streams ist nützlich, wenn Sie mithilfe der nativen Integration mit AWS Lambda auf Datenänderungen mit Triggern reagieren, Kundeninteraktionen verfolgen und analysieren oder die Anwendungsleistung nahezu in Echtzeit überwachen, geordnete Abfolgen von Ereignissen erfassen und die Anwendungsstabilität durch die Replikation von Transaktionsdaten auf Elementebene verbessern möchten.

Kinesis Data Streams erfasst Änderungen auf Elementebene in jeder DynamoDB-Tabelle und repliziert sie in einen Kinesis-Datenstrom. Ihre Anwendungen können auf diesen Stream zugreifen und Änderungen auf Elementebene nahezu in Echtzeit anzeigen. Mit Kinesis Data Streams können Sie benutzerdefinierte Anwendungen zur Verarbeitung oder Analyse von Streaming-Daten für spezielle Anforderungen aufbauen. Im Gegensatz zu DynamoDB-Streams bietet Kinesis Data Streams für DynamoDB keine Garantien für die Reihenfolge der Datensätze oder die Deduplizierung. Die Reihenfolge und Deduplizierung von Datensätzen müssen von Client-Anwendungen implementiert werden, wobei das ApproximateCreationDateTime-Feld im Datensatz auf Elementebene verwendet wird.

Kinesis Data Streams für DynamoDB ist nützlich, wenn Sie eine Integration in die allgemeineren Kinesis-Funktionen (wie die Kinesis Client Library, Amazon Managed Service für Apache Flink oder Amazon Data Firehose), eine längere Datenaufbewahrung und Wiederspielbarkeit (bis zu 365 Tage) sowie ein maßgeschneidertes Shard-Management für Downstream-Verbrauch und Streaming-Analysen benötigen.

Wenn ein DynamoDB-Stream oder Kinesis-Datenstrom in einer DynamoDB-Tabelle aktiviert ist, sendet die Tabelle einen Datensatz, der alle Änderungen an den Daten dieser Tabelle erfasst. Dieser Datensatz enthält den spezifischen Zeitpunkt, zu dem ein Element kürzlich erstellt, aktualisiert oder gelöscht wurde, den Primärschlüssel dieses Elements, ein Bild des Elements vor der Änderung und ein Bild des Elements nach der Änderung

Sie können Streams in einer vorhandenen DynamoDB-Tabelle mithilfe der AWS-Managementkonsole, des AWS-SDK, des AWS Command Line Interface (AWS CLI) oder der Kinesis Client Library (KCL) aktivieren oder deaktivieren.

Wählen Sie DynamoDB-Streams, wenn Sie speziell Änderungen an DynamoDB-Tabellen verfolgen müssen. Wählen Sie Kinesis Data Streams für umfassendere Streaming-Anforderungen, höhere Durchsatzanforderungen oder wenn Sie längere Datenaufbewahrungsfristen benötigen.

Das Feature Amazon DynamoDB Time to Live (TTL) löscht automatisch abgelaufene Elemente, die nicht mehr relevant sind, aus einer Tabelle, wodurch der Speicherverbrauch reduziert und die Kosten gesenkt werden. Mit TTL können Sie einen Zeitstempel pro Element definieren, um festzustellen, wann ein Element nicht mehr benötigt wird. DynamoDB löscht das Element automatisch aus Ihrer Tabelle, ohne dass ein Schreibdurchsatz erforderlich ist. Jedes Mal, wenn ein Element erstellt oder aktualisiert wird, können Sie die Ablaufzeit berechnen und im TTL-Attribut speichern. TTL ist nützlich, wenn Sie Elemente speichern, die nach einer bestimmten Zeit an Relevanz verlieren.

DynamoDB unterstützt GET/PUT-Operationen unter Verwendung eines benutzerdefinierten Primärschlüssels. Der Primärschlüssel ist das einzige Attribut, das für Tabelleneinträge erforderlich ist. Sie legen den Primärschlüssel beim Erstellen einer Tabelle fest und er identifiziert dann jeden Eintrag eindeutig. DynamoDB bietet auch flexible Abfragen, indem Sie Abfragen auf nicht primäre Schlüsselattribute unter Verwendung von globalen sekundären Indizes und lokalen sekundären Indizes verwenden können.

Ein Primärschlüssel kann entweder ein Einzelattribut-Partitionsschlüssel oder ein zusammengesetzter Partitionssortierschlüssel sein. Ein Beispiel für einen Partitionsschlüssel mit einem einzigen Attribut wäre UserID. Damit könnten Sie Daten für einen Eintrag, der einer bestimmten Benutzer-ID zugewiesen wurde, schnell lesen und schreiben.

Ein zusammengesetzter Partitions-Bereichsschlüssel wird als Partitions-Schlüsselelement und als Sortierschlüsselelement indiziert. Dieser mehrteilige Schlüssel bewahrt die Hierarchie zwischen den ersten und zweiten Elementwerten. Beispielsweise könnte ein zusammengesetzter Partitionssortierschlüssel eine Kombination aus UserID (Partition) und Timestamp (Sortierung) sein. Wenn das Partitions-Schlüsselelement konstant gehalten wird, können Sie im Sortierschlüsselelement nach Elementen suchen. Eine solche Suche würde es Ihnen ermöglichen, die Abfrage-API zu verwenden, um etwa alle Elemente für eine einzelne UserID über eine Reihe von Zeitstempeln abzurufen.

DynamoDB unterstützt Primärschlüssel, die aus bis zu acht Attributen in globalen Sekundärindizes (GSIs) bestehen, mit jeweils bis zu vier Attributen für die Partitions- und Sortierschlüssel.

Nachdem Sie eine Tabelle mit der DynamoDB-Konsole oder der CreateTable-API erstellt haben, können Sie die APIs PuItem oder BatchWriteItem verwenden, um Elemente einzufügen. Anschließend können Sie mit GetItem, BatchGetItem oder, wenn zusammengesetzte Primärschlüssel aktiviert sind und in Ihrer Tabelle verwendet werden, die Abfrage-API verwenden, um die Elemente abzurufen, die Sie der Tabelle hinzugefügt haben.

Ja. DynamoDB ist ein vollständig verwalteter Cloud-Service, auf den Sie über die API zugreifen können. Sie können DynamoDB für Anwendungen auf einen beliebigen Betriebssystem verwenden (etwa Linux, Windows, iOS, Android, Solaris, AIX oder HP-UX). Für den Einstieg in DynamoDB empfehlen wir die Verwendung der AWS SDKs.

Die DynamoDB-Zero-ETL-Integration mit OpenSearch Service abstrahiert die operative Komplexität bei der Orchestrierung der Replikation von Daten von einem Transaktionsdatenspeicher in einen Suchdatenspeicher. Datenpipelines, die verwendet werden, um Transaktions- und Suchdatenspeicher synchron zu halten, können schwierig und kostspielig sein, und es treten gelegentlich Fehler auf, die schwer nachzuverfolgen sind. 

Diese Integration ermöglicht es DynamoDB-Kunden, nahezu in Echtzeit Suchergebnisse aus ihren Transaktionsdaten zu erhalten, indem eine vollständig verwaltete Lösung angeboten wird, mit der Transaktionsdaten aus DynamoDB innerhalb von Sekunden nach dem Schreiben in OpenSearch Service verfügbar gemacht werden können. Kunden wählen einfach die DynamoDB-Tabellen aus, die die Daten enthalten, die sie mit OpenSearch Service analysieren möchten, und diese Zero-ETL-Integration repliziert das Schema und die Daten mithilfe von OpenSearch-Ingestion-Pipelines nahtlos in OpenSearch Service. Kunden können Daten aus mehreren DynamoDB-Tabellen in eine einzige, von OpenSearch Service verwaltete Domain oder Serverless-Sammlung replizieren, um ganzheitliche Erkenntnisse über mehrere Anwendungen hinweg zu gewinnen und gleichzeitig ihre wichtigsten Analytik-Ressourcen zu konsolidieren, wodurch erhebliche Kosteneinsparungen und operative Effizienz erzielt werden. 

Kunden können mit der AWS-Managementkonsole für DynamoDB, OpenSearch Service, AWS CLI oder AWS SDK oder AWS CloudFormation beginnen. Um eine Integration zu ermöglichen, wählen Kunden zunächst die DynamoDB-Tabelle aus, deren Daten repliziert werden müssen. Kunden wählen dann entweder DynamoDB Streams für die Replikation nahezu in Echtzeit oder DynamoDB Incremental Exports für verzögerte Replikation als CDC-Mechanismus, um die Daten zwischen den beiden Systemen synchron zu halten. 

Diese Null-ETL-Integration richtet eine OpenSearch-Ingestion-Pipeline im Kundenkonto ein, die sich um die Replikation der Daten in einen von OpenSearch Service verwalteten Cluster oder eine Serverless-Sammlung kümmert. OpenSearch Ingestion versteht die Struktur der DynamoDB-Tabellen und erstellt dann eine entsprechende, vom OpenSearch Service verwaltete Domain oder Serverless-Sammlung und bootet das Ziel mit den vorhandenen Daten aus den DynamoDB-Tabellen. Optional können Kunden ein Schema für die Indizes angeben, die in OpenSearch Service erstellt werden. 

Diese Zero-ETL-Integration bietet Ihnen ein Dashboard, in dem Sie den Status Ihrer End-to-End-Integration mit Echtzeitmetriken und Protokollen von Amazon CloudWatch überwachen können. Sie können Benachrichtigungen einrichten, falls benutzerdefinierte Schwellenwerte überschritten werden. Diese Integration überwacht auch kontinuierlich den Status der DynamoDB-Tabellen und OpenSearch-Service-Indizes und benachrichtigt Benutzer sofort, falls Regressionen mit einer dieser Entitäten auftreten.

Um sicherzustellen, dass OpenSearch Ingestion über die erforderlichen Berechtigungen verfügt, um Daten zwischen diesen beiden Systemen zu replizieren, erstellt die DynamoDB-Zero-ETL-Integration in OpenSearch Service eine IAM-Rolle mit den erforderlichen Berechtigungen, um Daten aus DynamoDB-Tabellen zu lesen und in eine OpenSearch-Domain oder -Sammlung zu schreiben. Diese Rolle wird dann von den OpenSearch-Ingestion-Pipelines übernommen, um sicherzustellen, dass beim Verschieben der Daten von der Quelle zum Ziel immer die richtige Sicherheitslage eingehalten wird.

Diese Zero-ETL-Integration nutzt die nativen Datentransformationsfunktionen der OpenSearch-Ingestion-Pipelines, um die Daten zu aggregieren und zu filtern, während sie verschoben werden. Beim Verschieben der Daten aus einer DynamoDB-Tabelle möchten Kunden möglicherweise einige Felder löschen oder neue Felder erstellen, die auf Aggregationen vorhandener Felder basieren. 

Optional können Kunden auch eine benutzerdefinierte Logik für OpenSearch Ingestion schreiben, um maßgeschneiderte Transformationsfunktionen zu erreichen. Für andere Benutzer, die nur ihre gesamten Daten von der Quelle zur Sink verschieben möchten, bietet diese Zero-ETL-Integration sofort einsatzbereite OpenSearch-Ingestion-Vorlagen, sodass sie die Integrationen mit nur wenigen Tastenklicks durchführen können.

Diese Zero-ETL-Integration bietet Kunden die Möglichkeit, ihr benutzerdefiniertes Datenschema zusammen mit Indexzuordnungen anzugeben, die von OpenSearch Ingestion beim Schreiben von Daten von DynamoDB in OpenSearch Service verwendet werden. Diese Möglichkeit wurde der Benutzeroberflächenkonsole in DynamoDB hinzugefügt, sodass Kunden die volle Kontrolle über das Format der Indizes haben, die im OpenSearch Service erstellt werden.

Für die Nutzung der DynamoDB-Zero-ETL-Integration in OpenSearch Service fallen keine zusätzlichen Kosten an, abgesehen von den Kosten für die vorhandenen zugrunde liegenden Komponenten. Diese Zero-ETL-Integration verwendet OpenSearch Ingestion, um Daten in DynamoDB-Tabellen zu lesen und an OpenSearch Service zu replizieren. Die Kosten für die Verwendung der DynamoDB-Zero-ETL-Integration in OpenSearch Service entsprechen den Kosten für OpenSearch Compute Units (OCUs), die für OpenSearch Ingestion benötigt werden, um die Daten systemübergreifend zu replizieren. Darüber hinaus haben Kunden die Möglichkeit, entweder DynamoDB-Streams oder inkrementelle Exporte als CDC-Option zu wählen. Bei inkrementellen Exporten fallen Kosten für das Schreiben von Daten in S3-Buckets an. Für DynamoDB-Streams würden Kunden die Standardgebühren für die Nutzung von DynamoDB-Streams berechnet.

Die Zero-ETL-Integration von DynamoDB in OpenSearch Service ist in allen Regionen verfügbar, in denen OpenSearch Ingestion heute verfügbar ist.

Fakturierung

Alles öffnen

Ja, Sie können einen Database Savings Plan für Ihre Nutzung von Amazon DynamoDB erwerben und Ihre Kosten um bis zu 18 % reduzieren, wenn Sie sich zu einer gleichbleibenden Nutzung über einen Zeitraum von einem Jahr verpflichten. Weitere Informationen zur berechtigten Nutzung finden Sie auf der Preisseite der Database Savings Plans.

Ja, DynamoDB bietet ein großzügiges kostenloses Kontingent mit 25 GB Speicher und 25 bereitgestellten Schreib- und 25 bereitgestellten Lesekapazitätseinheiten (WCU, RCU), was ausreicht, um 200 Millionen Anfragen pro Monat zu verarbeiten.

DynamoDB ist eine vollständig serverlose, nicht relationale Datenbank. Im Vergleich zu anderen Datenbanken, bei denen die Gebühren auf Grundlage verschiedener Metriken wie dem Speicher berechnet werden, kann DynamoDB bis auf null skaliert werden. Dementsprechend zahlen Kunden bei Nutzung des On-Demand-Modus nur für die tatsächlich genutzten Ressourcen.

Einfach ausgedrückt, ist der On-Demand-Modus besser für Kunden geeignet, die lieber nur für das zu zahlen, was sie auch tatsächlich nutzen, oder die unvorhersehbare Workloads haben. Der Modus mit bereitgestellter Kapazität ist beliebt bei Kunden mit Anwendungen, die einen konstanten oder vorhersehbaren Datenverkehr aufweisen, und die lieber den Kapazitätsbedarf prognostizieren, um die Kosten unter Kontrolle zu halten.

DynamoDB ist einzigartig, da es sich um eine Serverless-Datenbank handelt. Sie bietet Kunden die Option, nur für die Ressourcen zu zahlen, die sie tatsächlich nutzen. Zudem ist mit den On-Demand-Preisen eine Skalierung auf null möglich, wenn die Datenbank nicht genutzt wird. Bei Nutzung der Datenbank werden die Gebühren anhand der Einheiten von Schreib- und Leseanfragen berechnet.

DynamoDB umfasst vielfältige Optionen, die dem Service hinzugefügt werden können. Dazu gehören u. a.:

  • On-Demand-Backup, wobei zu bestimmten Zeitpunkten Snapshot-Backups erstellt werden
  • Globale Tabellen für multiaktive Replikation in mehreren Regionen
  • DynamoDB Accelerator (DAX), ein Amazon-DynamoDB-kompatibler Caching-Service, reduziert die Latenz durch In-Memory-Cache
  • DynamoDB-Streams für zeitlich geordnete Sequenzen von Änderungen auf Elementebene an einer Tabelle