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.
Evaluieren Sie die Auto-Scaling-Einstellungen Ihrer DynamoDB-Tabelle
In diesem Abschnitt erfahren Sie, wie Sie die Auto-Scaling-Einstellungen in Ihren DynamoDB-Tabellen auswerten können. Amazon DynamoDB Auto Scaling ist eine Funktion, die den Durchsatz von Tabellen und globalen sekundären Indizes (GSI) auf der Grundlage Ihres Anwendungsdatenverkehrs und Ihrer Zielnutzungsmetrik verwaltet. Dadurch GSIs wird sichergestellt, dass Ihre Tabellen oder Tabellen über die erforderliche Kapazität verfügen, die für Ihre Anwendungsmuster erforderlich ist.
Der AWS Auto Scaling-Dienst überwacht Ihre aktuelle Tabellenauslastung und vergleicht sie mit dem Zielnutzungswert:TargetValue
. Wenn es an der Zeit ist, die zugewiesene Kapazität zu erhöhen oder zu verringern, werden Sie benachrichtigt.
Themen
- Grundlegende Informationen zu Ihren Auto-Scaling-Einstellungen
- So ermitteln Sie Tabellen mit geringer Zielauslastung (<= 50 %)
- So bewältigen Sie Workloads mit saisonalen Schwankungen
- So bewältigen Sie stark schwankende Workloads mit unbekannten Mustern
- So bewältigen Sie Workloads mit verknüpften Anwendungen
Grundlegende Informationen zu Ihren Auto-Scaling-Einstellungen
Die Festlegung des richtigen Werts für die Zielauslastung, den ersten Schritt und die Endwerte erfordert die Beteiligung Ihres Operations-Teams. So können Sie die Werte, die zur Auslösung der AWS -Auto-Scaling-Richtlinien verwendet werden, auf der Grundlage der Anwendungsnutzung in der Vergangenheit angemessen definieren. Das Auslastungsziel ist der Prozentsatz Ihrer Gesamtkapazität, der in einem bestimmten Zeitraum erreicht werden muss, bevor die Auto-Scaling-Regeln angewendet werden.
Wenn Sie ein hohes Auslastungsziel (ein Ziel von rund 90 %) festlegen, muss der Datenverkehr einige Zeit einen Wert von über 90 % erreichen, bevor Auto Scaling aktiviert wird. Ein hohes Auslastungsziel sollten Sie nur verwenden, wenn Ihre Anwendung sehr konstant arbeitet und keine Datenverkehrsspitzen verzeichnet.
Wenn Sie eine sehr niedrige Auslastung (ein Ziel von weniger als 50 %) festlegen, wird eine Auto-Scaling-Richtlinie erst ausgelöst, wenn Ihre Anwendung 50 % der bereitgestellten Kapazität erreicht. Sofern Ihr Anwendungsdatenverkehr nicht extrem schnell zunimmt, führt dies in der Regel zu ungenutzter Kapazität und einer Ressourcenverschwendung.
So ermitteln Sie Tabellen mit geringer Zielauslastung (<= 50 %)
Sie können entweder das AWS CLI oder verwenden AWS Management Console , um die TargetValues
für Ihre Auto Scaling-Richtlinien in Ihren DynamoDB-Ressourcen geltenden Richtlinien zu überwachen und zu identifizieren:
Bei Zielauslastungswerten von maximal 50 % sollten Sie Ihre Tabellenauslastungsmetriken prüfen, um festzustellen, ob eine zu geringe oder eine übermäßige Bereitstellung vorliegt.
So bewältigen Sie Workloads mit saisonalen Schwankungen
Stellen Sie sich folgendes Szenario vor: Ihre Anwendung läuft die meiste Zeit unter einem minimalen Durchschnittswert, doch das Auslastungsziel ist niedrig. Somit kann Ihre Anwendung schnell auf Ereignisse reagieren, die zu bestimmten Tageszeiten auftreten, Sie verfügen über genügend Kapazität und es kommt nicht zu Drosselungen. Ein solches Szenario kommt häufig vor, wenn eine Anwendung während der normalen Bürozeiten (9 bis 17 Uhr) sehr stark ausgelastet ist, außerhalb der Geschäftszeiten jedoch auf niedrigem Niveau läuft. Da einige Benutzer vor 9 Uhr beginnen, eine Verbindung herzustellen, verwendet die Anwendung diesen niedrigen Schwellenwert, um schnell hochzufahren und zu Spitzenzeiten die erforderliche Kapazität zu erreichen.
Dieses Szenario könnte wie folgt aussehen:
-
Zwischen 17 Uhr und 9 Uhr bleiben die
ConsumedWriteCapacity
-Einheiten zwischen 90 und 100. -
Benutzer beginnen vor 9 Uhr, eine Verbindung mit der Anwendung herzustellen, und die Kapazitätseinheiten erhöhen sich erheblich (der Höchstwert, den Sie gesehen haben, ist 1500WCU)
-
Im Durchschnitt variiert Ihre Anwendungsnutzung während der Arbeitszeit zwischen 800 und 1 200.
Wenn das vorherige Szenario auch bei Ihnen anzutreffen ist, sollten Sie geplantes Auto Scaling in Betracht ziehen. Dabei könnte für Ihre Tabelle immer noch eine Auto-Scaling-Regel für die Anwendung konfiguriert sein, jedoch mit einer weniger aggressiven Zielauslastung, wobei die zusätzliche Kapazität nur in den von Ihnen benötigten Intervallen bereitgestellt wird.
Sie können AWS CLI die folgenden Schritte ausführen, um eine geplante Auto Scaling-Regel zu erstellen, die je nach Tageszeit und Wochentag ausgeführt wird.
-
Registrieren Sie Ihre DynamoDB-Tabelle oder GSI als skalierbares Ziel bei. Application Auto Scaling Ein skalierbares Ziel ist eine Ressource, die Application Auto Scaling auf- und abskalieren kann.
aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/<table-name> \ --min-capacity 90 \ --max-capacity 1500
-
Richten Sie geplante Aktionen entsprechend Ihren Anforderungen ein.
Für dieses Szenario werden wir zwei Regeln benötigen: eine zum Hochskalieren und eine zum Herunterskalieren. Die erste Regel zum Hochskalieren der geplanten Aktion:
aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/<table-name> \ --scheduled-action-name my-8-5-scheduled-action \ --scalable-target-action MinCapacity=800,MaxCapacity=1500 \ --schedule "cron(45 8 ? * MON-FRI *)" \ --timezone "Australia/Brisbane"
Die zweite Regel zum Herunterskalieren der geplanten Aktion:
aws application-autoscaling put-scheduled-action \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/<table-name> \ --scheduled-action-name my-5-8-scheduled-down-action \ --scalable-target-action MinCapacity=90,MaxCapacity=1500 \ --schedule "cron(15 17 ? * MON-FRI *)" \ --timezone "Australia/Brisbane"
-
Führen Sie den folgenden Befehl aus, um zu bestätigen, dass beide Regeln aktiviert wurden:
aws application-autoscaling describe-scheduled-actions --service-namespace dynamodb
Das Ergebnis sollte ungefähr wie folgt aussehen:
{ "ScheduledActions": [ { "ScheduledActionName": "my-5-8-scheduled-down-action", "ScheduledActionARN": "arn:aws:autoscaling:<region>:<account>:scheduledAction:<uuid>:resource/dynamodb/table/<table-name>:scheduledActionName/my-5-8-scheduled-down-action", "ServiceNamespace": "dynamodb", "Schedule": "cron(15 17 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "table/<table-name>", "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "ScalableTargetAction": { "MinCapacity": 90, "MaxCapacity": 1500 }, "CreationTime": "2022-03-15T17:30:25.100000+10:00" }, { "ScheduledActionName": "my-8-5-scheduled-action", "ScheduledActionARN": "arn:aws:autoscaling:<region>:<account>:scheduledAction:<uuid>:resource/dynamodb/table/<table-name>:scheduledActionName/my-8-5-scheduled-action", "ServiceNamespace": "dynamodb", "Schedule": "cron(45 8 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "table/<table-name>", "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "ScalableTargetAction": { "MinCapacity": 800, "MaxCapacity": 1500 }, "CreationTime": "2022-03-15T17:28:57.816000+10:00" } ] }
Im folgenden Bild ist ein Workload zu sehen, bei dem immer die Zielauslastung von 70 % beibehalten wird. Beachten Sie, dass die Auto-Scaling-Regeln weiterhin gelten und der Durchsatz nicht reduziert wird.
Beim Heranzoomen können wir sehen, dass es einen Anstieg in der Anwendung gab, der den Schwellenwert für die auto Skalierung von 70% auslöste. Dadurch wurde die auto Skalierung aktiviert und die zusätzliche Kapazität bereitgestellt, die für die Tabelle erforderlich war. Das geplante Auto Scaling wirkt sich auf die Maximal- und Minimalwerte aus. Für ihre Einrichtung sind Sie zuständig.
So bewältigen Sie stark schwankende Workloads mit unbekannten Mustern
In diesem Szenario verwendet die Anwendung ein sehr niedriges Auslastungsziel, da Sie die Anwendungsmuster noch nicht kennen und sicherstellen möchten, dass Ihr Workload nicht gedrosselt wird.
Sie sollten stattdessen die Verwendung des On-Demand-Kapazitätsmodus in Betracht ziehen. On-Demand-Tabellen eignen sich perfekt für stark schwankende Workloads, deren Datenverkehrsmuster Sie nicht kennen. Im On-Demand-Kapazitätsmodus zahlen Sie pro Anforderung für die Lese- und Schreibvorgänge, die Ihre Anwendung in Ihren Tabellen ausführt. Sie müssen nicht angeben, wie viel Lese- und Schreibdurchsatz Sie von Ihrer Anwendung erwarten, da DynamoDB Ihre Workloads umgehend anpasst, wenn diese größer oder kleiner werden.
So bewältigen Sie Workloads mit verknüpften Anwendungen
In diesem Szenario hängt die Anwendung von anderen Systemen ab. Dies kann beispielsweise in Batchverarbeitungsszenarien der Fall sein, bei denen es abhängig von Ereignissen in der Anwendungslogik zu starken Datenverkehrsspitzen kommen kann.
Möglicherweise möchten Sie eine benutzerdefinierte Auto-Scaling-Logik entwickeln, die auf diese Ereignisse reagiert und mit der Sie die Tabellenkapazität und TargetValues
Ihren spezifischen Anforderungen entsprechend erhöhen können. Sie könnten von einer Kombination von AWS Diensten wie Lambda Amazon EventBridge und Step Functions profitieren und diese nutzen, um auf Ihre spezifischen Anwendungsanforderungen zu reagieren.