PERF03-BP01 Verwenden eines speziell entwickelten Datenspeichers, der die Datenzugriffs- und Speicheranforderungen am besten unterstützt - AWS Well-Architected Framework

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 den 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 unterbewerten, können Sie die effizienteste und leistungsfähigste Speichertechnologie ermitteln, die für Ihre Workload-Anforderungen geeignet ist.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: 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 Ihrem 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)

    • Latenz

    • Durchsatz

    • IOPS (Eingabe-/Ausgabevorgänge pro Sekunde)

    • Aufbewahrungsfrist der Daten

  • Erfahren Sie mehr über die verschiedenen Datenspeicher (Speicher- und Datenbank-Services), die für Ihren 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
    Object storage Amazon S3 Unlimited scalability, high availability, and multiple options for accessibility. Transferring and accessing objects in and out of Amazon S3 can use a service, such as Transfer Acceleration or Zugriffspunkte, to support your location, security needs, and access patterns.
    Archiving storage Amazon S3 Glacier Built for data archiving.
    Streaming storage

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    Efficient ingestion and storage of streaming data.
    Shared file system

    Amazon Elastic File System (Amazon EFS)

    Bereitstellbares Dateisystem, auf das mehrere Arten von Datenverarbeitungslösungen zugreifen können.

    Shared file system Amazon FSx Built on the latest AWS compute solutions to support four commonly used file systems: NetApp ONTAP, OpenZFS, Windows File Server, and Lustre. Amazon FSx variieren vary per file system and should be considered when selecting the right file system for your workload needs.
    Block storage Amazon Elastic Block Store (Amazon EBS) Scalable, high-performance block-storage service designed for Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS includes SSD-backed storage for transactional, IOPS-intensive workloads and HDD-backed storage for throughput-intensive workloads.
    Relational database Amazon AuroraAmazon RDSAmazon Redshift. Designed to support ACID (atomicity, consistency, isolation, durability) transactions, and maintain referential integrity and strong data consistency. Many traditional applications, enterprise resource planning (ERP), customer relationship management (CRM), and ecommerce use relational databases to store their data.
    Key-value database Amazon DynamoDB Optimized for common access patterns, typically to store and retrieve large volumes of data. High-traffic web apps, ecommerce systems, and gaming applications are typical use-cases for key-value databases.
    Document database Amazon DocumentDB Designed to store semi-structured data as JSON-like documents. These databases help developers build and update applications such as content management, catalogs, and user profiles quickly. 
    In-memory database Amazon ElastiCache , Amazon MemoryDB für Redis Used for applications that require real-time access to data, lowest latency and highest throughput. You may use in-memory databases for application caching, session management, gaming leaderboards, low latency ML feature store, microservices messaging system, and a high-throughput streaming mechanism
    Graph database Amazon Neptune Used for applications that must navigate and query millions of relationships between highly connected graph datasets with millisecond latency at large scale. Many companies use graph databases for fraud detection, social networking, and recommendation engines.
    Time Series database Amazon Timestream Used to efficiently collect, synthesize, and derive insights from data that changes over time. IoT applications, DevOps, and industrial telemetry can utilize time-series databases.
    Wide column Amazon Keyspaces (für Apache Cassandra) Uses tables, rows, and columns, but unlike a relational database, the names and format of the columns can vary from row to row in the same table. You typically see a wide column store in high scale industrial apps for equipment maintenance, fleet management, and route optimization. 
    Ledger Amazon Quantum Ledger Database (Amazon QLDB) Provides a centralized and trusted authority to maintain a scalable, immutable, and cryptographically verifiable record of transactions for every application. We see ledger databases used for systems of record, supply chain, registrations, and even banking transactions.  
  • Wenn Sie eine Datenplattform aufbauen, nutzen Sie 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 Ihren Workload berücksichtigen müssen, lauten wie folgt:

    Question Things to consider
    How is the data structured?
    What level of referential integrity is required?
    • 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. 

    Is ACID (atomicity, consistency, isolation, durability) compliance required?
    • Wenn mit relationalen Datenbanken zusammenhängende AKID-Eigenschaften erforderlich sind, erwägen Sie eine relationale Datenbank wie Amazon RDS und Aurora.

    • Wenn strikte Konsistenz für eine NoSQL-Datenbank erforderlich ist, können Sie strikt konsistente Lesevorgänge mithilfe von DynamoDB verwenden.

    How will the storage requirements change over time? How does this impact scalability?
    • 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.

    What is the proportion of read queries in relation to write queries? Would caching be likely to improve performance?
    • Leseintensive Workloads können 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 wie Amazon RDS ausgelagert werden.

    Does storage and modification (OLTP - Online Transaction Processing) or retrieval and reporting (OLAP - Online Analytical Processing) have a higher priority?
    • 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.

    What level of durability does the data require?
    • 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.

    • 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.

    Is there a desire to move away from commercial database engines or licensing costs?
    What is the operational expectation for the database? Is moving to managed services a primary concern?
    • 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.

    How is the database currently accessed? Is it only application access, or are there business intelligence (BI) users and other connected off-the-shelf applications?
    • 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:

Zugehörige Beispiele: