Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Dieser Abschnitt gibt einen Überblick darüber, wie Sie Ihre nicht verwendeten Ressourcen regelmäßig bewerten können. Wenn sich Ihre Anwendungsanforderungen weiterentwickeln, sollten Sie sicherstellen, dass keine Ressourcen ungenutzt bleiben und unnötige Kosten für Amazon DynamoDB verursachen. Die unten beschriebenen Verfahren verwenden CloudWatch Amazon-Metriken, um ungenutzte Ressourcen zu identifizieren und Ihnen zu helfen, diese Ressourcen zu identifizieren und Maßnahmen zur Kostensenkung zu ergreifen.
Sie können DynamoDB mithilfe von DynamoDB überwachen CloudWatch, das Rohdaten aus DynamoDB sammelt und in lesbare Metriken nahezu in Echtzeit verarbeitet. Diese Statistiken werden eine gewisse Zeit aufbewahrt, damit Sie zum besseren Verständnis Ihrer Nutzung Verlaufsdaten zur Verfügung haben. Standardmäßig werden DynamoDB-Metrikdaten automatisch an CloudWatch gesendet. Weitere Informationen finden Sie unter Was ist Amazon CloudWatch? und Aufbewahrung von Kennzahlen im CloudWatch Amazon-Benutzerhandbuch.
So ermitteln Sie nicht verwendete Ressourcen
Um ungenutzte Tabellen oder Indizes zu identifizieren, betrachten wir die folgenden CloudWatch Kennzahlen über einen Zeitraum von 30 Tagen, um zu ermitteln, ob es aktive Lese- oder Schreibvorgänge in der Tabelle oder Lesevorgänge in den globalen Sekundärindizes gibt ()GSIs:
ConsumedReadCapacityUnits
Die Anzahl der in einem bestimmten Zeitraum verbrauchten Lesekapazitätseinheiten, um nachverfolgen zu können, wie viel Kapazität Sie genutzt haben. Sie können die gesamte verbrauchte Lesekapazität für eine Tabelle und alle ihre globalen sekundären Indizes oder für einen bestimmten globalen sekundären Index abrufen.
ConsumedWriteCapacityUnits
Die Anzahl der in einem bestimmten Zeitraum verbrauchten Schreibkapazitätseinheiten, um nachverfolgen zu können, wie viel Kapazität Sie genutzt haben. Sie können die gesamte verbrauchte Schreibkapazität für eine Tabelle und alle ihre globalen sekundären Indizes oder für einen bestimmten globalen sekundären Index abrufen.
Ermitteln von nicht verwendeten Tabellenressourcen
Amazon CloudWatch ist ein Überwachungs- und Beobachtbarkeitsservice, der die DynamoDB-Tabellenmetriken bereitstellt, anhand derer Sie ungenutzte Ressourcen identifizieren können. CloudWatch Metriken können sowohl über AWS Management Console als auch über die eingesehen werden. AWS Command Line Interface
Um die Metriken Ihrer Tabellen über anzuzeigen AWS Command Line Interface, können Sie die folgenden Befehle verwenden.
-
Werten Sie zunächst die Lesevorgänge Ihrer Tabelle aus:
aws cloudwatch get-metric-statistics --metric-name ConsumedReadCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name>
Damit Tabellen nicht fälschlicherweise als nicht verwendet ermittelt werden, sollten Sie die Metriken über einen längeren Zeitraum auswerten. Wählen Sie einen geeigneten Startzeit- und Endzeitbereich, beispielsweise 30 Tage, und einen geeigneten Zeitraum, wie z. B. 86400.
In den zurückgegebenen Daten zeigt eine Summe von mehr als 0 an, dass die auszuwertende Tabelle während dieses Zeitraums Lesedatenverkehr empfangen hat.
Das folgende Ergebnis zeigt eine Tabelle, die im ausgewerteten Zeitraum Lesedatenverkehr empfangen hat:
{ "Timestamp": "2022-08-25T19:40:00Z", "Sum": 36023355.0, "Unit": "Count" }, { "Timestamp": "2022-08-12T19:40:00Z", "Sum": 38025777.5, "Unit": "Count" },
Das folgende Ergebnis zeigt eine Tabelle, die im ausgewerteten Zeitraum keinen Lesedatenverkehr empfangen hat:
{ "Timestamp": "2022-08-01T19:50:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-20T19:50:00Z", "Sum": 0.0, "Unit": "Count" },
-
Werten Sie als Nächstes die Schreibvorgänge Ihrer Tabelle aus:
aws cloudwatch get-metric-statistics --metric-name ConsumedWriteCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name>
Damit Tabellen nicht fälschlicherweise als nicht verwendet ermittelt werden, sollten Sie die Metriken über einen längeren Zeitraum auswerten. Wählen Sie einen geeigneten Startzeit- und Endzeitbereich, beispielsweise 30 Tage, und einen geeigneten Zeitraum, wie z. B. 86400.
In den zurückgegebenen Daten zeigt eine Summe von mehr als 0 an, dass die auszuwertende Tabelle während dieses Zeitraums Lesedatenverkehr empfangen hat.
Das folgende Ergebnis zeigt eine Tabelle, die im ausgewerteten Zeitraum Schreibdatenverkehr empfangen hat:
{ "Timestamp": "2022-08-19T20:15:00Z", "Sum": 41014457.0, "Unit": "Count" }, { "Timestamp": "2022-08-18T20:15:00Z", "Sum": 40048531.0, "Unit": "Count" },
Das folgende Ergebnis zeigt eine Tabelle, die im ausgewerteten Zeitraum keinen Schreibdatenverkehr empfangen hat:
{ "Timestamp": "2022-07-31T20:15:00Z", "Sum": 0.0, "Unit": "Count" }, { "Timestamp": "2022-08-19T20:15:00Z", "Sum": 0.0, "Unit": "Count" },
Bereinigen von nicht verwendeten Tabellenressourcen
Wenn Sie nicht verwendete Tabellenressourcen ermittelt haben, können Sie die laufenden Kosten für diese Ressourcen auf folgende Weise reduzieren.
Anmerkung
Wenn Sie eine nicht verwendete Tabelle ermittelt haben, die jedoch verfügbar bleiben soll, falls in Zukunft darauf zugegriffen werden muss, sollten Sie eine Umstellung auf den On-Demand-Modus in Betracht ziehen. Andernfalls können Sie sich überlegen, die Tabelle vollständig zu sichern und zu löschen.
Kapazitätsmodi
DynamoDB berechnet Gebühren für das Lesen, Schreiben und Speichern von Daten in Ihren DynamoDB-Tabellen.
DynamoDB bietet zwei Kapazitätsmodi mit spezifischen Abrechnungsoptionen für die Verarbeitung von Lese- und Schreibvorgängen für Ihre Tabellen: On-Demand und Bereitgestellt. Der Lese-/Schreibkapazitätsmodus steuert, wie Ihnen der Lese- und Schreibdurchsatz in Rechnung gestellt wird und wie Sie die Kapazität verwalten.
Für On-Demand-Modustabellen müssen Sie nicht angeben, wie viel Lese- und Schreibdurchsatz Sie von Ihrer Anwendung erwarten. DynamoDB berechnet Ihnen die Lese- und Schreibvorgänge, die Ihre Anwendung bei Ihren Tabellen durchführt, als Leseanforderungseinheiten und als Schreibanforderungseinheiten. Wenn in Ihrer Tabelle/Ihrem Index keine Aktivität stattfindet, zahlen Sie nicht für den Durchsatz, es fallen jedoch trotzdem Speichergebühren an.
Tabellenklasse
DynamoDB bietet zwei Tabellenklassen, mit deren Hilfe Sie Ihre Kosten optimieren können. Die DynamoDB-Standard-Tabellenklasse ist die Standardeinstellung und wird für die meisten Workloads empfohlen. Die Tabellenklasse DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) ist für Tabellen optimiert, in denen Speicher die dominierenden Kosten darstellt.
Wenn in Ihrer Tabelle oder Ihrem Index keine Aktivität stattfindet, stellt Speicher wahrscheinlich die dominierenden Kosten dar und eine Änderung der Tabellenklasse führt zu erheblichen Einsparungen.
Löschen von Tabellen
Wenn Sie eine nicht verwendete Tabelle entdeckt haben und diese löschen möchten, sollten Sie zuerst eine Sicherungskopie erstellen oder die Daten exportieren.
Mit AWS Backup erstellte Backups können Cold Storage Tiering nutzen und so die Kosten weiter senken. In der Verwendung AWS Backup mit DynamoDB Dokumentation finden Sie Informationen darüber, wie Sie Backups über AWS Backup aktivieren, sowie in der Dokumentation Backuppläne verwalten finden Sie Informationen dazu, wie Sie den Lebenszyklus verwenden können, um Ihr Backup in einen Cold Storage zu verschieben.
Alternativ können Sie die Daten Ihrer Tabelle zu S3 exportieren. Weitere Informationen finden Sie in der Dokumentation Export zu Amazon S3. Wenn Sie nach dem Export Ihrer Daten S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive nutzen möchten, um die Kosten weiter zu senken, beachten Sie die Informationen unter Verwalten Ihres Speicher-Lebenszyklus.
Nachdem Ihre Tabelle gesichert wurde, können Sie sie entweder über die AWS Management Console oder über die AWS Command Line Interface löschen.
Ermitteln von nicht verwendeten GSI-Ressourcen
Die Schritte zum Ermitteln eines nicht verwendeten globalen sekundären Indizes sind ähnlich wie bei der Ermittlung einer nicht verwendeten Tabelle. Da DynamoDB in Ihre Basistabelle geschriebene Elemente in Ihre GSI repliziert, wenn sie das Attribut enthalten, das als Partitionsschlüssel der GSI verwendet wird, hat ein nicht verwendeter GSI wahrscheinlich immer noch einen ConsumedWriteCapacityUnits
-Wert über 0, wenn seine Basistabelle verwendet wird. Daher werten Sie nur die ConsumedReadCapacityUnits
-Metrik aus, um festzustellen, ob Ihr GSI nicht verwendet wird.
Um Ihre GSI-Metriken über anzuzeigen AWS AWS CLI, können Sie die folgenden Befehle verwenden, um die Lesevorgänge Ihrer Tabelle auszuwerten:
aws cloudwatch get-metric-statistics --metric-name ConsumedReadCapacityUnits --start-time <start-time> --end-time <end- time> --period <period> --namespace AWS/DynamoDB --statistics Sum -- dimensions Name=TableName,Value=<table-name> Name=GlobalSecondaryIndexName,Value=<index-name>
Damit Tabellen nicht fälschlicherweise als nicht verwendet ermittelt werden, sollten Sie die Metriken über einen längeren Zeitraum auswerten. Wählen Sie einen geeigneten Startzeit- und Endzeitbereich, beispielsweise 30 Tage, und einen geeigneten Zeitraum, wie z. B. 86400.
In den zurückgegebenen Daten zeigt eine Summe von mehr als 0 an, dass die auszuwertende Tabelle während dieses Zeitraums Lesedatenverkehr empfangen hat.
Das folgende Ergebnis zeigt einen GSI, der im ausgewerteten Zeitraum Lesedatenverkehr empfangen hat:
{
"Timestamp": "2022-08-17T21:20:00Z",
"Sum": 36319167.0,
"Unit": "Count"
},
{
"Timestamp": "2022-08-11T21:20:00Z",
"Sum": 1869136.0,
"Unit": "Count"
},
Das folgende Ergebnis zeigt einen GSI, der im ausgewerteten Zeitraum minimalen Lesedatenverkehr empfangen hat:
{
"Timestamp": "2022-08-28T21:20:00Z",
"Sum": 0.0,
"Unit": "Count"
},
{
"Timestamp": "2022-08-15T21:20:00Z",
"Sum": 2.0,
"Unit": "Count"
},
Das folgende Ergebnis zeigt einen GSI, der im ausgewerteten Zeitraum keinen Lesedatenverkehr empfangen hat:
{
"Timestamp": "2022-08-17T21:20:00Z",
"Sum": 0.0,
"Unit": "Count"
},
{
"Timestamp": "2022-08-11T21:20:00Z",
"Sum": 0.0,
"Unit": "Count"
},
Bereinigen von nicht verwendeten GSI-Ressourcen
Wenn Sie einen nicht verwendeten GSI ermittelt haben, können Sie diesen löschen. Da alle in einem GSI vorhandenen Daten auch in der Basistabelle vorhanden sind, ist vor dem Löschen eines GSI keine zusätzliche Sicherung erforderlich. Wenn der GSI in Zukunft erneut benötigt wird, kann er wieder in die Tabelle aufgenommen werden.
Wenn Sie einen selten verwendeten GSI ermittelt haben, sollten Sie Designänderungen in Ihrer Anwendung in Betracht ziehen, damit Sie diesen löschen oder seine Kosten senken können. Während DynamoDB-Scans beispielsweise sparsam eingesetzt werden sollten, da sie große Mengen an Systemressourcen verbrauchen können, sind sie möglicherweise kostengünstiger als ein GSI, wenn das von diesem unterstützte Zugriffsmuster nur sehr selten verwendet wird.
Wenn ein GSI erforderlich ist, um ein seltenes Zugriffsmuster zu unterstützen, sollten Sie außerdem erwägen, einen begrenzteren Satz von Attributen zu projizieren. Dies kann zwar nachfolgende Abfragen der Basistabelle erfordern, um Ihre seltenen Zugriffsmuster zu unterstützen, kann jedoch möglicherweise zu einer erheblichen Reduzierung der Speicher- und Schreibkosten führen.
Bereinigen von nicht verwendeten globalen Tabellen
Globale Amazon-DynamoDB-Tabellen bieten eine vollständig verwaltete Lösung für die Bereitstellung einer multiregionalen, multiaktiven Datenbank, ohne dass eine eigene Replikationslösung erstellt und gepflegt werden muss.
Globale Tabellen eignen sich ideal für den Zugriff mit geringer Latenz auf Daten in der Nähe von Benutzern und als sekundäre Region für die Notfallwiederherstellung.
Wenn die Option für globale Tabellen für eine Ressource aktiviert ist, um den Zugriff auf Daten mit geringer Latenz zu ermöglichen, aber nicht Teil Ihrer Disaster-Recovery-Strategie ist, überprüfen Sie, ob beide Replikate aktiv Lesetraffic verarbeiten, indem Sie ihre Metriken auswerten. CloudWatch Wenn ein Replikat keinen Lesedatenverkehr bereitstellt, kann es sich um eine nicht verwendete Ressource handeln.
Wenn globale Tabellen Teil Ihrer Strategie für die Notfallwiederherstellung sind, kann bei einem Aktiv-/Standby-Muster erwartet werden, das ein Replikat keinen Lesedatenverkehr empfängt.
Säuberung ungenutzter Backups oder point-in-time Recovery (PITR)
DynamoDB bietet zwei Arten von Backups. Point-in-timeRecovery bietet kontinuierliche Backups für bis zu 35 Tage, um Sie vor versehentlichen Schreib- oder Löschvorgängen zu schützen. Ein On-Demand-Backup ermöglicht die Erstellung von Snapshots, die langfristig gespeichert werden können. Sie können den Wiederherstellungszeitraum auf einen beliebigen Wert zwischen 1 und 35 Tagen festlegen. Beide Arten von Sicherungen sind mit Kosten verbunden.
Stellen Sie mithilfe der Dokumentation zu Backup und Wiederherstellung für DynamoDB und Point-in-time Backups für DynamoDB fest, ob für Ihre Tabellen Sicherungen aktiviert sind, die möglicherweise nicht mehr benötigt werden.