PERF04-BP01 Verstehen von Datenmerkmalen - AWS Well-Architected Framework

PERF04-BP01 Verstehen von Datenmerkmalen

Wählen Sie Ihre Datenverwaltungslösungen aus, sodass Sie den Eigenschaften, Zugriffsmustern und Anforderungen Ihrer Workload-Datensätze optimal entsprechen. Beim Auswählen und Implementieren Ihrer Datenverwaltungslösung müssen Sie sicherstellen, dass Ihre Abfrage-, Skalierungs- und Speichermerkmale die Datenanforderungen der Workload unterstützen. Erfahren Sie, wie unterschiedliche Datenbankoptionen Ihren Datenmodellen entsprechen und welche Konfigurationsoptionen am besten für Ihren Anwendungsfall geeignet sind. 

AWS bietet zahlreiche speziell entwickelte Datenbankmodule, darunter relationale, Schlüssel-Werte-, Dokument-, In-Memory-, Graph-, Zeitreihen- und Ledger-Datenbanken. Jede Datenverwaltungslösung hat verfügbare Optionen und Konfigurationen, um Ihre Anwendungsfälle und Datenmodelle zu unterstützen. Basierend auf Ihren Datenmerkmalen kann Ihre Workload möglicherweise mehrere unterschiedliche Datenbanklösungen verwenden. Sie können den Umstieg von monolithischen Datenbanken bewerkstelligen, die mit ihrem Einheitsansatz restriktiv sind, indem Sie die beste Datenbanklösung für ein spezifisches Problem auswählen und sich darauf konzentrieren, Daten zu verwalten, um die Bedürfnisse Ihrer Kunden zu erfüllen.

Gewünschtes Ergebnis: Die Datenmerkmale von Workloads sind mit ausreichenden Details dokumentiert, um die Auswahl und Konfiguration von unterstützenden Datenbanklösungen zu ermöglichen und Einblicke in mögliche Alternativen zu bieten.

Gängige Antimuster:

  • Möglichkeiten nicht in Betracht ziehen, größere Datensätze, die ähnliche Merkmale aufweisen, in kleinere Datensammlungen aufzuteilen, was dazu führt, dass Chancen verabsäumt werden, um speziell entwickelte Datenbanken zu verwenden, die den Daten- und Wachstumsmerkmalen besser entsprechen.

  • Datenzugriffsmuster nicht vorab identifizieren, was später zu kostspieliger und komplexer Nachbearbeitung führt.

  • Wachstum einschränken, indem Datenspeicherstrategien verwendet werden, die nicht ausreichend schnell skalieren.

  • Einen Datenbanktyp und -anbieter für alle Workloads auswählen.

  • An einer Datenbanklösung festhalten, da es interne Erfahrungen und Wissen über eine bestimmte Datenbanklösung gibt.

  • Eine Datenbanklösung behalten, weil sie in einer On-Premises-Umgebung gut funktioniert hat.

Vorteile der Einführung dieser bewährten Methode: Sie sollten mit allen AWS-Datenbanklösungen vertraut sein, damit Sie die richtige Datenbanklösung für Ihre verschiedenen Workloads bestimmen können. Nachdem Sie die geeignete Datenbanklösung für Ihren Workload ausgewählt haben, können Sie schnell mit diesen Datenbankangeboten experimentieren, um festzustellen, ob sie Ihren Workload-Anforderungen weiterhin entsprechen.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch

  • Potenzielle Kosteneinsparungen werden möglicherweise nicht erkannt.

  • Daten werden möglicherweise nicht im erforderlichen Ausmaß gesichert.

  • Der Datenzugriff und die Speicherleistung sind möglicherweise nicht optimal.

Implementierungsleitfaden

Definieren Sie die Datenmerkmale und Zugriffsmuster Ihrer Workload. Überprüfen Sie alle verfügbaren Datenbanklösungen, um herauszufinden, welche Lösung am besten Ihren Datenanforderungen entspricht. Innerhalb einer bestimmten Workload können mehrere Datenbanken ausgewählt werden. Evaluieren Sie jeden Service oder jede Servicegruppe und führen Sie eine individuelle Bewertung durch. Wenn potenzielle alternative Datenverwaltungslösungen für alle oder Teile der Daten identifiziert werden, experimentieren Sie mit unterschiedlichen Implementierungen, die zu Vorteilen hinsichtlich Kosten, Sicherheit, Leistung und Zuverlässigkeit führen können. Aktualisieren Sie die bestehende Dokumentation, falls ein neuer Ansatz zur Datenverwaltung eingeführt wird.

Typ AWS-Services Schlüsselmerkmale Gängige Anwendungsfälle
Relational Amazon RDS, Amazon Aurora Referenzielle Integrität, ACID-Transaktionen, Schema-on-Write ERP, CRM, kommerzielle Standardsoftware
Schlüssel-Werte-Datenbanken Amazon DynamoDB Hoher Durchsatz, geringe Latenz, beinahe unendliche Skalierbarkeit Einkaufswagen (E-Commerce), Produktkataloge, Chat-Anwendungen
Dokumentdatenbanken Amazon DocumentDB JSON-Dokumente speichern und Abfragen zu jedem Attribut durchführen Content-Management (CMS), Kundenprofile, mobile Anwendungen
In-Memory Amazon ElastiCache, Amazon MemoryDB Latenz im Mikrosekundenbereich Caching, Ranglisten für Spiele
Graphdatenbanken Amazon Neptune Höchst relationale Daten, wobei die Beziehung zwischen Daten von Bedeutung ist Soziale Netzwerke, Personalisierungs-Engines, Betrugserkennung
Zeitreihendatenbanken Amazon Timestream Daten, bei denen Zeit wesentlich ist DevOps, IoT, Überwachung
Wide-Column-Datenbanken Amazon Keyspaces Cassandra-Workloads Instandhaltung von Industrieanlagen, Routenoptimierung
Ledger-Datenbanken Amazon QLDB Unveränderliches und kryptografisch überprüfbares Änderungs-Ledger Systems of Record, Gesundheitswesen, Lieferketten, Finanzinstitute

Implementierungsschritte

  1. Wie sind die Daten strukturiert? (z. B. nicht strukturiert, Schlüssel-Wert, halbstrukturiert, relational)

    1. Wenn die Daten nicht strukturiert sind, erwägen Sie einen Objektspeicher wie Amazon S3 oder eine NoSQL-Datenbank wie Amazon DocumentDB.

    2. Erwägen Sie für Schlüssel-Werte-Daten DynamoDB, ElastiCache für Redis oder MemoryDB.

    3. Welche Ebene an Referenzintegrität ist erforderlich, wenn die Daten über eine relationale Struktur verfügen?

      1. Bei Fremdschlüsseleinschränkungen können relationale Datenbanken wie Amazon RDS und Aurora diese Integritätsebene bieten.

      2. Üblicherweise würden Sie innerhalb eines NoSQL-Datenmodells Ihre Daten in ein einzelnes Dokument oder eine Sammlung von Dokumenten denormalisieren, die in einer einzelnen Anfrage abgerufen werden können, anstatt Daten in Dokumenten oder Tabellen zusammenzufügen. 

  2. Ist AKID-Compliance (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) erforderlich?

    1. Wenn mit relationalen Datenbanken zusammenhängende AKID-Eigenschaften erforderlich sind, erwägen Sie eine relationale Datenbank wie Amazon RDS und Aurora.

  3. Welches Konsistenzmodell ist erforderlich?

    1. Wenn Ihre Anwendung eventuelle Kohärenz tolerieren kann, ziehen Sie eine NoSQL-Implementierung in Erwägung. Überprüfen Sie die anderen Eigenschaften, um zu bestimmen, welche NoSQL-Datenbank am besten geeignet ist.

    2. Wenn strikte Konsistenz erforderlich ist, können Sie strikt konsistente Lesevorgänge mithilfe von DynamoDB durchführen oder mit einer relationalen Datenbank wie Amazon RDSevaluieren.

  4. Welche Abfrage- und Ergebnisformate müssen unterstützt werden? (z. B. SQL, CSV, Parque, Avro, JSON usw.)

  5. Welche Datentypen, Feldgrößen und Gesamtmengen sind vorhanden? (z. B. Text, numerische, räumliche, zeitreihenkalkulierte, binäre oder BLOB-Daten)

  6. Wie ändern sich die Speicheranforderungen im Laufe der Zeit? Wie beeinflusst dies die Skalierbarkeit?

    1. Serverless-Datenbanken wie DynamoDB und Amazon Quantum Ledger Database skalieren dynamisch auf beinahe unbeschränkten Speicher.

    2. Relationale Datenbanken haben oftmals Obergrenzen bei bereitgestelltem Speicher und müssen mithilfe von Mechanismen wie Sharding horizontal partitioniert werden, sobald sie diese Grenzen erreicht haben.

  7. In welcher Proportion stehen Leseabfragen zu Schreibabfragen? Könnte Caching die Leistung verbessern?

    1. Leseintensive Workloads könnten von einer Caching-Ebene profitieren. Diese könnte ElastiCache oder DAX sein, wenn es sich bei der Datenbank um DynamoDB handelt.

    2. Lesevorgänge können auch zu Read Replicas mit relationalen Datenbanken ausgelagert werden, wie Amazon RDSevaluieren.

  8. Wird Speicher und Modifizierung (OLTP – Online Transaction Processing) oder Abruf und Berichterstattung (OLAP – Online Analytical Processing) eine höhere Priorität eingeräumt?

    1. Erwägen Sie für Transaktionsverarbeitung mit hohem Durchsatz eine NoSQL-Datenbank wie DynamoDB oder Amazon DocumentDB.

    2. Erwägen Sie für analytische Abfragen eine spaltenbasierte Datenbank wie Amazon Redshift oder das Exportieren von Daten zu Amazon S3 und das Durchführen von Analysen mithilfe von Athena oder QuickSight.

  9. Wie sensibel sind die Daten und welches Ausmaß an Schutz und Verschlüsselung erfordern sie?

    1. Alle Amazon RDS- und Aurora-Engines unterstützen Datenverschlüsselung im Ruhezustand mithilfe von AWS KMS. Microsoft SQL Server und Oracle unterstützen auch Transparent Data Encryption (TDE), wenn Amazon RDS verwendet wird.

    2. Sie können für DynamoDB eine differenzierte Zugriffskontrolle mit IAM verwenden, um zu steuern, wer Zugriff auf welche Daten auf Schlüsselebene hat.

  10. Welches Ausmaß an Stabilität erfordern die Daten?

    1. Aurora repliziert Ihre Daten automatisch in drei Availability Zones innerhalb von einer Region, was bedeutet, dass Ihre Daten hochbeständig sind und eine geringere Wahrscheinlichkeit von Datenverlust besteht.

    2. DynamoDB wird automatisch in mehreren Availability Zones repliziert und bietet hohe Verfügbarkeit und Datenstabilität.

    3. Amazon S3 bietet eine Stabilitätsgarantie von 99,999999999 %. Viele Datenbankservices wie Amazon RDS und DynamoDB unterstützen das Exportieren von Daten zu Amazon S3 für Langzeitaufbewahrung und Archivierung.

  11. Beeinflussen die Anforderungen an die Wiederherstellungsdauer (Recovery Time Objective, RTO) oder den Wiederherstellungszeitpunkt (Recovery Point Objective, RPO) die Lösung?

    1. Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB und Neptune unterstützen alle Point-in-Time-Wiederherstellung und On-Demand-Sicherung und -Wiederherstellung. 

    2. Bei Anforderungen für eine hohe Verfügbarkeit können DynamoDB-Tabellen mithilfe der Funktion Globale Tabellen global repliziert werden und Aurora-Cluster können mithilfe der Funktion „Globale Datenbanken“ innerhalb von mehreren Regionen repliziert werden. Zusätzlich können S3-Buckets in AWS-Regionen mithilfe von regionsübergreifender Replikation repliziert werden. 

  12. Besteht der Wunsch, sich von kommerziellen Datenbank-Engines/Lizenzkosten zu entfernen?

    1. Ziehen Sie Open-Source-Engines wie PostgreSQL und MySQL auf Amazon RDS oder Aurora in Erwägung.

    2. Nutzen Sie AWS DMS und AWS SCT zum Migrieren von kommerziellen Datenbank-Engines zu Open Source-Lösungen.

  13. Was ist die Betriebserwartung an die Datenbank? Ist der Umstieg zu verwalteten Services eine Priorität?

    1. Das Verwenden von Amazon RDS anstatt von Amazon EC2 und DynamoDB oder Amazon DocumentDB anstatt eine NoSQL-Datenbank selbst zu hosten kann den Betriebsaufwand verringern.

  14. Wie erfolgt derzeit der Zugriff auf die Datenbank? Handelt es sich nur um einen Anwendungszugriff oder gibt es Business-Intelligence (BI)-Benutzer und andere Standardanwendungen?

    1. Wenn Sie von externen Tools abhängig sind, müssen Sie möglicherweise mit der Datenbank, die unterstützt wird, die Kompatibilität aufrecht erhalten. Amazon RDS ist vollständig kompatibel mit den unterschiedlichen Engine-Versionen, die unterstützt werden, einschließlich Microsoft SQL Server, Oracle, MySQL und PostgreSQL.

  15. Nachstehend finden Sie eine Liste von möglichen Datenmanagementservices und wo diese am besten verwendet werden können:

    1. In relationalen Datenbanken werden Daten mit vordefinierten Schemata und Beziehungen zwischen ihnen gespeichert. Diese Datenbanken unterstützen AKID-Transaktionen (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit) und gewährleisten die referentielle Integrität sowie eine starke Datenkonsistenz. Bei zahlreichen herkömmlichen Anwendungen, Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) und E-Commerce werden relationale Datenbanken zum Speichern der Daten verwendet. Viele dieser Datenbank-Engines können Sie in Amazon EC2 ausführen oder Sie können einen der von AWS verwalteten Datenbankservices nutzenAmazon AuroraAmazon RDSund Amazon Redshiftevaluieren.

    2. Schlüssel-Werte-Datenbanken sind auf gängige Zugriffsmuster ausgelegt, üblicherweise zum Speichern und Abrufen großer Datenmengen. Diese Datenbanken bieten kurze Reaktionszeiten, selbst bei extrem großen Mengen gleichzeitiger Anforderungen. Web-Apps mit hohem Datenverkehr, E-Commerce-Systeme und Gaming-Anwendungen sind typische Anwendungsfälle für Schlüssel-Werte-Datenbanken. In AWS können Sie Amazon DynamoDBverwenden, eine vollständig verwaltete, regionsübergreifende, beständige Multi-Master-Datenbank mit integrierter Sicherheit, Sicherung und Wiederherstellung sowie In-Memory-Caching für internetfähige Anwendungen.

    3. In-Memory-Datenbanken werden für Anwendungen eingesetzt, die einen Echtzeitzugriff auf Daten, die niedrigste Latenz und den höchsten Durchsatz erfordern. Durch das direkte Speichern von Daten im Arbeitsspeicher liefern diese Datenbanken eine Latenz im Mikrosekundenbereich für Anwendungen, wo eine Latenz im Millisekundenbereich nicht ausreicht. Sie können In-Memory-Datenbanken für Anwendungs-Caching, Sitzungsverwaltung, Gaming-Bestenlisten und Geodatenanwendungen verwenden. Amazon ElastiCache ist ein vollständig verwalteter In-Memory-Datenspeicher, der mit Redis oder Memcachedevaluieren. Wenn die Anwendungen eine höhere Stabilität erfordern, bietet Amazon MemoryDB für Redis eine Kombination, da es ein stabiler In-Memory-Datenbankservice für ultraschnelle Leistung ist.

    4. Eine Dokumentdatenbank ist darauf ausgelegt, halbstrukturierte Daten als JSON-ähnliche Dokumente zu speichern. Mit diesen Datenbanken können Entwickler Anwendungen wie Content Management, Kataloge und Benutzerprofile schnell erstellen und aktualisieren. Amazon DocumentDB ist ein schneller, skalierbarer, hochverfügbarer und vollständig verwalteter Dokumentdatenbank-Service, der MongoDB-Workloads unterstützt.

    5. Ein Wide Column-Speicher ist eine Art NoSQL-Datenbank. Sie verwendet Tabellen, Zeilen und Spalten, aber im Gegensatz zu einer relationalen Datenbank können sich die Namen und das Format der Spalten von Zeile zu Zeile in derselben Tabelle unterscheiden. In der Regel werden Wide Column-Speicher in umfangreichen Branchen-Apps für Gerätewartung, Flottenverwaltung und Routenoptimierung eingesetzt. Amazon Keyspaces (für Apache Cassandra) ist ein skalierbarer, hoch verfügbarer und verwalteter Apache Cassandra-kompatibler Datenbankservice.

    6. Graph-Datenbanken sind für Anwendungen gedacht, die in Millionen von Beziehungen zwischen hochgradig vernetzten Diagrammdatensätzen mit Millisekunden-Latenz navigieren und diese abfragen müssen. Viele Unternehmen verwenden Graph-Datenbanken für Betrugserkennung, soziale Netzwerke und Empfehlungs-Engines. Amazon Neptune ist ein schneller, zuverlässiger, vollständig verwalteter Graph-Datenbankservice, der das Erstellen und Ausführen von Anwendungen vereinfacht, die mit hochgradig verbundenen Datensätzen arbeiten.

    7. Zeitreihen-Datenbanken erfassen, generieren und gewinnen auf effiziente Weise Einblicke aus Daten, die sich im Laufe der Zeit ändern. IoT-Anwendungen, DevOps und industrielle Telemetrie können Zeitreihen-Datenbanken nutzen. Amazon Timestream ist ein schneller, skalierbarer, vollständig verwalteter Zeitreihen-Datenbankservice für IoT- und Betriebsanwendungen, der das Speichern und Analysieren von Billionen von Ereignissen pro Tag vereinfacht.

    8. Ledger-Datenbanken bieten eine zentrale und vertrauenswürdige Instanz für die Verwaltung einer skalierbaren, unveränderlichen und kryptografisch überprüfbaren Aufzeichnung von Transaktionen für jede Anwendung. Ledger-Datenbanken werden für Datensatzsysteme, Lieferketten, Registrierungen und sogar Banktransaktionen verwendet. Amazon Quantum Ledger Database (Amazon QLDB) ist eine vollständig verwaltete Ledger-Datenbank, die ein transparentes, unveränderliches und kryptografisch überprüfbares Transaktionsprotokoll bereitstellt, das sich im Besitz einer zentralen vertrauenswürdigen Stelle befindet. Amazon QLDB verfolgt jede Änderung der Anwendungsdaten und pflegt einen vollständigen und überprüfbaren Änderungsverlauf.

Grad des Aufwands für den Implementierungsplan: Wenn eine Workload von einer Datenbanklösung zu einer anderen verschoben wird, stellt dies möglicherweise einen hohen Grad des Aufwands beim Faktorwechsel der Daten und Anwendung dar.  

Ressourcen

Zugehörige Dokumente:

Relevante Videos:

Zugehörige Beispiele: