Verwalten von Amazon Keyspaces Auto Scaling mit Cassandra Query Language (CQL) - Amazon Keyspaces (für Apache Cassandra)

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.

Verwalten von Amazon Keyspaces Auto Scaling mit Cassandra Query Language (CQL)

Um Auto-Scaling-Einstellungen für Amazon-Keyspaces-Tabellen mit Cassandra Query Language (CQL) zu erstellen und zu verwalten, können Sie verwendencqlsh. Dieses Thema bietet einen Überblick über die Auto-Scaling-Aufgaben, die Sie programmgesteuert mit CQL verwalten können.

Weitere Informationen zu den in diesem Thema beschriebenen CQL-Anweisungen finden Sie unter DDL-Anweisungen (Datendefinitionssprache) in Amazon Keyspaces.

Bevor Sie beginnen

Sie müssen die folgenden Aufgaben ausführen, bevor Sie beginnen können.

Konfigurieren von Berechtigungen

Wenn Sie dies noch nicht getan haben, müssen Sie die entsprechenden Berechtigungen für den Benutzer konfigurieren, um Auto-Scaling-Einstellungen zu erstellen und zu verwalten. In AWS Identity and Access Management (IAM) AmazonKeyspacesFullAccess ist die - AWS verwaltete Richtlinie erforderlich, um Amazon Keyspaces-Skalierungsrichtlinien zu verwalten. Die detaillierten Schritte finden Sie unter Bevor Sie beginnen: Erteilen von Benutzerberechtigungen für Amazon Keyspaces Auto Scaling.

Konfigurieren von cqlsh

Falls noch nicht geschehen, müssen Sie installieren und konfigurierencqlsh. Befolgen Sie dazu die Anweisungen unter Verwenden voncqlsh-expansion, um eine Verbindung zu Amazon Keyspaces herzustellen. Anschließend können Sie die verwenden AWS CloudShell , um die Befehle in den folgenden Abschnitten auszuführen.

Erstellen einer neuen Tabelle mit automatischer Skalierung mithilfe von CQL

Wenn Sie eine neue Amazon Keyspaces-Tabelle erstellen, können Sie die automatische Skalierung für die Schreib- oder Lesekapazität der Tabelle in der -CREATE TABLEAnweisung automatisch aktivieren. Auf diese Weise kann Amazon Keyspaces Application Auto Scaling in Ihrem Namen kontaktieren, um die Tabelle als skalierbares Ziel zu registrieren und die bereitgestellte Schreib- oder Lesekapazität anzupassen.

Weitere Informationen zum Erstellen einer multiregionalen Tabelle und zum Konfigurieren verschiedener Auto-Scaling-Einstellungen für Tabellenreplikate finden Sie unter Erstellen einer multiregionalen Tabelle mit Standardeinstellungen (CQL).

Anmerkung

Amazon Keyspaces Auto Scaling erfordert das Vorhandensein einer serviceverknüpften Rolle (AWSServiceRoleForApplicationAutoScaling_CassandraTable), um automatische Skalierungsaktionen in Ihrem Namen durchzuführen. Diese Rolle wird automatisch für Sie erstellt. Weitere Informationen finden Sie unter Verwenden von serviceverknüpften Rollen für Amazon Keyspaces.

Um Auto-Scaling-Einstellungen für eine Tabelle programmgesteuert zu konfigurieren, verwenden Sie die -AUTOSCALING_SETTINGSAnweisung, die die Parameter für Amazon Keyspaces Auto Scaling enthält. Die Parameter definieren die Bedingungen, die Amazon Keyspaces anweisen, den bereitgestellten Durchsatz Ihrer Tabelle anzupassen, und welche zusätzlichen optionalen Aktionen ausgeführt werden sollen. In diesem Beispiel definieren Sie die Auto-Scaling-Einstellungen für mytable .

Die Richtlinie enthält die folgenden Elemente:

  • AUTOSCALING_SETTINGS – Gibt an, ob Amazon Keyspaces die Durchsatzkapazität in Ihrem Namen anpassen darf. Die folgenden Werte sind erforderlich:

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy – Amazon Keyspaces unterstützt die Zielverfolgungsrichtlinie. Um die Richtlinie für die Ziel-Nachverfolgung zu definieren, konfigurieren Sie die folgenden Parameter.

      • target_value – Amazon Keyspaces Auto Scaling stellt sicher, dass das Verhältnis von verbrauchter Kapazität zu bereitgestellter Kapazität bei oder nahe diesem Wert bleibt. Sie definieren target_value als Prozentsatz.

      • disableScaleIn: (Optional) Ein boolean, der angibt, ob für die Tabelle deaktiviert oder aktiviert scale-in ist. Dieser Parameter ist standardmäßig deaktiviert. Um zu aktivierenscale-in, setzen Sie den boolean Wert auf FALSE. Das bedeutet, dass die Kapazität für eine Tabelle in Ihrem Namen automatisch herunterskaliert wird.

      • scale_out_cooldown – Eine Scale-Out-Aktivität erhöht den bereitgestellten Durchsatz Ihrer Tabelle. Um eine Ruhephase für Scale-Out-Aktivitäten hinzuzufügen, geben Sie einen Wert in Sekunden für anscale_out_cooldown. Wenn Sie keinen Wert angeben, ist der Standardwert 0. Weitere Informationen zur Zielverfolgung und Ruhephasen finden Sie unter Skalierungsrichtlinien für die Zielverfolgung im Benutzerhandbuch für Application Auto Scaling.

      • scale_in_cooldown – Eine Scale-In-Aktivität verringert den bereitgestellten Durchsatz Ihrer Tabelle. Um eine Ruhephase für Abskalierungsaktivitäten hinzuzufügen, geben Sie einen Wert in Sekunden für anscale_in_cooldown. Wenn Sie keinen Wert angeben, ist der Standardwert 0. Weitere Informationen zur Zielverfolgung und Ruhephasen finden Sie unter Skalierungsrichtlinien für die Zielverfolgung im Benutzerhandbuch für Application Auto Scaling.

Anmerkung

Um besser zu verstehen, wie der target_value funktioniert, nehmen Sie an, dass Sie über eine Tabelle mit einer Einstellung des bereitgestellten Durchsatzes von 200 Schreibkapazitätseinheiten verfügen. Sie entscheiden sich dafür, eine Skalierungsrichtlinie für diese Tabelle mit einem target_value von 70 % zu erstellen.

Angenommen, Sie beginnen den Schreibverkehr zu der Tabelle zu leiten, damit der tatsächliche Schreibdurchsatz bei 150 Kapazitätseinheiten liegt. Das consumed-to-provisioned Verhältnis ist jetzt (150/200) oder 75 Prozent. Dieses Verhältnis überschreitet Ihr Ziel, sodass Auto Scaling die bereitgestellte Schreibkapazität auf 215 erhöht, sodass das Verhältnis (150/215) oder 69,77 Prozent ist – so nahe target_value wie möglich an Ihrem , aber nicht darüber.

Für mytable legen Sie sowohl für die Lese- als auch TargetValue für die Schreibkapazität auf 50 Prozent fest. Amazon Keyspaces Auto Scaling passt den bereitgestellten Durchsatz der Tabelle im Bereich von 5 bis 10 Kapazitätseinheiten an, sodass das consumed-to-provisioned Verhältnis bei oder nahe 50 Prozent bleibt. Für die Lesekapazität legen Sie die Werte für ScaleOutCooldown und ScaleInCooldown auf 60 Sekunden fest.

Sie können die folgende Anweisung verwenden, um eine neue Amazon Keyspaces-Tabelle mit aktiviertem Auto Scaling zu erstellen.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Aktivieren der automatischen Skalierung für eine vorhandene Tabelle mithilfe von CQL

Für eine vorhandene Amazon Keyspaces-Tabelle können Sie mithilfe der -ALTER TABLEAnweisung die automatische Skalierung für die Schreib- oder Lesekapazität der Tabelle aktivieren. Wenn Sie eine Tabelle aktualisieren, die sich derzeit im On-Demand-Kapazitätsmodus befindet, capacity_mode ist dies erforderlich. Wenn sich Ihre Tabelle bereits im Modus bereitgestellter Kapazität befindet, kann dieses Feld weggelassen werden.

Anmerkung

Die automatische Skalierung von Amazon Keyspaces erfordert das Vorhandensein einer serviceverknüpften Rolle (AWSServiceRoleForApplicationAutoScaling_CassandraTable), die automatische Skalierungsaktionen in Ihrem Namen durchführt. Diese Rolle wird automatisch für Sie erstellt. Weitere Informationen finden Sie unter Verwenden von serviceverknüpften Rollen für Amazon Keyspaces.

Im folgenden Beispiel aktualisiert die Anweisung die Tabelle mytable , die sich im On-Demand-Kapazitätsmodus befindet. Die Anweisung ändert den Kapazitätsmodus der Tabelle in den Modus bereitgestellter Kapazität mit aktivierter Auto Scaling.

Die Schreibkapazität wird im Bereich von 5 bis 10 Kapazitätseinheiten mit einem Zielwert von 50 % konfiguriert. Die Lesekapazität wird auch im Bereich von 5 bis 10 Kapazitätseinheiten mit einem Zielwert von 50 % konfiguriert. Für die Lesekapazität legen Sie die Werte für scale_out_cooldown und scale_in_cooldown auf 60 Sekunden fest.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Anzeigen der Auto-Scaling-Konfiguration von Amazon Keyspaces Ihrer Tabelle mit CQL

Verwenden Sie den folgenden Befehl, um Details zur Auto-Scaling-Konfiguration einer Tabelle anzuzeigen.

SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

Die Ausgabe für diesen Befehl sieht wie folgt aus.

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

Deaktivieren von Amazon Keyspaces Auto Scaling für eine Tabelle mithilfe von CQL

Sie können die automatische Skalierung von Amazon Keyspaces für Ihre Tabelle jederzeit deaktivieren. Wenn Sie die Lese- oder Schreibkapazität Ihrer Tabelle nicht mehr skalieren müssen, sollten Sie die automatische Skalierung deaktivieren, damit Amazon Keyspaces die Lese- oder Schreibkapazitätseinstellungen Ihrer Tabelle nicht weiter ändert. Sie können die Tabelle mit einer -ALTER TABLEAnweisung aktualisieren.

Die folgende Anweisung deaktiviert die automatische Skalierung für die Schreibkapazität der Tabelle mytable . Außerdem werden die CloudWatch Alarme gelöscht, die in Ihrem Namen erstellt wurden.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
Anmerkung

Um die serviceverknüpfte Rolle zu löschen, die Application Auto Scaling verwendet, müssen Sie die automatische Skalierung für alle Tabellen im Konto in allen deaktivieren AWS-Regionen.