AWS Germany – Amazon Web Services in Deutschland

Optimieren Ihrer AWS-Infrastruktur für Nachhaltigkeit, Teil IV: Datenbanken

von Otis Antoniou, Ibtehaj Ahmed, Darren Ko und Ceren Tahtasiz; übersetzt durch Lars Reimann

In Teil I: Datenverarbeitung, Teil II: Speicher und Teil III: Netzwerk dieser Serie haben wir Strategien zur Optimierung der Datenverarbeitungs-, Speicher- und Netzwerk-Schicht Ihrer AWS-Architektur für Nachhaltigkeit vorgestellt.

Teil IV konzentriert sich auf die Datenbankschicht und enthält Vorschläge wie Sie die Auslastung, die Performanz und die Abfragen Ihrer Datenbank optimieren können.

Des Weiteren unterstützt Sie die Säule „Nachhaltigkeit“ – AWS-Well-Architected-Framework, die Nachhaltigkeitsziele für Ihre AWS-Workloads zu erreichen. Allgemein hilft Ihnen das Framework, bewährte Architekturmethoden für den Entwurf und Betrieb zuverlässiger, sicherer, effizienter, kostengünstiger und nachhaltiger Workloads in der AWS Cloud zu ermitteln. Das AWS Well-Architected Tool, das kostenlos in der AWS-Managementkonsole verfügbar ist, bietet einen Mechanismus zur regelmäßigen Bewertung von Workloads, zur Erkennung von Problemen mit hohem Risiko und zur Aufzeichnung von Verbesserungen. Die Säule „Nachhaltigkeit“ stellt bewährte Verfahren vor, mit denen Sie die Auswirkungen Ihrer Workloads minimieren können, indem Sie die Gesamtressourcen, die für den Betrieb in AWS-Rechenzentren erforderlich sind, reduzieren.

Optimieren der Datenbankschicht Ihrer AWS-Infrastruktur

AWS Datenbank-Services

Abbildung 1: AWS Datenbank-Services

Wenn Ihre Applikation wächst und mehr Abfragen bearbeitet, wächst auch das Volumen der Daten in den dazugehörigen Datenbanken. Die Empfehlungen der folgenden Abschnitte werden Ihnen dabei helfen Ihre Datenbankressourcen effizienter einzusetzen und Kosten zu sparen.

Zu verwalteten Datenbanken wechseln

Üblicherweise überschätzen Kunden die benötigten Kapazitäten um Lastspitzen abzufangen. Dadurch werden Ressourcen und Geld für ungenutzte Infrastruktur verschwendet. Durch eine kontinuierliche Überwachung von wichtigen Betriebskennzahlen der verwalteten Datenbankservices, kann die Datenbankkapazität entsprechend des aktuellen Bedarfs skalieren. Außerdem verwenden die meisten von AWS verwalteten Datenbanken ein Pay-as-you-go-Modell, das auf der Instanzgröße und dem verwendeten Speicherplatz basiert.

Verwaltete Services verlagern die Verantwortung, eine hohe durchschnittliche Auslastung der zugrundeliegenden Hardware zu erreichen, hin zu AWS. Im Vergleich zum Betrieb Ihrer eigenen Datenbank auf Amazon Elastic Compute Cloud (Amazon EC2) kann Amazon Relational Database Service (Amazon RDS) so Ihren individuellen Fußabdruck reduzieren. Bei einer verwalteten Datenbank überwacht AWS kontinuierlich Ihre Cluster, um Ihre Workloads mittels selbstheilendem Speicher und automatischer Skalierung verfügbar zu halten.

AWS bietet mehr als 15 Datenbank-Engines, welche jeweils für einen bestimmten Zweck entworfen wurden. Mit Amazon Timestream können große Mengen an Zeitseriendaten verarbeitet und gespeichert werden, wie beispielsweise für das Internet der Dinge (englisch: Internet of Things/IoT).

Richtig dimensionieren, ungenutzte Ressourcen reduzieren und Auswahl der richtigen Hardware

Um einen Einblick in Metriken, Schwellenwerte und Maßnahmen zu bekommen, welche Sie dazu benutzen können um nicht ausgelastete Datenbanken zu identifizieren, zeigt der Blogartikel „Optimizing costs in Amazon RDS“ wie Sie nicht ausgelastete Datenbanken mit Hilfe von Metriken und Schwellenwerten identifizieren können.

In der folgenden Tabelle finden Sie zusätzliche Tools und Metriken, mit denen Sie ungenutzte Ressourcen identifizieren können:

AWS Service Metrik Quelle
Amazon RDS DatabaseConnections Amazon CloudWatch
Amazon RDS Idle DB Instances AWS Trusted Advisor
Amazon DynamoDB AccountProvisionedReadCapacityUtilization,
AccountProvisionedWriteCapacityUtilization,
ConsumedReadCapacityUnits,
ConsumedWriteCapacityUnits
CloudWatch
Amazon Redshift Underutilized Amazon Redshift Clusters CloudWatch
Amazon DocumentDB DatabaseConnections, CPUUtilization, FreeableMemory CloudWatch
Amazon Neptune CPUUtilization, VolumeWriteIOPs,
MainRequestQueuePendingRequests
CloudWatch
Amazon Keyspaces ProvisionedReadCapacityUnits,
ProvisionedWriteCapacityUnits,
ConsumedReadCapacityUnits,
ConsumedWriteCapacityUnits
CloudWatch

Diese Metriken & Tools helfen Ihnen dabei, Ihre Datenbanken richtig zu dimensionieren. Bei jeder Skalierung von Datenbanken sollten Sie prüfen, ob sich diese auf Ihre Abfragezeiten auswirkt und ob sich diese Änderung im Rahmen des Dienstleistungsvertrags (englisch service level agreement/SLA) bewegt.

Wir schlagen außerdem vor:

  • Bewerten Sie, ob Ihre bestehenden SLAs Ihren geschäftlichen Anforderungen entsprechen oder ob sie gelockert werden können, um Ihre Umgebung im Hinblick auf Nachhaltigkeit zu optimieren.
  • Wenn einige Ihrer RDS-Instanzen nur während der Geschäftszeiten laufen müssen, können Sie diese außerhalb der Geschäftszeiten z.B. mit dem Instance Scheduler herunterzufahren.
  • Erwägen Sie für Ihre Datenbanken energieeffizientere Prozessoren, wie z.B. AWS Graviton-basierte Instanzen. Um Kunden dabei zu helfen, ihren CO2-Fußabdruck zu reduzieren, sind AWS-Graviton-Prozessoren energieeffizient konzipiert worden. Graviton-basierte Instanzen verbrauchen bei gleicher Leistung bis zu 60 % weniger Energie als vergleichbare EC2-Instanzen. Viele verwaltete AWS Services unterstützen bereits die Verwendung von Graviton-basierten Instanzen. Der Aufwand diese Instanzen zu nutzen oder auf diese zu wechseln ist gering.

Stellen Sie sicher, dass Sie den richtigen RDS-Instanz-Typ für die Art des Workloads wählen. Burstable-Performance-Instanzen bieten eine Baseline-CPU-Leistung mit der Möglichkeit, jederzeit und so lange wie erforderlich über die Baseline zu springen. Amazon RDS bietet drei Speichertypen, die sich in ihren Leistungsmerkmalen und ihrem Preis unterscheiden, sodass Sie die Speicherschicht Ihrer Datenbank an Ihre Bedürfnisse anpassen können.

Verwenden Sie Serverless-Datenbanken

Produktive Datenbanken, die kurzzeitigen oder unvorhersehbaren Lastspitzen unterliegen, werden oft größer dimensioniert als nötig und sind somit im Durchschnitt eher gering ausgelastet. Um die Effizienz in diesem Bereich zu verbessern, werden Infrastrukturkomponenten basierend auf ihrem Lastverhalten oft hoch- oder runterskaliert.

AWS bietet sowohl relationale als auch nicht-relationale Serverless-Datenbanken an. Wenn diese nicht in Benutzung sind, fahren sie sich automatisch runter, lassen sich schnell starten und skalieren anhand des Bedarfs von Applikationen automatisch. Dies reduziert ökologische Auswirkungen, da das Kapazitätsmanagement im Betrieb automatisch optimiert wird. Bei Einsatz einer auf den Anwendungsfall zugeschnittenen Datenbank profitieren Sie automatisch von den Skalierungsmöglichkeiten und den verwalteten Eigenschaften von Serverless-Datenbanken, wie in der folgenden Tabelle beschrieben.

 

Relationale Serverless-Datenbanken Nicht-relationale Serverless-Datenbanken
Amazon Aurora Serverless für bedarfsabhängige Auto-Scaling-Konfiguration Amazon DynamoDB (im On-Demand-Modus) für eine vollständig verwaltete, serverless NoSQL-Schlüssel-Wert-Datenbank
Amazon Redshift Serverless führt Analyse-Workloads jeder Größe aus ohne dass Sie die Data Warehouse-Infrastruktur verwalten müssen Amazon Timestream als Zeitserien-Datenbank für IoT- und Betriebsanwendungen
Amazon Keyspaces für einen skalierbaren, hochverfügbaren und verwalteten Apache Cassandra-kompatiblen Datenbankdienst
Amazon-Quantum-Ledger-Datenbank, eine verwaltete Ledger-Datenbank, die ein transparentes, unveränderliches und kryptographisch überprüfbares Transaktionsprotokoll mittels einer vertrauenswürdigen zentralen Instanz bereitstellt.

Automatisierte Datenbankbackups und Entfernen von redundanten Daten

Wenn von einer Amazon RDS Datenbank ein manuelles Backup erstellt wird, wird ein Snapshot für das Speichervolume Ihrer Datenbank angelegt. Diese manuellen Snapshots definieren jedoch standardmäßig keinen Aufbewahrungszeitraum. Dies bedeutet, dass die Snapshots nicht automatisch nach einer zuvor festgelegten Dauer entfernt werden. Es sollte regelmäßig geprüft werden, ob manuelle Snapshots noch benötigt werden oder entfernt werden können, um Ressourcen- und Kosteneffizienz zu steigern. Mittels AWS Backup kann ein Verfallsdatum für manuelle Snapshots gesetzt werden. Um Langzeit-Snapshots von MariaDB, MySQL oder PostgreSQL aufzubewahren, empfehlen wir, diese nach Amazon Simple Storage Service (Amazon S3) zu exportieren. Sie können sowohl einzelne Datenbanken als auch spezifische Tabellen exportieren. Somit können Sie ihre Daten in eine für Langzeitarchivierung optimierte Speicherlösung überführen.

Lang laufende Datenbankabfragen optimieren

Identifizieren und optimieren Sie ressourcenintensive Abfragen, da diese einen hohen Einfluss auf die Gesamtperformance Ihrer Applikation haben können. Das Performance Insights Dashboard, speziell die Tabelle „Top Dimensions“ zeigt die Abfragen, die am stärksten zur Datenbanklast beitragen. Diese werden nach verursachter Last und Host sortiert und um Ursachen zu analysieren, können Sie Details der Abfragen herunterladen.

Der Blogartikel „Tuning Amazon RDS for MySQL with Performance Insights“ und dieser Knowledge-Center Artikel helfen Ihnen dabei, Ihre Abfragen in Amazon RDS für MySQL zu optimieren. Für PostgreSQL stehen zur Optimierung die Blogartikel „Optimizing and tuning queries in Amazon RDS PostgreSQL based on native and external tools“ und „Improve query performance with parallel queries in Amazon RDS for PostgreSQL and Amazon Aurora PostgreSQL-Compatible Edition” zur Verfügung. In dem ersten Artikel wird skizziert, wie man native und externe Tools einsetzt, um Abfragen in Amazon RDS PostgreSQL zu optimieren. Der zweite Artikel beschreibt, wie das ‚parallel query’-Feature zur Performanceoptimierung eingesetzt werden kann.

Datenbankperformance verbessern

Sie können die Leistung Ihrer Datenbank verbessern, indem Sie Anomalien in der Performance überwachen, identifizieren und letztlich beheben. Anstatt sich auf einen dedizierten Datenbankadministrator (DBA) zu verlassen, bietet AWS systemeigene Tools zur kontinuierlichen Überwachung und Analyse der Datenbank-Telemetrie, wie in der folgenden Tabelle dargestellt.

Service CloudWatch Metrik Quelle
Amazon DynamoDB CPUUtilization, FreeStorageSpace CloudWatch
Amazon Redshift CPUUtilization, PercentageDiskSpaceUsed CloudWatch
Amazon Aurora CPUUtilization, FreeLocalStorage Amazon RDS
DynamoDB AccountProvisionedReadCapacityUtilization,
AccountProvisionedWriteCapacityUtilization
CloudWatch
Amazon ElastiCache CPUUtilization CloudWatch

CloudWatch zeigt für Amazon RDS Nutzungsmetriken auf Instanz– und Kontoebene an. Erstellen und aktivieren Sie CloudWatch-Alarme für von Ihnen festgelegte Schwellenwerte. So werden Sie benachrichtigt, falls ein anomales Verhalten anhand der Metriken festgestellt wird. Aktivieren Sie Erweiterte Überwachung (Enhanced Monitoring) um Echtzeitmetriken der zugrundeliegenden Datenbank-Instanz auszuwerten.

Amazon RDS Performance Insights sammelt Leistungsmetriken von jeder RDS-Datenbank-Instanz, wie z. B. die Datenbankauslastung. Diese Daten geben Ihnen einen feingranularen, sekundengenauen Überblick über die Aktivität Ihrer Datenbanken. Sie können Performance Insights jederzeit aktivieren, ohne dabei Ausfallzeiten, Neustarts oder einen Datenbank-Failover auszulösen.

Amazon DevOps Guru für RDS nutzt die Daten von Performance Insights, Enhanced Monitoring und CloudWatch, um Betriebsprobleme zu identifizieren. Der Service nutzt maschinelles Lernen, um datenbankbezogene Probleme zu erkennen und zu melden, einschließlich der Überbeanspruchung von Ressourcen oder des Fehlverhaltens bestimmter SQL-Abfragen.

Fazit

In diesem Blog-Beitrag haben wir die Technologieauswahl, die Designprinzipien und die empfohlenen Maßnahmen zur Optimierung und Steigerung der Effizienz Ihrer Datenbanken erörtert. Wenn Ihre Daten wachsen, ist es wichtig, die Kapazität Ihrer Datenbank entsprechend der Benutzerlast zu skalieren, redundante Daten zu entfernen, Datenbankabfragen zu optimieren und die Datenbankleistung zu verbessern. Abbildung 2 zeigt einen Überblick über die Tools, die Sie zur Optimierung Ihrer Datenbanken verwenden können.

AWS Tools zur Optimierung von Datenbanken

Abbildung 2: Tools, die Sie bei AWS zur Optimierung von Datenbanken verwenden können

Mehr erfahren

Blogartikel aus dieser Serie

Verwandte Informationen