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.
Prüfen Sie die Application Auto Scaling-Einstellungen Ihrer Tabelle
Dieser Abschnitt bietet einen Überblick darüber, wie Sie die Application Auto Scaling-Einstellungen Ihrer Amazon Keyspaces-Tabellen auswerten können. Amazon Keyspaces-Anwendung: Auto Scaling ist eine Funktion, die den Tabellendurchsatz auf der Grundlage Ihres Anwendungsdatenverkehrs und Ihrer Zielauslastungsmetrik verwaltet. Dadurch wird sichergestellt, dass Ihre Tabellen über die für Ihre Anwendungsmuster erforderliche Kapazität verfügen.
Der Application Auto Scaling-Service überwacht Ihre aktuelle Tabellennutzung und vergleicht sie mit dem Zielauslastungswert: TargetValue. Es benachrichtigt Sie, wenn es an der Zeit ist, die zugewiesene Kapazität zu erhöhen oder zu verringern.
Themen
Grundlegendes zu den Auto Scaling-Einstellungen Ihrer Anwendung
Die Festlegung des richtigen Werts für die Zielauslastung, den ersten Schritt und die Endwerte erfordert die Beteiligung Ihres Operations-Teams. Auf diese Weise können Sie die Werte auf der Grundlage der historischen Anwendungsnutzung, die zum Auslösen der Application Auto Scaling-Richtlinien verwendet wird, richtig definieren. Das Auslastungsziel ist der Prozentsatz Ihrer Gesamtkapazität, der innerhalb eines Zeitraums erreicht werden muss, bevor die Application Auto Scaling-Regeln gelten.
Wenn Sie eine festlegen hohes Auslastungsziel (ein Ziel von etwa 90%) Das bedeutet, dass Ihr Traffic für einen bestimmten Zeitraum über 90% liegen muss, bevor das Application Auto Scaling aktiviert wird. Ein hohes Auslastungsziel sollten Sie nur verwenden, wenn Ihre Anwendung sehr konstant arbeitet und keine Datenverkehrsspitzen verzeichnet.
Wenn Sie einen sehr einstellen niedrige Auslastung (ein Ziel von weniger als 50%) das bedeutet, dass Ihre Anwendung 50% der bereitgestellten Kapazität erreichen müsste, bevor sie eine Application Auto Scaling-Richtlinie auslöst. Sofern Ihr Anwendungsdatenverkehr nicht extrem schnell zunimmt, führt dies in der Regel zu ungenutzter Kapazität und einer Ressourcenverschwendung.
So identifizieren Sie Tabellen mit niedriger Zielauslastung (<= 50%)
Sie können entweder die verwenden AWS CLI oder AWS-Managementkonsole zur Überwachung und Identifizierung der TargetValues für Ihre Application Auto Scaling-Richtlinien in Ihren Amazon Keyspaces-Ressourcen.
Anmerkung
Wenn Sie Tabellen mit mehreren Regionen im Modus für bereitgestellte Kapazität mit Amazon Keyspaces Auto Scaling verwenden, stellen Sie sicher, dass Sie die Amazon Keyspaces-API-Operationen verwenden, um Auto Scaling zu konfigurieren. Die zugrunde liegenden Application Auto Scaling-API-Operationen, die Amazon Keyspaces in Ihrem Namen aufruft, verfügen nicht über Funktionen für mehrere Regionen. Weitere Informationen finden Sie unter Sehen Sie sich die bereitgestellten Kapazitäten und Auto-Scaling-Einstellungen für eine Tabelle mit mehreren Regionen in Amazon Keyspaces an.
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 schon vor 9 Uhr morgens eine Verbindung herstellen, verwendet die Anwendung diesen niedrigen Schwellenwert, um schnell hochzufahren und zum erforderlich Kapazität während der Hauptverkehrszeiten.
Dieses Szenario könnte wie folgt aussehen:
-
Zwischen 17 Uhr und 9 Uhr bleiben die
ConsumedWriteCapacityUnits-Einheiten zwischen 90 und 100. -
Benutzer beginnen vor 9 Uhr, eine Verbindung zu der Anwendung herzustellen, und die Kapazitätseinheiten steigen erheblich an (der maximale Wert, den Sie gesehen haben, beträgt 1 500 WCU).
-
Im Durchschnitt variiert Ihre Anwendungsnutzung während der Arbeitszeit zwischen 800 und 1 200.
Wenn das vorherige Szenario auf Ihre Anwendung zutrifft, sollten Sie Folgendes in Betracht ziehen Automatische Skalierung der geplanten Anwendung, wobei für Ihre Tabelle immer noch eine Application Auto Scaling-Regel konfiguriert sein könnte, allerdings mit einer weniger aggressiven Zielauslastung, bei der die zusätzliche Kapazität nur in den von Ihnen benötigten Intervallen bereitgestellt wird.
Sie können das verwenden AWS CLI um die folgenden Schritte auszuführen, um eine geplante Auto Scaling-Regel zu erstellen, die auf der Grundlage der Tageszeit und des Wochentags ausgeführt wird.
-
Registrieren Sie Ihre Amazon Keyspaces-Tabelle als skalierbares Ziel mit 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 cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/table/table-name\ --min-capacity 90 \ --max-capacity 1500 -
Richten Sie geplante Aktionen entsprechend Ihren Anforderungen ein.
Sie benötigen zwei Regeln, um das Szenario abzudecken: eine für das Hochskalieren und eine für das Herunterskalieren. Die erste Regel zum Hochskalieren der geplanten Aktion wird im folgenden Beispiel gezeigt.
aws application-autoscaling put-scheduled-action \ --service-namespace cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/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 wird in diesem Beispiel gezeigt.
aws application-autoscaling put-scheduled-action \ --service-namespace cassandra \ --scalable-dimension cassandra:table:WriteCapacityUnits \ --resource-id keyspace/keyspace-name/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 cassandraDas Ergebnis sollte ungefähr wie folgt aussehen:
{ "ScheduledActions": [ { "ScheduledActionName": "my-5-8-scheduled-down-action", "ScheduledActionARN": "arn:aws:autoscaling:us-east-1:111122223333:scheduledAction:<uuid>:resource/keyspaces/table/table-name:scheduledActionName/my-5-8-scheduled-down-action", "ServiceNamespace": "cassandra", "Schedule": "cron(15 17 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra: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:us-east-1:111122223333:scheduledAction:<uuid>:resource/keyspaces/table/table-name:scheduledActionName/my-8-5-scheduled-action", "ServiceNamespace": "cassandra", "Schedule": "cron(45 8 ? * MON-FRI *)", "Timezone": "Australia/Brisbane", "ResourceId": "keyspace/keyspace-name/table/table-name", "ScalableDimension": "cassandra: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 Regeln für die automatische Skalierung weiterhin gelten und der Durchsatz nicht reduziert wird.
Wenn wir die Ansicht vergrößern, sehen wir, dass es in der Anwendung einen Spitzenwert gegeben hat, der den 70%-Schwellenwert für Auto Scaling ausgelöst hat, sodass Auto Scaling aktiviert und die für die Tabelle benötigte zusätzliche Kapazität bereitgestellt wurde. Die geplante Auto Scaling-Aktion wirkt sich auf die Höchst- und Mindestwerte aus, und es liegt in Ihrer Verantwortung, diese einzurichten.
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 bei Ihrem Workload keine Durchsatzfehler bei niedriger Kapazität auftreten.
Erwägen Sie die Verwendung Kapazitätsmodus auf Abruf stattdessen. On-demand Tabellen eignen sich perfekt für hohe Workloads, bei denen Sie die Verkehrsmuster 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 Amazon Keyspaces Ihre Workloads sofort berücksichtigt, wenn sie hoch- oder herunterfahren.
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.
Erwägen Sie, eine benutzerdefinierte Logik für die automatische Skalierung von Anwendungen zu entwickeln, die auf Ereignisse reagieren, bei denen Sie die Tabellenkapazität erhöhen können und TargetValues abhängig von Ihren spezifischen Bedürfnissen. Sie könnten profitieren von Amazon EventBridge und verwenden Sie eine Kombination aus AWS Dienste wie Λ und Step Functions, um auf Ihre spezifischen Anwendungsanforderungen zu reagieren.