Amazon DynamoDB 和 Application Auto Scaling
您可以使用目标跟踪扩缩策略和计划的扩缩来扩展 DynamoDB 表和全局二级索引。
使用以下信息可帮助您将 DynamoDB 与 Application Auto Scaling 集成。
如果您刚刚开始扩缩 DynamoDB 表和全局二级索引,您可以在以下文档中查看有关将 DynamoDB 与 Application Auto Scaling 一起使用的示例配置和详细信息:
-
Amazon DynamoDB 开发人员指南中的使用 DynamoDB Auto Scaling 管理吞吐量
我们还在 教程:使用 Amazon CLI 的计划扩缩入门 中提供计划扩缩的教程。在该教程中,您将了解配置扩缩以便您的 DynamoDB 表按计划的时间扩展的基本步骤。
为 DynamoDB 创建的服务相关角色
使用 Application Auto Scaling 将 DynamoDB 资源注册为可扩展目标时,将在您的 Amazon Web Services 账户 中自动创建以下服务相关角色。此角色允许 Application Auto Scaling 在您的账户中执行受支持的操作。有关更多信息,请参阅Application Auto Scaling 的服务相关角色。
-
AWSServiceRoleForApplicationAutoScaling_DynamoDBTable
服务相关角色使用的服务委托人
上一节中的服务相关角色只能由为角色定义的信任关系授权的服务委托人担任。Application Auto Scaling 使用的服务相关角色为以下服务委托人授予访问权限:
-
dynamodb.application-autoscaling.amazonaws.com
使用 Application Auto Scaling 将 DynamoDB 资源注册为可扩展目标
Application Auto Scaling 需要一个可扩展目标,然后才能为 DynamoDB 表或全局二级索引创建扩缩策略或计划的操作。可扩展目标是 Application Auto Scaling 可以横向扩展或横向缩减的资源。可扩展目标由资源 ID、可扩展维度和命名空间的组合唯一标识。
如果您使用 DynamoDB 控制台配置弹性伸缩,DynamoDB 会自动为您注册一个可扩展的目标。
如果要使用 Amazon CLI 或 Amazon 软件开发工具包之一配置弹性伸缩,您可以使用以下选项:
-
Amazon CLI:
为表格的写入容量调用 register-scalable-target 命令。以下示例注册名为
my-table的表的预置写入容量,最小容量为 5 个写入容量单位,最大容量为 10 个写入容量单位。aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table\ --min-capacity5\ --max-capacity10为表格的读取容量调用 register-scalable-target 命令。以下示例注册名为
my-table的表的预置读取容量,最小容量为 5 个读取容量单位,最大容量为 10 个读取单位。aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits \ --resource-id table/my-table\ --min-capacity5\ --max-capacity10为全局二级索引的写入容量调用 register-scalable-target 命令。以下示例注册名为
my-table-index的全局二级索引的预置写入容量,最小容量为 5 个写入容量单位,最大容量为 10 个写入容量单位。aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:index:WriteCapacityUnits \ --resource-id table/my-table/index/my-table-index\ --min-capacity5\ --max-capacity10为全局二级索引的读取容量调用 register-scalable-target 命令。以下示例注册名为
my-table-index的全局二级索引的预置读取容量,最小容量为 5 个读取容量单位,最大容量为 10 个读取容量单位。aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:index:ReadCapacityUnits \ --resource-id table/my-table/index/my-table-index\ --min-capacity5\ --max-capacity10 -
Amazon 软件开发工具包:
调用 RegisterScalableTarget 操作并提供
ResourceId、ScalableDimension、ServiceNamespace、MinCapacity和MaxCapacity作为参数。