

# LEIST 4 Was ist bei der Wahl der Datenbanklösung zu beachten?
<a name="w2aac19c11b5c11"></a>

 Welche Datenbanklösung sich am besten für ein System eignet, hängt von der erforderlichen Verfügbarkeit, Konsistenz, Partitionstoleranz, Latenz, Langlebigkeit, Skalierbarkeit und Abfragefähigkeit ab. Viele Systeme nutzen für verschiedene Untersysteme unterschiedliche Datenbanklösungen und unterstützen unterschiedliche Funktionen zur Leistungsoptimierung. Die Wahl der falschen Datenbanklösung und -funktionen kann die Leistungseffizienz eines Systems schmälern. 

**Topics**
+ [PERF04-BP01 Verstehen von Datenmerkmalen](perf_right_database_solution_understand_char.md)
+ [PERF04-BP02 Prüfen der verfügbaren Optionen](perf_right_database_solution_evaluate_options.md)
+ [PERF04-BP03 Erfassen und Aufzeichnen von Metriken zur Datenbankleistung](perf_right_database_solution_collect_metrics.md)
+ [PERF04-BP04 Wählen des Datenspeichers nach Zugriffsmuster](perf_right_database_solution_access_patterns.md)
+ [PERF04-BP05 Optimieren des Datenspeicher nach Zugriffsmuster und Metriken](perf_right_database_solution_optimize_metrics.md)

# PERF04-BP01 Verstehen von Datenmerkmalen
<a name="perf_right_database_solution_understand_char"></a>

 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
<a name="implementation-guidance"></a>

 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](https://aws.amazon.com/products/storage/data-lake-storage/) oder eine NoSQL-Datenbank wie [Amazon DocumentDB.](https://aws.amazon.com/documentdb/) 

   1.  Erwägen Sie für Schlüssel-Werte-Daten [DynamoDB](https://aws.amazon.com/documentdb/), [ElastiCache für Redis](https://aws.amazon.com/elasticache/redis/) oder [MemoryDB.](https://aws.amazon.com/memorydb/) 

   1.  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](https://aws.amazon.com/rds/) und [Aurora](https://aws.amazon.com/rds/aurora/) diese Integritätsebene bieten. 

      1.  Ü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.  

1.  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](https://aws.amazon.com/rds/) und [Aurora.](https://aws.amazon.com/rds/aurora/) 

1.  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](https://aws.amazon.com/nosql/) am besten geeignet ist. 

   1.  Wenn strikte Konsistenz erforderlich ist, können Sie strikt konsistente Lesevorgänge mithilfe von [DynamoDB](https://aws.amazon.com/documentdb/) durchführen oder mit einer relationalen Datenbank wie [Amazon RDS](https://aws.amazon.com/rds/)evaluieren. 

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

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

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

   1.  Serverless-Datenbanken wie [DynamoDB](https://aws.amazon.com/documentdb/) und [Amazon Quantum Ledger Database](https://aws.amazon.com/qldb/) skalieren dynamisch auf beinahe unbeschränkten Speicher. 

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

1.  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](https://aws.amazon.com/elasticache/) oder [DAX](https://aws.amazon.com/dynamodb/dax/) sein, wenn es sich bei der Datenbank um DynamoDB handelt. 

   1.  Lesevorgänge können auch zu Read Replicas mit relationalen Datenbanken ausgelagert werden, wie [Amazon RDS](https://aws.amazon.com/rds/)evaluieren. 

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

   1.  Erwägen Sie für analytische Abfragen eine spaltenbasierte Datenbank wie [Amazon Redshift](https://aws.amazon.com/redshift/) oder das Exportieren von Daten zu Amazon S3 und das Durchführen von Analysen mithilfe von [Athena](https://aws.amazon.com/athena/) oder [QuickSight.](https://aws.amazon.com/quicksight/) 

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

   1.  Sie können für DynamoDB eine differenzierte Zugriffskontrolle mit [IAM](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html) verwenden, um zu steuern, wer Zugriff auf welche Daten auf Schlüsselebene hat. 

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

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

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

1.  Beeinflussen die Anforderungen an [die Wiederherstellungsdauer (Recovery Time Objective, RTO) oder den Wiederherstellungszeitpunkt (Recovery Point Objective, RPO)](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/plan-for-disaster-recovery-dr.html) 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.  

   1.  Bei Anforderungen für eine hohe Verfügbarkeit können DynamoDB-Tabellen mithilfe der Funktion [Globale Tabellen](https://aws.amazon.com/dynamodb/global-tables/) 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.  

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

   1.  Nutzen Sie [AWS DMS](https://aws.amazon.com/dms/) und [AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/) zum Migrieren von kommerziellen Datenbank-Engines zu Open Source-Lösungen. 

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

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

1.  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 nutzen](https://aws.amazon.com/products/databases/): [Amazon Aurora](https://aws.amazon.com/rds/aurora), [Amazon RDS](https://aws.amazon.com/rds)und [Amazon Redshift](https://aws.amazon.com/redshift)evaluieren. 

   1.  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 DynamoDB](https://aws.amazon.com/dynamodb/)verwenden, 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. 

   1.  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](https://aws.amazon.com/elasticache/) ist ein vollständig verwalteter In-Memory-Datenspeicher, der mit [Redis](https://aws.amazon.com/elasticache/redis/) oder [Memcached](https://aws.amazon.com/elasticache/memcached)evaluieren. Wenn die Anwendungen eine höhere Stabilität erfordern, bietet [Amazon MemoryDB für Redis](https://aws.amazon.com/memorydb/) eine Kombination, da es ein stabiler In-Memory-Datenbankservice für ultraschnelle Leistung ist. 

   1.  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](https://aws.amazon.com/documentdb/) ist ein schneller, skalierbarer, hochverfügbarer und vollständig verwalteter Dokumentdatenbank-Service, der MongoDB-Workloads unterstützt. 

   1.  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)](https://aws.amazon.com/mcs/) ist ein skalierbarer, hoch verfügbarer und verwalteter Apache Cassandra-kompatibler Datenbankservice. 

   1.  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](https://aws.amazon.com/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. 

   1.  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](https://aws.amazon.com/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. 

   1.  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)](https://aws.amazon.com/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
<a name="resources"></a>

 **Zugehörige Dokumente:** 
+  [Cloud-Datenbanken mit AWS ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS-Datenbank-Caching ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Bewährte Methoden für Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift-Leistung ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Die besten 10 Leistungstipps für Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Bewährte Methoden für Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Bewährte MethodenAmazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 
+  [Wählen Sie zwischen EC2 und Amazon RDS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/comparison.html) 
+  [Bewährte Methoden für die Implementierung von Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 

 **Relevante Videos:** 
+ [Speziell entwickelte AWS-Datenbanken (DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+ [Verständliche Beschreibung des Amazon Aurora-Speichers: Funktionsweise (DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+ [Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **Zugehörige Beispiele:** 
+  [Optimierung von Datenmustern mithilfe von Amazon Redshift Data Sharing](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [Datenbankmigrationen](https://github.com/aws-samples/aws-database-migration-samples) 
+  [MS SQL Server – AWS Database Migration Service (DMS)-Replikationsdemo](https://github.com/aws-samples/aws-dms-sql-server) 
+  [Praktischer Workshop für die Datenbankmodernisierung](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon Neptune-Beispiele](https://github.com/aws-samples/amazon-neptune-samples) 

# PERF04-BP02 Prüfen der verfügbaren Optionen
<a name="perf_right_database_solution_evaluate_options"></a>

 Verstehen Sie die verfügbaren Datenbankoptionen und wie sie Ihre Leistung optimieren können, bevor Sie Ihre Datenverwaltungslösung auswählen. Identifizieren Sie mithilfe von Lasttests Datenbankmetriken, die für Ihre Workload wichtig sind. Während Sie die Datenbanktoptionen erkunden, sollten Sie unterschiedliche Aspekte in Betracht ziehen, wie Parametergruppen, Speicheroptionen, Arbeitsspeicher, Rechenvorgänge, Read Replica, eventuelle Kohärenz, Verbindungs-Pooling und Caching-Optionen. Experimentieren Sie mit diesen unterschiedlichen Konfigurationsoptionen, um die Metriken zu verbessern. 

 **Gewünschtes Ergebnis:** Eine Workload könne eine oder mehrere Datenbanklösungen verwenden, basierend auf Datentypen. Die Funktionen und Vorteile der Datenbank entsprechen optimal den Datenmerkmalen, Zugriffsmustern und Workload-Anforderungen. Zur Optimierung der Leistung und Kosten Ihrer Datenbank müssen Sie die Datenzugriffsmuster auswerten, um die entsprechenden Datenbankoptionen zu bestimmen. Evaluieren Sie akzeptable Abfragezeiten, um sicherzustellen, dass die ausgewählten Datenbankoptionen die Anforderungen erfüllen können. 

 **Gängige Antimuster:** 
+  Sie identifizieren Datenzugriffsmuster nicht. 
+  Ihnen fehlt das Bewusstsein für die Wahl der Konfigurationsoptionen der Datenverwaltungslösung. 
+  Sie verlassen sich ausschließlich auf das Vergrößern der Instance-Größe, ohne andere verfügbare Konfigurationsoptionen in Betracht zu ziehen. 
+  Sie testen die Skalierungsoptionen der ausgewählten Lösung nicht. 

 

 **Vorteile der Einführung dieser bewährten Methode:** Indem Sie Datenbankoptionen erkunden und mit ihnen experimentieren, können Sie möglicherweise Infrastrukturkosten senken, die Leistung und Skalierbarkeit verbessern und den Aufwand zur Verwaltung Ihrer Workloads verringern. 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Hoch 
+  Die Optimierung für eine *Größe, die für alle Datenbanken passt,* bedeutet, dass unnötige Kompromisse eingegangen werden müssen. 
+  Da die Datenbanklösung nicht für die Datenverkehrsmuster konfiguriert ist, entstehen höhere Kosten. 
+  Skalierungsprobleme können Schwierigkeiten beim Betrieb verursachen. 
+  Daten werden möglicherweise nicht im erforderlichen Ausmaß gesichert. 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Sie müssen die Datenmerkmale Ihrer Workload kennen, damit Sie Ihre Datenbankoptionen konfigurieren können. Führen Sie Lasttests durch, um Ihre wesentlichen Leistungsmetriken und Engpässe zu identifizieren. Verwenden Sie diese Merkmale und Metriken, um Datenbankoptionen zu evaluieren und unterschiedliche Konfigurationen auszuprobieren. 


|  AWS-Services  |  Amazon RDS, Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  Skalieren der Rechenvorgänge  |  Erhöhen der Instance-Größe, Aurora-Serverless-Instances skalieren automatisch als Reaktion auf Änderungen der Last  |  Automatisches Skalieren der Lese- und Schreibvorgänge mit einem On-Demand-Kapazitätsmodus oder automatisches Skalieren von bereitgestellter Kapazität für Lese- und Schreibvorgänge im bereitgestellten Kapazitätsmodus  |  Erhöhen der Instance-Größe  |  Erhöhen der Instance-Größe, Hinzufügen von Knoten zu einem Cluster  |  Erhöhen der Instance-Größe  |  Skaliert automatisch, um sich der Kapazität anzupassen  |  Automatisches Skalieren der Lese- und Schreibvorgänge mit einem On-Demand-Kapazitätsmodus oder automatisches Skalieren von bereitgestellter Kapazität für Lese- und Schreibvorgänge im bereitgestellten Kapazitätsmodus  |  Skaliert automatisch, um sich der Kapazität anzupassen  | 
|  Skalieren von Schreibvorgängen  |  Alle Enginges unterstützen Read Replicas. Aurora unterstützt die automatische Skalierung von Read-Replica-Instances  |  Erhöhen bereitgestellter Kapazitätseinheiten für bereitgestellte Lesevorgänge  |  Read Replicas  |  Read Replicas  |  Read Replicas. Unterstützt die automatische Skalierung von Read-Replica-Instances  |  Skaliert automatisch  |  Erhöhen bereitgestellter Kapazitätseinheiten für bereitgestellte Lesevorgänge  |  Skaliert automatisch zu dokumentierten Gleichzeitigkeitseinschränkungen hoch  | 
|  Skalieren von Schreibvorgängen  |  Erhöhen der Instance-Größe, Batching von Schreibvorgängen in der Anwendung oder Hinzufügen einer Warteschlange vor die Datenbank Horizontales Skalieren von mehreren Instances über Sharding auf Anwendungsebene  |  Erhöhen bereitgestellter Kapazitätseinheiten für bereitgestellte Schreibvorgänge Sicherstellen von optimalen Partitionsschlüsseln, um die Drosselung von Schreibvorgängen auf Partitionsebene zu verhindern  |  Erhöhen der primären Instance-Größe  |  Verwenden von Redis im Cluster-Modus, um Schreibvorgänge auf Shards zu verteilen  |  Erhöhen der Instance-Größe  |  Schreibanforderungen können beim Skalieren gedrosselt werden. Wenn Drosselungsausnahmen auftreten, senden Sie Daten weiterhin mit dem gleichen (oder höheren) Durchsatz, um automatisch zu skalieren. Batch-Schreibvorgänge, um gleichzeitige Schreibanforderungen zu verringern  |  Erhöhen bereitgestellter Kapazitätseinheiten für bereitgestellte Schreibvorgänge Sicherstellen von optimalen Partitionsschlüsseln, um die Drosselung von Schreibvorgängen auf Partitionsebene zu verhindern  |  Skaliert automatisch zu dokumentierten Gleichzeitigkeitseinschränkungen hoch  | 
|  Engine-Konfiguration  |  Parametergruppen  |  –  |  Parametergruppen  |  Parametergruppen  |  Parametergruppen  |  –  |  –  |  –  | 
|  Caching  |  In-Memory-Caching, über Parametergruppen konfigurierbar. Koppeln Sie mit einem dedizierten Cache wie ElastiCache für Redis, um Anforderungen für häufig genutzte Elemente auszulagern  |  DAX (DAX) vollständig verwalteter Cache verfügbar  |  In-Memory-Caching. Koppeln Sie optional mit einem dedizierten Cache wie ElastiCache für Redis, um Anforderungen für häufig genutzte Elemente auszulagern.  |  Die primäre Funktion ist das Caching  |  Verwenden Sie den Abfrageergebnis-Cache, um die Ergebnisse der Leseabfrage in den Cache zu speichern  |  Timestream hat zwei Speicherstufen; eine davon ist eine Hochleistungs-In-Memory-Stufe  |  Stellen Sie einen separaten dedizierten Cache wie ElastiCache für Redis bereit, um Anforderungen für häufig genutzte Elemente auszulagern  |  –  | 
|  Hohe Verfügbarkeit / Notfallwiederherstellung  |  Die empfohlene Konfiguration für Produktions-Workloads ist das Ausführen einer Standby-Instance in einer zweiten Availability Zone, um Stabilität innerhalb einer Region zu bieten.  Für die Resilienz in Regionen kann Aurora Global Database verwendet werden  |  Innerhalb einer Region hoch verfügbar. Tabellen können innerhalb von Regionen mithilfe von globalen DynamoDB-Tabellen repliziert werden.  |  Erstellen Sie für die Verfügbarkeit mehrere Instances in Availability Zones.  Schnappschüsse können in Regionen und Clustern mithilfe von DMS repliziert werden, um regionsübergreifende Replikation / Notfallwiederherstellung zu bieten  |  Die empfohlene Konfiguration für Produktions-Cluster ist, zumindest einen Knoten in einer sekundären Availability Zone zu erstellen.  Der ElastiCache Global Datastore kann verwendet werden, um Cluster in Regionen zu replizieren.  |  Read Replicas in anderen Availability Zones dienen als Failover-Ziele.  Snaphots können innerhalb von Regionen geteilt werden und Cluster können mithilfe von Neptune-Streams repliziert werden, um die Daten zwischen zwei Clustern in zwei unterschiedlichen Regionen zu replizieren.  |  Innerhalb einer Region hoch verfügbar, regionsübergreifende Replikation erfordert benutzerdefinierte Anwendungsentwicklung mithilfe des Timestream SDK.  |  Innerhalb einer Region hoch verfügbar.  Regionsübergreifende Replikation erfordert Anwendungslogik oder Tools von Drittanbietern.  |  Innerhalb einer Region hoch verfügbar.  Exportieren Sie zum regionsübergreifenden Replizieren den Inhalt des Amazon-QLDB-Journals zu einem S3-Bucket und konfigurieren Sie den Bucket für eine regionsübergreifende Replikation.  | 

 

 **Implementierungsschritte** 

1.  Welche Konfigurationsoptionen sind für die ausgewählten Datenbanken verfügbar? 

   1.  Mithilfe von Parametergruppen für Amazon RDS und Aurora können Sie gemeinsame Einstellungen auf Datenbank-Engine-Ebene anpassen, wie den dem Cache zugewiesenen Arbeitsspeicher oder das Einstellen der Zeitzone der Datenbank. 

   1.  Bei bereitgestellten Datenbankservices wie Amazon RDS, Aurora, Neptune Amazon DocumentDB und jenen, die auf Amazon EC2 bereitgestellt werden, können Sie den Instance-Typ und den bereitgestellten Speicher ändern sowie Read Replicas hinzufügen. 

   1.  Mithilfe von DynamoDB können Sie zwei Kapazitätsmodi angeben: On-Demand und bereitgestellt. Sie können zwischen diesen Modi wechseln und die zugewiesene Kapazität im bereitgestellten Modus jederzeit erhöhen, um unterschiedliche Workloads zu bewältigen. 

1.  Ist die Workload lese- oder schreiblastig?  

   1.  Welche Lösungen sind zum Auslagern von Lesevorgängen verfügbar (Read Replicas, Caching usw.)?  

      1.  Bei DynamoDB-Tabellen können Sie Lesevorgänge mithilfe von DAX für Caching auslagern. 

      1.  Sie können für relationale Datenbanken einen ElastiCache-for-Redis-Cluster erstellen und Ihre Anwendung so konfigurieren, dass sie zuerst aus dem Cache liest und dann auf die Datenbank zurückfällt, wenn das angeforderte Element nicht vorhanden ist. 

      1.  Relationale Datenbanken wie Amazon RDS und Aurora sowie bereitgestellte NoSQL-Datenbanken wie Neptune und Amazon DocumentDB unterstützen alle das Hinzufügen von Read Replicas, um die Lesevorgänge der Workload auszulagern. 

      1.  Serverless-Datenbanken wie DynamoDB skalieren automatisch. Stellen Sie sicher, dass Sie ausreichend Read Capacity Units (RCU) bereitstellen, um die Workload zu verarbeiten. 

   1.  Welche Lösungen sind zum Skalieren von Schreibvorgängen verfügbar (Partitionsschlüssel-Sharding, Einsetzen von Warteschlangen usw.)? 

      1.  Bei relationalen Datenbanken können Sie die Größe der Instance erhöhen, um eine erhöhte Workload zu bewältigen, oder die bereitgestellten IOPs erhöhen, um einen erhöhten Durchsatz in den zugrunde liegenden Speicher zu ermöglichen. 
         +  Sie können vor Ihrer Datenbank auch eine Warteschlange einrichten, anstatt direkt in die Datenbank zu schreiben. Mithilfe dieses Musters können Sie die Datenerfassung von der Datenbank entkoppeln und die Flow-Rate steuern, sodass die Datenbank nicht überwältigt wird.  
         +  Das Batching Ihrer Schreibanforderungen, anstatt mehrere kurzlebige Transaktionen zu erstellen, kann Ihnen dabei helfen, den Durchsatz bei relationalen Datenbanken mit hohem Schreibvolumen zu verbessern. 

      1.  Serverless-Datenbanken wie DynamoDB können den Schreibdurchsatz automatisch skalieren oder indem die bereitgestellten Kapazitätseinheiten für Schreibvorgänge (Write Capacity Units, WCU) abhängig vom Kapazitätsmodus angepasst werden.  
         +  Es können trotzdem Fehler mit einer *„Hot Partition“* auftreten, wenn Sie die Durchsatzgrenzen für einen bestimmten Partitionsschlüssel erreichen. Dies kann verhindert werden, indem Sie einen Partitionsschlüssel auswählen, der gleichmäßiger verteilt ist, oder indem Sie die Schreibvorgänge des Partitionsschlüssels in Shards aufteilen.  

1.  Was sind derzeit die erwarteten höchsten Transaktionen pro Sekunde (TPS)? Testen Sie mithilfe dieser Datenverkehrsmenge und dieser Menge \$1X%, um die Skalierungsmerkmale zu verstehen. 

   1.  Native Tools wie pg\$1bench for PostgreSQL können eingesetzt werden, um die Datenbank einem Stresstest zu unterziehen und Engpässe sowie Skalierungsmerkmale zu verstehen. 

   1.  Produktionsdatenverkehr sollte erfasst werden, sodass er wiedergegeben werden kann, um zusätzlich zu künstlichen Workloads auch echte Bedingungen zu simulieren. 

1.  Wenn Sie Serverless-Datenverarbeitung oder elastisch skalierbare Datenverarbeitung verwenden, testen Sie die Auswirkungen, wenn diese auf der Datenbank skaliert wird. Führen Sie Verbindungsverwaltung oder -Pooling ein, falls zutreffend, um die Auswirkungen auf die Datenbank zu verringern.  

   1.  RDS Proxy kann mit Amazon RDS und Aurora verwendet werden, um Verbindungen mit der Datenbank zu verwalten.  

   1.  Serverless-Datenbanken wie DynamoDB haben keine ihnen zugewiesenen Verbindungen, aber ziehen Sie die bereitgestellte Kapazität sowie automatische Skalierungsrichtlinien in Betracht, um Datenverkehrsspitzen zu bewältigen. 

1.  Ist die Last vorhersehbar, gibt es Lastspitzen und Inaktivitätsphasen? 

   1.  Wenn es Inaktivitätsphasen gibt, erwägen Sie während dieser Zeitspanne das Herunterskalieren der bereitgestellten Kapazität oder Instance-Größe. Aurora Serverless V2 skaliert auf Basis der Last automatisch hoch oder herunter. 

   1.  Bei Instances außerhalb der Produktionsumgebung erwägen Sie das Pausieren oder Stoppen dieser Instances in arbeitsfreien Zeiten. 

1.  Müssen Sie Ihre Datenmodelle basierend auf Zugriffsmustern und Datenmerkmalen segmentieren und verteilen? 

   1.  Erwägen Sie die Verwendung von AWS DMS oder AWS SCT, um Ihre Daten zu anderen Services zu verschieben. 

## Grad des Aufwands für den Implementierungsplan: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-data-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-database-configuration-options-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

Sie müssen Ihre aktuellen Dateneigenschaften und -metriken kennen, um diese bewährten Methoden einzurichten. Das Erfassen dieser Metriken, Festlegen einer Basislinie und Verwenden von Metriken zum Ermitteln der idealen Datenbankkonfiguration stellt einen *niedrigen* bis *mittleren* Grad des Aufwands dar. Die Validierung erfolgt am besten über Lasttests und Experimentieren. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige Dokumente:** 
+  [Cloud-Datenbanken mit AWS ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS-Datenbank-Caching ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Bewährte Methoden für Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift-Leistung ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Die besten 10 Leistungstipps für Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Bewährte Methoden für Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Bewährte MethodenAmazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 

 **Relevante Videos:** 
+  [Speziell entwickelte AWS-Datenbanken (DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28)
+ [Verständliche Beschreibung des Amazon Aurora-Speichers: Funktionsweise (DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Zugehörige Beispiele:** 
+  [Amazon DynamoDB-Beispiele](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [Beispiele von AWS-Datenbankmigration](https://github.com/aws-samples/aws-database-migration-samples) 
+  [Workshop für die Datenbankmodernisierung](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Arbeiten mit Parametern auf Ihrem Amazon RDS für Postgress DB](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 

# PERF04-BP03 Erfassen und Aufzeichnen von Metriken zur Datenbankleistung
<a name="perf_right_database_solution_collect_metrics"></a>

 Es ist wichtig, relevante Metriken nachzuverfolgen, um zu verstehen, welche Leistung Ihre Datenverwaltungssysteme erbringen. Mithilfe dieser Metriken können Sie Ihre Datenverwaltungsressourcen optimieren, um sicherzustellen, dass Ihre Workload-Anforderungen erfüllt werden, und um eine klare Übersicht über die Workload-Leistung zu erhalten. Nutzen Sie Tools, Bibliotheken und Systeme zum Aufzeichnen von Messungen zur Datenbankleistung. 

 

 Diese Metriken beziehen sich auf das System, auf dem die Datenbank gehostet wird (beispielsweise CPU, Speicher, Arbeitsspeicher, IOPS), und es gibt Metriken für den Zugriff auf die eigentlichen Daten (beispielsweise Transaktionen pro Sekunde, Abfrageraten, Reaktionszeiten, Fehler). Support- oder Betriebsmitarbeiter sollten auf diese Metriken zugreifen können und über ausreichend historische Datensätze verfügen, um Tendenzen, Anomalien und Engpässe identifizieren zu können. 

 

 **Gewünschtes Ergebnis:** Um die Leistung Ihrer Datenbank-Workloads zu überwachen, müssen Sie mehrere Leistungsmetriken über einen bestimmten Zeitraum aufzeichnen. Auf diese Weise können Sie Anomalien erkennen und die Leistung anhand von Geschäftsmetriken messen, um sicherzustellen, dass Sie die Anforderungen Ihrer Workload erfüllen. 

 **Gängige Antimuster:** 
+  Sie suchen ausschließlich manuell mithilfe von Protokolldateien nach Metriken. 
+  Sie veröffentlichen Metriken nur in internen Tools, die von Ihrem Team verwendet werden, und Sie haben kein umfassendes Bild Ihrer Workload. 
+  Sie verwenden nur die Standardmetriken, die von der Überwachungssoftware Ihrer Wahl aufgezeichnet wurden. 
+  Sie überprüfen Metriken nur dann, wenn ein Problem vorliegt. 
+  Sie überwachen Metriken nur auf Systemebene und erfassen keine Datenzugriffs- und Nutzungsmetriken. 

 **Vorteile der Einführung dieser bewährten Methode:** Das Einrichten einer Leistungsbasislinie hilft dabei, normales Verhalten und die Anforderungen von Workloads zu verstehen. Abnorme Muster können schneller identifiziert und behoben werden, was die Leistung und Zuverlässigkeit der Datenbank erhöht. Die Datenbankkapazität kann konfiguriert werden, um die optimalen Kosten ohne Leistungseinschränkung sicherzustellen. 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Hoch 
+  Wenn zwischen normalen und abnormalen Leistungsebenen nicht unterschieden wird, kann dies Schwierigkeiten bei der Fehlererkennung und Entscheidungsfindung verursachen. 
+  Potenzielle Kosteneinsparungen werden möglicherweise nicht erkannt. 
+  Wachstumsmuster werden nicht erkannt, was zur Verringerung von Zuverlässigkeit oder Leistung führen kann. 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Identifizieren, sammeln, aggregieren und korrelieren Sie Datenbankmetriken. Metriken sollten das zugrunde liegende System, das die Datenbank unterstützt, sowie die Datenbankmetriken enthalten. Die Metriken des zugrunde liegenden Systems können die CPU-Auslastung, den Arbeitsspeicher, den verfügbaren Festplattenspeicher, Festplatten-E/A und Metriken zum eingehenden und ausgehenden Netzwerkdatenverkehr umfassen, während die Datenbankmetriken die Transaktionen pro Sekunde, die häufigsten Abfragen, die durchschnittlichen Abfrageraten, Antwortzeiten, die Indexauslastung, Tabellenschlösser, Abfragezeitüberschreitungen und die Anzahl offener Verbindungen enthält. Diese Daten sind von entscheidender Bedeutung, um festzustellen, wie leistungsfähig die Workload ist und wie die Datenbanklösung genutzt wird. Nutzen Sie diese Kennzahlen im Rahmen eines datengestützten Ansatzes, der Ihnen die Feinabstimmung und Optimierung der vom Workload genutzten Ressourcen ermöglicht.  

 **Implementierungsschritte:** 

1.  Welche Datenbankmetriken sollten verfolgt werden? 

   1.  [Überwachungmetriken für Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [Überwachung mit Leistungserkenntnissen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [Erweiterte Überwachung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [DynamoDB-Metriken](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [Überwachung von DynamoDB DAX](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [Überwachung von MemoryDB](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [Überwachung von Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [Zeitreihenmetriken und -dimensionen](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Cluster-Metriken für Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html) 

   1.  [Überwachung von Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [Überwachung von Amazon Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  Würde die Datenbanküberwachung von einer Machine-Learning-Lösung profitieren, die Betriebsanomalien und Leistungsprobleme erkennt? 

   1.  [Amazon DevOps Guru for Amazon RDS](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.html) ermöglicht einen Einblick in Leistungsprobleme und bietet Empfehlungen für Korrekturmaßnahmen. 

1.  Benötigen Sie Informationen über die SQL-Nutzung auf Anwendungsebene? 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-sql) kann in der Anwendung verwendet werden, um Erkenntnisse zu gewinnen und alle Datenpunkte für eine Abfrage zusammenzufassen. 

1.  Haben Sie derzeit eine genehmigte Protokollierungs- und Überwachungslösung? 

   1.  [Mithilfe von Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) lassen sich Kennzahlen aus sämtlichen Ressourcen Ihrer Architektur erfassen. Sie können auch benutzerdefinierte Kennzahlen erfassen und in Oberflächen-, Geschäfts- oder abgeleiteten Kennzahlen veröffentlichen. Richten Sie mit CloudWatch oder mit Lösungen von Drittanbietern Alarme ein, die auf das Überschreiten von Schwellenwerten hinweisen. 

1.  Haben Ihre Datenaufbewahrungsrichtlinien identifiziert und konfiguriert, sodass sie Ihren Sicherheits- und Betriebszielen entsprechen? 

   1.  [Standard-Datenaufbewahrung für CloudWatch-Metriken](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [Standard-Datenaufbewahrung für CloudWatch Logs](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

 **Grad des Aufwands für den Implementierungsplan: **Der Grad des Aufwands ist *mittel,* um Metriken von allen Datenbankressourcen zu identifizieren, nachzuverfolgen, zu erfassen, zu aggregieren und zu korrelieren. 

## Ressourcen
<a name="resources"></a>

 **Ähnliche Dokumente:** 
+ [AWS-Datenbank-Caching ](https://aws.amazon.com/caching/database-caching/) 
+ [ Die besten 10 Leistungstipps für Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)
+ [ Bewährte Methoden für Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html)
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/)
+ [Bewährte MethodenAmazon DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Bewährte Methoden für Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Amazon Redshift-Leistung ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+ [Cloud-Datenbanken mit AWS](https://aws.amazon.com/products/databases/) 
+  [Amazon RDS-Leistungserkenntnisse](https://aws.amazon.com/rds/performance-insights/) 

 **Ähnliche Videos:** 
+ [Speziell entwickelte AWS-Datenbanken (DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Verständliche Beschreibung des Amazon Aurora-Speichers: Funktionsweise (DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+  [Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Ähnliche Beispiele:** 
+  [Level 100: Monitoring with CloudWatch Dashboards (Stufe 100: Überwachung mit Cloudwatch-Dashboards)](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS Dataset Ingestion Metrics Collection Framework (Framework zur AWS-Datenerfassung und Sammlung von Metriken)](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS Monitoring Workshop (Workshop zur Überwachung von Amazon RDS)](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 

# PERF04-BP04 Wählen des Datenspeichers nach Zugriffsmuster
<a name="perf_right_database_solution_access_patterns"></a>

 Bestimmen Sie anhand der Zugriffsmuster des Workloads, welche Services und Technologien sich anbieten. Zusätzlich zu nicht-funktionalen Anforderungen wie Leistung und Skalierung, beeinflussen Zugriffsmuster stark die Wahl der Datenbank- und Speicherlösungen. Die erste Dimension ist der Bedarf nach Transaktionen, ACID-Compliance und konsistenten Lesevorgängen. Nicht jede Datenbank unterstützt dies und die meisten NoSQL-Datenbanken bieten ein Modell für die eventuelle Konsistenz Die zweite wichtige Dimension wäre die Verteilung von Schreib- und Lesevorgängen über Zeit und Raum. Global verteile Anwendungen müssen Datenverkehrsmuster, Latenz und Zugriffsanforderungen in Betracht ziehen, um die optimale Speicherlösung zu ermitteln. Der dritte auszuwählende wesentliche Aspekt ist die Flexibilität des Abfragemusters, zufällige Zugriffsmuster und einmalige Abfragen. Überlegungen zu hochspezialisierten Abfragefunktionen für die Verarbeitung von Text und natürlicher Sprache, Zeitreihendatenbanken und Diagrammen sollten ebenfalls in Betracht gezogen werden. 

 **Gewünschtes Ergebnis:** Der Datenspeicher wurde auf Basis von identifizierten und dokumentieren Datenzugriffsmustern ausgewählt. Dies kann die gängigsten Lese-, Schreib und Löschabfragen, die Notwendigkeit für Ad-hoc-Kalkulationen und -Aggregationen, die Komplexität von Daten, die Abhängigkeiten zwischen Daten und die benötigten Kohärenzanforderungen umfassen. 

 **Gängige Antimuster:** 
+  Sie wählen nur einen Datenbankanbieter aus, um die Betriebsverwaltung zu vereinfachen. 
+  Sie gehen davon aus, dass Datenzugriffsmuster im Laufe der Zeit konsistent bleiben. 
+  Sie implementieren komplexe Transaktionen, Rollback und Konsistenzlogik in der Anwendung. 
+  Die Datenbank ist konfiguriert, um potenzielle Datenverkehrsspitzen zu unterstützen, was dazu führt, dass die Datenbankressourcen die meiste Zeit nicht genutzt werden. 
+  Es wird eine geteilte Datenbank für Transaktions- und analytische Anwendungen verwendet. 

 **Vorteile der Einführung dieser bewährten Methode:** Das Auswählen und Optimieren Ihres Datenspeichers auf Basis von Zugriffsmustern hilft beim Verringern der Entwicklungskomplexität und Optimieren Ihrer Leistungsmöglichkeiten. Verstehen, wann Read Replicas, globale Tabellen, Datenpartitionen und Caching verwendet werden sollen und wie dies Ihnen dabei hilft, den Betriebsaufwand zu verringern und basierend auf Ihren Workload-Anforderungen zu skalieren. 

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

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Identifizieren und evaluieren Sie Ihre Datenzugriffsmuster, um die richtige Speicherkonfiguration auszuwählen. Bei jeder Datenbanklösung gibt es Optionen, um Ihre Speicherlösung zu konfigurieren und zu optimieren. Verwenden Sie die erfassten Metriken und Protokolle und experimentieren Sie mit Optionen, um die optimale Konfiguration zu finden. Verwenden Sie die nachfolgende Tabelle, um Speicheroptionen je nach Datenbankservice anzusehen. 


|  AWS-Services  |  Amazon RDS, Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  Skalierung von Speicher  |  Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren. IOPS können ebenfalls unabhängig vom bereitgestellten Speicher skaliert werden, wenn bereitgestellte IOPS-Speichertypen eingesetzt werden.  |  Skaliert automatisch. Tabellen haben keine Größeneinschränkung.  |  Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren  |  In-Memory-Speicher, der an den Instance-Typ oder die Instance-Anzahl gebunden ist  |  Eine Option zur automatischen Skalierung des Speichers ist verfügbar, um den bereitgestellten Speicher automatisch zu skalieren  |  Konfigurieren einer Aufbewahrungsfrist in Tagen für In-Memory- und Magnetebenen  |  Skaliert Tabellenspeicher automatisch hoch und herunter  |  Skaliert automatisch. Tabellen haben keine Größeneinschränkung.  | 

 

 **Implementierungsschritte:** 

1.  Identifizieren und dokumentieren Sie das antizipierte Wachstum von Daten und Datenverkehr. 

   1.  Amazon RDS und Aurora unterstützen automatische Skalierung bis hin zu dokumentierten Grenzen. Erwägen Sie darüber hinaus, ältere Daten für die Archivierung an Amazon S3 zu übertragen, historische Daten für Analyseverfahren zu aggregieren oder über Sharding horizontal zu skalieren. 

   1.  DynamoDB und Amazon S3 skalieren automatisch auf beinahe unbegrenztes Speichervolumen. 

   1.  Amazon RDS-Instances and Datenbanken, die auf EC2 ausgeführt werden, können manuell in ihrer Größe angepasst werden und zu EC2-Instances können später neue EBS-Datenträger für zusätzlichen Speicher hinzugefügt werden.  

   1.  Instance-Typen können auf Basis von Aktivitätsänderungen geändert werden. Sie können beispielsweise mit einer kleineren Instance starten, während Sie Tests durchführen, und die Instance dann skalieren, wenn allmählich Produktionsdatenverkehr im Service eingeht. Aurora Serverless V2 skaliert automatisch als Antwort auf Änderungen bei der Last.  

1.  Dokumentieren Sie Anforderungen in Bezug auf normale und Spitzenleistung (Transaktionen pro Sekunde, TPS, und Abfragen pro Sekunde, QPS) sowie Kohärenz (ACID und eventuelle Kohärenz). 

1.  Dokumentieren Sie Bereitstellungsaspekte der Lösung und die Zugriffsanforderungen der Datenbank (global, Multi-AZ, Read Replication, mehrere Schreibknoten). 

 **Grad des Aufwands für den Implementierungsplan: **Wenn Sie keine Protokolle oder Metriken für Ihre Datenverwaltungslösung haben, müssen Sie dies zuerst abschließen, bevor Sie Ihre Datenzugriffsmuster identifizieren und dokumentieren. Sobald Sie Ihr Datenzugriffsmuster verstanden haben, stellen das Auswählen und Konfigurieren Ihres Datenspeichers einen *niedrigen* Grad des Aufwands dar. 

## Ressourcen
<a name="resources"></a>

 **Ähnliche Dokumente:** 
+ [AWS-Datenbank-Caching ](https://aws.amazon.com/caching/database-caching/)
+ [Die besten 10 Leistungstipps für Amazon Athena ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+ [Bewährte Methoden für Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+ [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/) 
+ [Bewährte MethodenAmazon DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Bewährte Methoden für Amazon Redshift Spectrum ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Amazon Redshift-Leistung ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [Cloud-Datenbanken mit AWS](https://aws.amazon.com/products/databases/)
+  [Amazon RDS-Speichertypen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) 

 **Ähnliche Videos:** 
+ [Speziell entwickelte AWS-Datenbanken (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Verständliche Beschreibung des Amazon Aurora-Speichers: Funktionsweise (DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster (DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **Ähnliche Beispiele:** 
+  [Experimentieren mit und Testen von verteilten Lasttests auf AWS](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF04-BP05 Optimieren des Datenspeicher nach Zugriffsmuster und Metriken
<a name="perf_right_database_solution_optimize_metrics"></a>

 Optimieren Sie anhand der Leistungsmerkmale und Zugriffsmuster die Art und Weise, in der Daten gespeichert oder abgefragt werden. So lässt sich die bestmögliche Leistung erzielen. Messen Sie, wie sich Optimierungen, z. B. Indizierung, Schlüsselverteilung, Data Warehouse Design oder Caching-Strategien, auf die Systemleistung oder die allgemeine Effizienz auswirken. 

 **Gängige Antimuster:** 
+  Sie suchen ausschließlich manuell mithilfe von Protokolldateien nach Metriken. 
+  Sie veröffentlichen Metriken nur in internen Tools. 

 **Vorteile der Einführung dieser bewährten Methode:** Um sicherzustellen, dass Sie die für die Workload erforderlichen Metriken erfüllen, müssen Sie die Datenbank-Leistungsmetriken für Lese- und Schreibvorgänge überwachen. Sie können diese Daten verwenden, um neue Optimierungen für Lese- und Schreibvorgänge zur Datenspeicherebene hinzuzufügen. 

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

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Speicher basierend auf Kennzahlen und Mustern optimieren: Verwenden Sie gemeldete Metriken, um Bereiche in Ihrer Workload zu identifizieren und Ihre Datenbankkomponenten zu optimieren. Für jedes Datenbanksystem müssen eigene Leistungsmerkmale in Betracht gezogen werden, etwa das Verfahren, mit dem Daten indiziert, in den Cache gelesen oder auf mehrere Systeme verteilt werden. Messen Sie die Auswirkungen Ihrer Optimierungen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige Dokumente:** 
+  [AWS-Datenbank-Caching](https://aws.amazon.com/caching/database-caching/) 
+  [Die besten 10 Leistungstipps für Amazon Athena](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+  [Bewährte Methoden für Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+  [Amazon DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/) 
+  [Bewährte MethodenAmazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [Bewährte Methoden für Amazon Redshift Spectrum](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+  [Amazon Redshift-Leistung](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [Cloud-Datenbanken mit AWS](https://aws.amazon.com/products/databases/) 
+  [Analysieren von Leistungsanomalien mit DevOps Guru für RDS](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/devops-guru-for-rds.html) 
+  [Lese-/Schreibmodus für DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html) 

 **Relevante Videos:** 
+  [Speziell entwickelte AWS-Datenbanken (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Verständliche Beschreibung des Amazon Aurora-Speichers: Funktionsweise (DAT309-R)](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Ausführliche Beschreibung von Amazon DynamoDB: Erweiterte Entwurfsmuster (DAT403-R1)](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **Zugehörige Beispiele:** 
+  [Praktische Übungen für Amazon DynamoDB](https://amazon-dynamodb-labs.workshop.aws/hands-on-labs.html) 