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.
Automatische Verwaltung der Durchsatzkapazität mit DynamoDB-Auto-Scaling
Viele Datenbank-Workloads sind zyklischer Natur, während andere sich nur schwer vorhersagen lassen. Nehmen wir als Beispiel eine Social-Networking-App, bei der die meisten Benutzer tagsüber aktiv sind. Die Datenbank muss in der Lage sein, die Aktivitäten am Tag zu verarbeiten, während in der Nacht nicht so viel Durchsatz erforderlich ist. Ein weiteres Beispiel wäre eine neue Mobile-Gaming-App, die sich unerwartet schnell großer Beliebtheit erfreut. Wenn das Spiel jedoch zu beliebt wird, kann dies dazu führen, dass die verfügbaren Datenbankressourcen überschritten werden und sich dies negativ auf die Leistung und Kundenzufriedenheit auswirkt. Diese Arten von Workloads erfordern häufig manuelle Eingriffe, um die Datenbankressourcen nach oben oder unten zu skalieren, um sie an die jeweiligen Nutzungsschwankungen anzupassen.
Amazon DynamoDB Auto Scaling verwendet den AWS Application Auto Scaling-Service, um die bereitgestellte Durchsatzkapazität in Ihrem Namen dynamisch an die tatsächlichen Verkehrsmuster anzupassen. Auf diese Weise kann eine Tabelle oder ein globaler sekundärer Index (GSI) die bereitgestellte Lese- und Schreibkapazität erhöhen, um plötzlichen Anstieg des Datenverkehrs ohne Drosselung zu bewältigen. Wenn der Workload abnimmt, senkt Application Auto Scaling Auto Scaling den Durchsatz, sodass Sie für ungenutzte Kapazität nicht zahlen müssen.
Anmerkung
Wenn Sie den verwenden AWS Management Console , um eine Tabelle oder einen globalen sekundären Index zu erstellen, ist DynamoDB Auto Scaling standardmäßig aktiviert. Sie können Ihre Auto Scaling-Einstellungen jederzeit ändern. Weitere Informationen finden Sie unter Verwenden der auto AWS Management Console Skalierung mit DynamoDB.
Wenn Sie eine Tabelle oder ein globales Tabellenreplikat löschen, werden alle zugehörigen skalierbaren Ziele, Skalierungsrichtlinien oder CloudWatch Alarme nicht automatisch mit gelöscht.
Mit Application Auto Scaling erstellen Sie eine Skalierungsrichtlinie für eine Tabelle oder einen globalen sekundären Index. Die Skalierungsrichtlinie gibt an, ob die Lese- oder Schreibkapazität (oder beides) sowie die Einstellungen für die minimalen und maximalen bereitgestellten Kapazitätseinheiten für die Tabelle oder den Index skaliert werden sollen.
Die Skalierungsrichtlinie enthält außerdem eine Zielauslastung, d. h. den zu einem bestimmten Zeitpunkt verbrauchten bereitgestellten Durchsatz in Prozent. Application Auto Scaling verwendet einen Zielverfolgungsalgorithmus, um den bereitgestellten Durchsatz der Tabelle (oder des Indexes) als Reaktion auf die tatsächlichen Workloads nach oben oder unten anzupassen, sodass die tatsächliche Kapazitätsauslastung bei oder in der Nähe Ihrer Zielauslastung bleibt.
DynamoDB-Ausgaben verbrauchten den bereitgestellten Durchsatz für Zeiträume von einer Minute. Auto Scaling wird ausgelöst, wenn Ihre verbrauchte Kapazität für zwei aufeinanderfolgende Minuten die konfigurierte Zielauslastung überschreitet. CloudWatch Alarme können eine kurze Verzögerung von bis zu einigen Minuten haben, bevor sie die auto Skalierung auslösen. Diese Verzögerung gewährleistet eine genaue CloudWatch metrische Auswertung. Wenn die verbrauchten Durchsatzspitzen mehr als eine Minute voneinander entfernt sind, wird die auto Skalierung möglicherweise nicht ausgelöst. In ähnlicher Weise kann ein Herunterskalierungsereignis auftreten, wenn 15 aufeinanderfolgende Datenpunkte unter der Zielauslastung liegen. In beiden Fällen wird nach Auslösen der UpdateTableAPIAuto Scaling aufgerufen. Es dauert dann mehrere Minuten, bis die bereitgestellte Kapazität für die Tabelle oder den Index aktualisiert ist. Während dieses Zeitraums werden alle Anfragen, die die zuvor bereitgestellte Kapazität der Tabellen überschreiten, gedrosselt.
Wichtig
Sie können die Anzahl der Datenpunkte, die verletzt werden sollen, nicht anpassen, um den zugrunde liegenden Alarm auszulösen (obwohl sich die aktuelle Anzahl in future ändern könnte).
Sie können die Zielauslastungswerte von Auto Scaling auf 20 bis 90 % für Ihre Lese- und Schreibkapazität festlegen.
Anmerkung
Zusätzlich zu den Tabellen unterstützt DynamoDB-Auto-Scaling auch globale sekundäre Indexe. Jeder globale sekundäre Index verfügt über eine eigene bereitgestellte Durchsatzkapazität, unabhängig von der seiner Basistabelle. Wenn Sie eine Skalierungsrichtlinie für einen globalen sekundären Index erstellen, passt Application Auto Scaling die Einstellungen für den bereitgestellten Durchsatz für den Index an, um sicherzustellen, dass die tatsächliche Auslastung auf oder in der Nähe des gewünschten Auslastungsverhältnisses bleibt.
Funktionsweise von DynamoDB-Auto-Scaling
Anmerkung
Informationen für einen schnellen Einstieg in DynamoDB-Auto-Scaling finden Sie unter Verwenden der auto AWS Management Console Skalierung mit DynamoDB.
Die folgende Abbildung bietet einen allgemeinen Überblick darüber, wie DynamoDB-Auto-Scaling die Durchsatzkapazität für eine Tabelle verwaltet:
Die folgenden Schritte fassen den Prozess der automatischen Skalierung zusammen, wie in der vorherigen Abbildung gezeigt:
-
Sie erstellen eine Application-Auto-Scaling-Richtlinie für die DynamoDB-Tabelle.
-
DynamoDB veröffentlicht Kennzahlen zur verbrauchten Kapazität auf Amazon. CloudWatch
-
Wenn die verbrauchte Kapazität der Tabelle Ihre Zielauslastung für einen bestimmten Zeitraum überschreitet (oder unter das Ziel fällt), CloudWatch löst Amazon einen Alarm aus. Sie können den Alarm auf der Konsole anzeigen und Benachrichtigungen mit Amazon Simple Notification Service (AmazonSNS) erhalten.
-
Der CloudWatch Alarm ruft Application Auto Scaling auf, um Ihre Skalierungsrichtlinie auszuwerten.
-
Application Auto Scaling gibt eine
UpdateTable
-Anforderung aus, um den bereitgestellten Durchsatz der Tabelle anzupassen. -
DynamoDB verarbeitet die
UpdateTable
-Anforderung und erhöht (bzw. senkt) die bereitgestellte Durchsatzkapazität der Tabelle dynamisch, sodass sie sich der Zielauslastung nähert.
Wir wollen die Funktionsweise von DynamoDB-Auto-Scaling anhand einer Beispieltabelle namens ProductCatalog
erläutern. In die Tabelle werden selten Daten massenweise geladen, es erfolgt also nicht sehr viel Schreibaktivität. Es gibt jedoch ein hohes Maß an Leseaktivität, die im Laufe der Zeit variiert. Durch die Überwachung der CloudWatch Amazon-Metriken für stellen Sie festProductCatalog
, dass die Tabelle 1.200 Lesekapazitätseinheiten benötigt (um zu verhindern, dass DynamoDB Leseanforderungen drosselt, wenn die Aktivität ihren Höhepunkt erreicht). Sie stellen außerdem fest, dass ProductCatalog
mindestens 150 Lesekapazitätseinheiten erfordert, wenn der Leseverkehr am niedrigsten ist. Weitere Informationen zur Vermeidung einer Drosselung finden Sie unter Drosselungsprobleme für DynamoDB.
Angesichts der Spanne von 150 bis 1.200 Lesekapazitätseinheiten entscheiden Sie, dass eine Zielauslastung von 70 Prozent für die Tabelle ProductCatalog
angemessen wäre. Die Zielauslastung ist das Verhältnis der verbrauchten Kapazitätseinheiten zu den bereitgestellten Kapazitätseinheiten in Prozent. Application Auto Scaling verwendet einen eigenen Ziel-Tracking-Algorithmus, um sicherzustellen, dass die bereitgestellte Lesekapazität von ProductCatalog
wie erforderlich angepasst wird, damit die Auslastung nahezu 70 Prozent beträgt.
Anmerkung
DynamoDB Auto Scaling ändert die Einstellungen für den bereitgestellten Durchsatz nur, wenn die tatsächliche Workload über einen anhaltenden Zeitraum von mehreren Minuten erhöht oder niedrig bleibt. Der Ziel-Tracking-Algorithmus von Application Auto Scaling versucht, dafür zu sorgen, dass die Zielauslastung langfristig Ihrem gewählten Wert nahezu entspricht.
Plötzliche Aktivitätsspitzen werden von der integrierten Burst-Kapazität der Tabelle bewältigt. Weitere Informationen finden Sie unter Burst-Kapazität.
Um DynamoDB-Auto-Scaling für die Tabelle ProductCatalog
zu aktivieren, erstellen Sie eine Skalierungsrichtlinie. Diese Richtlinie legt Folgendes fest:
-
Die Tabelle oder der globale sekundäre Index, die Sie verwalten möchten
-
Den Kapazitätstyp, der verwaltet werden soll (Lese- oder Schreibkapazität)
-
Die Ober- und Untergrenze für die bereitgestellten Durchsatzeinstellungen
-
Ihre Zielauslastung
Wenn Sie eine Skalierungsrichtlinie erstellen, erstellt Application Auto Scaling in Ihrem Namen zwei CloudWatch Amazon-Alarme. Jedes Paar stellt die Ober- und Untergrenze für Ihren bereitgestellten Durchsatz dar. Diese CloudWatch Alarme werden ausgelöst, wenn die tatsächliche Auslastung der Tabelle über einen längeren Zeitraum von Ihrer Zielauslastung abweicht.
Wenn einer der CloudWatch Alarme ausgelöst wird, SNS sendet Amazon Ihnen eine Benachrichtigung (sofern Sie ihn aktiviert haben). Der CloudWatch Alarm ruft dann Application Auto Scaling auf, das wiederum DynamoDB auffordert, die bereitgestellte Kapazität der ProductCatalog
Tabelle nach Bedarf nach oben oder unten anzupassen.
Während eines Skalierungsereignisses AWS Config wird pro aufgezeichnetem Konfigurationselement abgerechnet. Wenn ein Skalierungsereignis auftritt, werden für jedes auto-scaling Skalierungsereignis beim Lesen und Schreiben vier CloudWatch ProvisionedCapacity Alarme erstellt: ProvisionedCapacityLow alarms: ProvisionedCapacityHigh und ConsumedCapacity alarms: AlarmHigh, AlarmLow. Dies führt zu insgesamt acht Alarmen. AWS Config Zeichnet daher acht Konfigurationselemente für jedes Skalierungsereignis auf.
Anmerkung
Sie können Ihre DynamoDB-Skalierung auch so planen, dass sie zu bestimmten Zeiten erfolgt. Lernen Sie hier die grundlegenden Schritte kennen.
Nutzungshinweise
Bevor Sie DynamoDB-Auto-Scaling verwenden, beachten Sie Folgendes:
-
Bei DynamoDB-Auto-Scaling kann die Lese- bzw. Schreibkapazität in Übereinstimmung mit Ihrer Auto-Scaling-Richtlinie so oft wie nötig erhöht werden. Alle DynamoDB-Kontingente bleiben in Kraft, wie unter Service-, Konto- und Tabellenkontingente in Amazon DynamoDB beschrieben.
-
DynamoDB-Auto-Scaling hindert Sie nicht daran, die Einstellungen für den bereitgestellten Durchsatz manuell zu ändern. Diese manuellen Anpassungen wirken sich nicht auf bestehende CloudWatch Alarme aus, die sich auf DynamoDB Auto Scaling beziehen.
-
Wenn Sie die automatische DynamoDB-Skalierung für eine Tabelle aktivieren, die über einen oder mehrere globale sekundäre Indexe verfügt, wird dringend empfohlen, die automatische Skalierung auch einheitlich auf diese Indexe anzuwenden. Dies trägt dazu bei, eine bessere Leistung beim Schreiben und Lesen von Tabellen zu gewährleisten und eine Drosselung zu vermeiden. Sie können Auto Scaling aktivieren, indem Sie Apply same settings to global secondary indexes (Die gleichen Einstellungen für globale sekundäre Indizes anwenden) in der AWS Management Console auswählen. Weitere Informationen finden Sie unter Aktivieren von DynamoDB-Auto-Scaling in bestehenden Tabellen.
-
Wenn Sie eine Tabelle oder ein globales Tabellenreplikat löschen, werden alle zugehörigen skalierbaren Ziele, Skalierungsrichtlinien oder CloudWatch Alarme nicht automatisch mit gelöscht.
-
Wenn Sie eine GSI für eine vorhandene Tabelle erstellen, ist Auto Scaling für die nicht aktiviertGSI. Sie müssen die Kapazität manuell verwalten, während die gebaut GSI wird. Sobald die Verfüllung GSI abgeschlossen ist und der Status aktiv erreicht ist, funktioniert die auto Skalierung wie gewohnt.