PERF03-BP01 Verwenden eines speziell entwickelten Datenspeichers, der die Datenzugriffs- und Speicheranforderungen am besten unterstützt
Machen Sie sich mit Datenmerkmalen (wie Freigabe, Größe, Cache-Größe, Zugriffsmuster, Latenz, Durchsatz und Persistenz von Daten) vertraut, um die richtigen, speziell entwickelten Datenspeicher (Speicher oder Datenbank) für die Workload auszuwählen.
Typische Anti-Muster:
-
Sie halten an einem Datenspeicher fest, da es interne Erfahrungen und Wissen über eine bestimmte Datenbanklösung gibt.
-
Sie gehen davon aus, dass für alle Workloads ähnliche Datenspeicher- und Zugriffsanforderungen gelten.
-
Sie haben keinen Datenkatalog zur Inventarisierung Ihrer Datenbestände eingeführt.
Vorteile der Nutzung dieser bewährten Methode: Wenn Sie die Datenmerkmale und -anforderungen verstehen, können Sie die effizienteste und leistungsfähigste Speichertechnologie ermitteln, die für Ihre Workload-Anforderungen geeignet ist.
Risikostufe bei fehlender Befolgung dieser bewährten Methode: Hoch
Implementierungsleitfaden
Stellen Sie bei der Auswahl und Implementierung von Datenspeicher sicher, dass die Abfrage-, Skalierungs- und Speichermerkmale die Workload-Datenanforderungen unterstützen. AWS bietet zahlreiche Datenspeicher- und Datenbanktechnologien, darunter Blockspeicher, Objektspeicher, Streaming-Speicher, Dateisystem-, relationale, Schlüsselwert-, 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. Wenn Sie die Merkmale und Anforderungen der Daten verstehen, können Sie sich von monolithischer Speichertechnologie und restriktiven Einheitsansätzen lösen und sich auf eine angemessene Datenverwaltung konzentrieren.
Implementierungsschritte
-
Führen Sie eine Bestandsaufnahme der verschiedenen Datentypen durch, die in Ihrer Workload vorhanden sind.
-
Verstehen und dokumentieren Sie Datenmerkmale und -anforderungen, einschließlich:
-
Datentyp (strukturiert, semistrukturiert, relational)
-
Datenvolumen und -wachstum
-
Lebensdauer von Daten: anhaltend, flüchtig, vorübergehend
-
Anforderungen an AKID (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit)
-
Datenzugriffsmuster (leseintensiv oder schreibintensiv)
-
Latency
-
Durchsatz
-
IOPS (Eingabe-/Ausgabevorgänge pro Sekunde)
-
Aufbewahrungszeitraum
-
-
Erfahren Sie mehr über die verschiedenen Datenspeicher (Speicher- und Datenbank-Services), die für Ihre Workload in AWS verfügbar sind und Ihre Datenmerkmale erfüllen können (wie beschrieben unter PERF01-BP01 Informieren über verfügbare Cloud-Services und -Features). Einige Beispiele für AWS-Speichertechnologien und ihre Schlüsselmerkmale sind:
Typ AWS-Services Schlüsselmerkmale Objektspeicher Amazon S3 Unbegrenzte Skalierbarkeit, hohe Verfügbarkeit und mehrere Optionen für Barrierefreiheit. Für die Übertragung von Objekten in und aus Amazon S3 und den Zugriff auf diese Objekte können Sie einen Service wie z. B. Transfer Acceleration oder Zugangspunkte verwenden, um Ihren Standort, Ihre Sicherheitsanforderungen und Zugriffsmuster zu unterstützen. Archivieren von Speichern Amazon S3 Glacier Für die Datenarchivierung entwickelt. Streaming-Speicher Effiziente Erfassung und Speicherung von Streaming-Daten. Gemeinsames Dateisystem Bereitstellbares Dateisystem, auf das mehrere Arten von Datenverarbeitungslösungen zugreifen können.
Gemeinsames Dateisystem Amazon FSx Basiert auf den aktuellen AWS-Datenverarbeitungslösungen und unterstützt vier gängige Dateisysteme: NetApp ONTAP, OpenZFS, Windows File Server und Lustre. Die Amazon FSx-Latenz, der Durchsatz und die IOPS variieren je nach Dateisystem und sollten bei der Auswahl des richtigen Dateisystems für Ihre Workload-Anforderungen berücksichtigt werden. Blockspeicher Amazon Elastic Block Store (Amazon EBS) Skalierbarer, hochleistungsfähiger Blockspeicherservice für Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS umfasst SSD-gestützten Speicher für transaktions- und IOPS-intensive Workloads und HDD-gestützten Speicher für durchsatzintensive Workloads. Relationale Datenbank Amazon Aurora , Amazon RDS , Amazon Redshift . Sie unterstützt AKID-Transaktionen (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit) und gewährleistet 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. Schlüssel-Werte-Datenbank Amazon-DynamoDB Für gängige Zugriffsmuster optimiert, üblicherweise zum Speichern und Abrufen großer Datenmengen. Web-Apps mit hohem Datenverkehr, E-Commerce-Systeme und Gaming-Anwendungen sind typische Anwendungsfälle für Schlüssel-Werte-Datenbanken. Dokumentdatenbank Amazon DocumentDB Dies wurde entwickelt, um 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. In-Memory-Datenbanken Amazon ElastiCache , Amazon MemoryDB für Redis Dies wird für Anwendungen eingesetzt, die einen Echtzeitzugriff auf Daten, die niedrigste Latenz und den höchsten Durchsatz erfordern. Sie können In-Memory-Datenbanken für Anwendungs-Caching, Sitzungsmanagement, Gaming-Bestenlisten, ML-Feature-Store mit niedriger Latenz, Microservices-Messaging-System und einen Streaming-Mechanismus mit hohem Durchsatz verwenden Graphdatenbank Amazon Neptune Dies ist 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 Graphdatenbanken für Betrugserkennung, soziale Netzwerke und Empfehlungs-Engines. Zeitreihendatenbank Amazon Timestream Diese erfasst, generiert und gewinnt auf effiziente Weise Einblicke aus Daten, die sich im Laufe der Zeit ändern. IoT-Anwendungen, DevOps und industrielle Telemetrie können Zeitreihendatenbanken nutzen. Wide-Column-Datenbanken Amazon Keyspaces (für Apache Cassandra) Es werden Tabellen, Zeilen und Spalten verwendet, 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. Ledger Amazon Quantum Ledger Database (Amazon QLDB) Dies bietet 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. -
Wenn Sie eine Datenplattform aufbauen, nutzen Sie eine moderne Datenarchitektur
in AWS, um Ihren Data Lake, Ihr Data Warehouse und Ihre speziell entwickelten Datenspeicher zu integrieren. -
Die wichtigsten Fragen, die Sie bei der Auswahl eines Datenspeichers für Ihre Workload berücksichtigen müssen, lauten wie folgt:
Frage Worauf Sie achten sollten Wie sind die Daten strukturiert? -
Wenn die Daten nicht strukturiert sind, erwägen Sie einen Objektspeicher wie Amazon S3
oder eine NoSQL-Datenbank wie Amazon DocumentDB . -
Erwägen Sie für Schlüssel-Werte-Daten DynamoDB
, Amazon ElastiCache (Redis OSS) oder Amazon MemoryDB .
Welches Maß an referentieller Integrität ist erforderlich? -
Bei Fremdschlüsseleinschränkungen können relationale Datenbanken wie Amazon RDS
und Aurora diese Integritätsebene bieten. -
Ü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.
Ist AKID-Compliance (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) erforderlich? -
Wenn mit relationalen Datenbanken zusammenhängende AKID-Eigenschaften erforderlich sind, erwägen Sie eine relationale Datenbank wie Amazon RDS
und Aurora . -
Wenn eine starke Konsistenz für eine NoSQL-Datenbank
erforderlich ist, können Sie strikt konsistente Lesevorgänge mit DynamoDB verwenden.
Wie ändern sich die Speicheranforderungen im Laufe der Zeit? Wie beeinflusst dies die Skalierbarkeit? -
Serverless-Datenbanken wie DynamoDB
und Amazon Quantum Ledger Database (Amazon QLDB) skalieren dynamisch. -
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.
Wie hoch ist der Anteil der Leseabfragen im Verhältnis zu den Schreibabfragen? Könnte Caching die Leistung verbessern? -
Leseintensive Workloads könnten von einer Caching-Ebene, wie ElastiCache
oder DAX profitieren, wenn es sich bei der Datenbank um DynamoDB handelt. -
Lesevorgänge können auch zu Read Replicas mit relationalen Datenbanken ausgelagert werden, wie Amazon RDS
.
Wird Speicher und Modifizierung (OLTP – Online Transaction Processing) oder Abruf und Berichterstattung (OLAP – Online Analytical Processing) eine höhere Priorität eingeräumt? -
Erwägen Sie für Read-as-is-Transaktionsverarbeitung mit hohem Durchsatz eine NoSQL-Datenbank wie DynamoDB.
-
Verwenden Sie Amazon RDS für hohen Durchsatz und komplexe Lesemuster (wie Join) mit Konsistenz.
-
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 Amazon QuickSight .
Welches Ausmaß an Stabilität erfordern die Daten? -
Aurora repliziert Ihre Daten automatisch in drei Availability Zones innerhalb einer Region, was bedeutet, dass Ihre Daten hochbeständig sind und eine geringere Wahrscheinlichkeit von Datenverlust besteht.
-
DynamoDB wird automatisch in mehreren Availability Zones repliziert und bietet hohe Verfügbarkeit und Datenstabilität.
-
Amazon S3 bietet eine Langlebigkeit mit 11 Neunen. Viele Datenbankservices wie Amazon RDS und DynamoDB unterstützen das Exportieren von Daten zu Amazon S3 für Langzeitaufbewahrung und Archivierung.
Besteht der Wunsch, sich von kommerziellen Datenbank-Engines oder Lizenzkosten zu entfernen? -
Ziehen Sie Open-Source-Engines wie PostgreSQL und MySQL auf Amazon RDS oder Aurora in Erwägung.
-
Nutzen Sie AWS Database Migration Service
und AWS Schema Conversion Tool zum Migrieren von kommerziellen Datenbank-Engines zu Open Source-Lösungen.
Was ist die Betriebserwartung an die Datenbank? Ist der Umstieg zu verwalteten Services eine Priorität? -
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.
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? -
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.
-
-
Führen Sie Experimente und Benchmarking in einer Nicht-Produktionsumgebung durch, um herauszufinden, welcher Datenspeicher Ihre Workload-Anforderungen erfüllen kann.
Ressourcen
Zugehörige Dokumente:
Zugehörige Videos:
-
AWS re:Invent 2023: Improve Amazon Elastic Block Store efficiency and be more cost-efficient
-
AWS re:Invent 2023: Optimizing storage price and performance with Amazon Simple Storage Service
-
AWS re:Invent 2023: Building and optimizing a data lake on Amazon Simple Storage Service
-
AWS re:Invent 2022: Building modern data architectures on AWS
-
AWS re:Invent 2023: Deep dive into Amazon Aurora and its innovations
-
AWS re:Invent 2023: Advanced data modeling with Amazon DynamoDB
-
AWS re:Invent 2022: Modernize apps with purpose-built databases
-
Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster
Zugehörige Beispiele: