使用 CLI 管理 Amazon Keyspaces 扩展策略 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 CLI 管理 Amazon Keyspaces 扩展策略

要以编程方式更新和管理 Amazon Keyspaces 的自动扩展设置,您可以使用 Amazon Command Line Interface (Amazon CLI) 或 API。 Amazon 要使用 Cassandra 查询语言 (CQL) 管理 Amazon Keyspaces 自动扩展策略,请参阅。使用 Cassandra 查询语言 (CQL) 管理 Amazon Keyspaces 自动扩展本主题概述了您可以使用编程方式管理的 auto Scaling 任务。 Amazon CLI

有关本主题中描述的 Amazon Key Amazon CLI spaces 命令的更多信息,请参阅Amazon CLI 命令参考。

开始前的准备工作

在开始之前,您需要完成以下任务。

配置 权限

如果未完成这些任务,您必须为用户配置相应的权限,以创建和管理自动扩展设置。在 Amazon Identity and Access Management (IAM) 中,需要使用 Amazon 托管策略来管理 Amazon Keys AmazonKeyspacesFullAccess paces 扩展策略。有关详细步骤,请参阅开始之前:向用户授予 Amazon Keyspaces 自动缩放的权限

安装 Amazon CLI

如果您尚未安装和配置 Amazon CLI,则必须先执行此操作。为此,请转到 Amazon Command Line Interface 用户指南并按照以下说明进行操作:

使用创建具有自动缩放功能的新表 Amazon CLI

创建新的 Amazon Keyspaces 表时,可以在操作中自动为表的写入或读取容量启用自动缩放。CreateTable这允许 Amazon Keyspaces 代表您联系 Application Auto Scaling,注册您指定为可扩展目标的表,并调整预配置的写入或读取容量。

有关如何使用 auto Scaling 配置创建多区域表的更多信息,请参阅使用 auto Scaling (CLI) 在预配置模式下创建新的多区域表

注意

Amazon Keyspaces 自动扩展需要服务相关角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable) 的存在才能代表您执行自动扩展操作。将自动为您创建此角色。有关更多信息,请参阅对 Amazon Keyspaces 使用服务相关角色

要以编程方式为表配置自动缩放设置,您可以使用定义 Amazon Keyspaces 自动缩放参数的autoScalingSpecification操作。这些参数定义了指示 Amazon Keyspaces 调整表的预配置吞吐量的条件,以及要采取哪些其他可选操作。在此示例中,您定义了 mytable 的自动缩放设置。

该策略包含以下元素:

  • autoScalingSpecification— 指定是否允许 Amazon Keyspaces 代表您调整容量吞吐量。您可以分别为读取容量和写入容量启用 auto Scaling。然后,必须为以下参数指定以下参数autoScalingSpecification

    • writeCapacityAutoScaling— 最大和最小写入容量单位。

    • readCapacityAutoScaling— 最大和最小读取容量单位。

    • scalingPolicy— Amazon Keyspaces 支持目标跟踪政策。要定义目标跟踪策略,请配置以下参数。

      • targetValue— Amazon Keyspaces 自动扩展可确保已用容量与预配置容量的比率保持在该值或接近该值。您将 targetValue 定义为百分比。

      • disableScaleIn:(可选)Aboolean,它指定该表scale-in是禁用还是启用。默认情况下,此参数处于禁用状态。要开启scale-in,请将该boolean值设置为FALSE。这意味着代表您自动缩小餐桌的容量。

      • scaleOutCooldown – 横向扩展活动会增加表的预置吞吐量。要为横向扩展活动增加冷却时间,请为 ScaleOutCooldown 指定一个值(以秒为单位)。默认值是 0。有关目标跟踪和冷却时间的更多信息,请参阅 App lication Auto Scaling 用户指南中的目标跟踪扩展策略

      • scaleInCooldown – 横向缩减活动会减小表的预置吞吐量。要为缩减活动增加冷却时间,请为 ScaleInCooldown 指定一个值(以秒为单位)。默认值是 0。有关目标跟踪和冷却时间的更多信息,请参阅 App lication Auto Scaling 用户指南中的目标跟踪扩展策略

注意

为了进一步了解 TargetValue 的工作原理,假设您的表的预配置吞吐量设置为 200 个写入容量单位。您决定为此表创建扩展策略,并使用 TargetValue 的 70%。

现在假设您开始将写入流量驱动到表,以便实际写入吞吐量为 150 个容量单位。现在的 consumed-to-provisioned 比率是(150/200),或75%。此比率超过了您的目标,因此 auto scaling 会将预配置的写入容量增加到 215,因此该比率为 (150/215),即 69.77%,TargetValue尽可能接近您的目标,但不超过该比率。

对于 mytable,您可以将读取和写入容量都设置为 TargetValue 50%。Amazon Keyspaces 自动扩展可在 5-10 个容量单位范围内调整表的预配置吞吐量,使该 consumed-to-provisioned 比率保持在或接近 50%。对于读取容量,您可以将ScaleOutCooldown和的值设置ScaleInCooldown为 60 秒。

创建具有复杂自动缩放设置的表时,从 JSON 文件加载自动缩放设置会很有帮助。对于以下示例,您可以从 auto-scaling.zip 下载示例 JSON 文件并进行提取auto-scaling.json,同时记下该文件的路径。在此示例中,JSON 文件位于当前目录中。有关不同的文件路径选项,请参阅如何从文件加载参数

aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable \ --schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]' \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \ --auto-scaling-specification file://auto-scaling.json

使用在现有表上启用自动缩放 Amazon CLI

对于现有的 Amazon Keyspaces 表,您可以使用操作为表的写入或读取容量启用自动缩放。UpdateTable有关如何更新多区域表的 auto Scaling 设置的更多信息,请参阅更新多区域表 (CLI) 的预配置容量和 auto Scaling 设置

注意

Amazon Keyspaces 自动扩缩需要存在一个代表您执行自动扩缩操作的服务相关角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable)。将自动为您创建此角色。有关更多信息,请参阅对 Amazon Keyspaces 使用服务相关角色

您可以使用以下命令为现有表启用 Amazon Keyspaces 的自动缩放功能。表的 auto 缩放设置是从 JSON 文件加载的。对于以下示例,您可以从 auto-scaling.zip 下载示例 JSON 文件并进行提取auto-scaling.json,同时记下该文件的路径。在此示例中,JSON 文件位于当前目录中。有关不同的文件路径选项,请参阅如何从文件加载参数

有关以下示例中使用的自动缩放设置的更多信息,请参阅使用创建具有自动缩放功能的新表 Amazon CLI

aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \ --auto-scaling-specification file://auto-scaling.json

使用查看表的 Amazon Keyspaces 自动缩放配置 Amazon CLI

要查看表的 auto Scaling 配置,您可以使用get-table-auto-scaling-settings操作。以下 CLI 命令就是一个示例。

aws keyspaces get-table-auto-scaling-settings --keyspace-name mykeyspace --table-name mytable

该命令的输出如下所示。

{ "keyspaceName": "mykeyspace", "tableName": "mytable", "resourceArn": "arn:aws:cassandra:us-east-1:5555-5555-5555:/keyspace/mykeyspace/table/mytable", "autoScalingSpecification": { "writeCapacityAutoScaling": { "autoScalingDisabled": false, "minimumUnits": 5, "maximumUnits": 10, "scalingPolicy": { "targetTrackingScalingPolicyConfiguration": { "disableScaleIn": false, "scaleInCooldown": 0, "scaleOutCooldown": 0, "targetValue": 50.0 } } }, "readCapacityAutoScaling": { "autoScalingDisabled": false, "minimumUnits": 5, "maximumUnits": 10, "scalingPolicy": { "targetTrackingScalingPolicyConfiguration": { "disableScaleIn": false, "scaleInCooldown": 60, "scaleOutCooldown": 60, "targetValue": 50.0 } } } } }

使用关闭表的 Amazon Keyspaces 自动缩放功能 Amazon CLI

您可以随时关闭表格的 Amazon Keyspaces 自动缩放功能。如果您不再需要扩展表的读取或写入容量,则应考虑关闭自动扩展,这样 Amazon Keyspaces 就不会继续修改表的读取或写入容量设置。您可以使用UpdateTable操作更新表。

以下命令关闭表读取容量的 auto 缩放。它还会删除以您的名义创建的 CloudWatch 警报。

aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \ --auto-scaling-specification readCapacityAutoScaling={autoScalingDisabled=true}
注意

要删除 Application Auto Scaling 使用的服务相关角色,必须禁用账户中所有表的自动缩放功能。 Amazon Web Services 区域