Application Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

暂停和恢复 Application Auto Scaling 的扩展

本主题说明如何暂停然后恢复应用程序中可扩展目标的一个或多个扩展活动。暂停-恢复功能用于临时暂停由您的扩展策略和计划操作触发的扩展活动。暂停-恢复功能非常有用,例如,当您更改或调查配置问题时,不希望自动扩展潜在产生干扰。您可以保留您的扩展策略和计划操作,在您准备就绪时,可以恢复扩展活动。

扩展活动

Application Auto Scaling 支持将以下扩展活动置于暂停状态:

  • 由扩展策略触发的所有缩减活动。

  • 由扩展策略触发的所有横向扩展活动。

  • 涉及计划操作的所有扩展活动。

以下描述说明了暂停各个扩展活动时会发生什么。每个扩展活动都可以单独暂停和恢复。根据暂停扩展活动的原因,您可能需要一起暂停多个扩展活动。

DynamicScalingInSuspended

  • 在触发目标跟踪扩展策略或分步扩展策略时,Application Auto Scaling 不会删除容量。这使您可以暂时禁用与扩展策略关联的缩减活动,而不删除扩展策略或其关联的 CloudWatch 警报。当您恢复缩减时,Application Auto Scaling 会评估具有当前违反的警报阈值的策略。

DynamicScalingOutSuspended

  • 在触发目标跟踪扩展策略或分步扩展策略时,Application Auto Scaling 不会增加容量。这使您可以暂时禁用与扩展策略关联的横向扩展活动,而不删除扩展策略或其关联的 CloudWatch 警报。当您恢复横向扩展时,Application Auto Scaling 会评估具有当前违反的警报阈值的策略。

ScheduledScalingSuspended

  • 在暂停期间,Application Auto Scaling 不启动计划要运行的扩展操作。当您恢复计划的扩展时,Application Auto Scaling 仅评估尚未经过执行时间的计划操作。

使用 AWS CLI 暂停和恢复扩展活动

您可以暂停和恢复 Application Auto Scaling 可扩展目标的单个或所有扩展活动。

注意

为简洁起见,这些示例说明了如何暂停和恢复 DynamoDB 表的扩展。要指定不同的可扩展目标,请在 --service-namespace 中指定其命名空间,在 --scalable-dimension 中指定其可扩展维度,并在 --resource-id 中指定其资源 ID。

暂停扩展活动

打开一个命令行窗口,然后使用 register-scalable-target 命令和 --suspendedstate 选项,如下所示。

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

要仅暂停某个扩展策略触发的缩减活动,请在 config.json 中指定以下内容。

{ "DynamicScalingInSuspended":true }

要仅暂停某个扩展策略触发的横向扩展活动,请在 config.json 中指定以下内容。

{ "DynamicScalingOutSuspended":true }

要仅暂停涉及计划操作的扩展活动,请在 config.json 中指定以下内容。

{ "ScheduledScalingSuspended":true }

暂停所有扩展活动

register-scalable-target 命令与 --suspendedstate 选项一起使用,如下所示。

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

此示例假定文件 config.json 包含以下 JSON 格式的参数。

{ "DynamicScalingInSuspended":true, "DynamicScalingOutSuspended":true, "ScheduledScalingSuspended":true }

查看暂停的扩展活动

使用 describe-scalable-targets 命令可确定可扩展目标处于暂停状态的扩展活动。

aws application-autoscaling describe-scalable-targets --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table

下面是示例输出。

{ "ScalableTargets": [ { "ServiceNamespace": "dynamodb", "ScalableDimension": "dynamodb:table:ReadCapacityUnits", "ResourceId": "table/my-table", "MinCapacity": 1, "MaxCapacity": 20, "SuspendedState": { "DynamicScalingOutSuspended": true, "DynamicScalingInSuspended": true, "ScheduledScalingSuspended": true }, "CreationTime": 1558125758.957, "RoleARN": "arn:aws-cn:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" } ] }

恢复扩展活动

当您准备好恢复扩展活动时,可以使用 register-scalable-target 命令恢复它。

以下示例命令恢复指定的可扩展目标的所有扩展活动。

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

此示例假定文件 config.json 包含以下 JSON 格式的参数。

{ "DynamicScalingInSuspended":false, "DynamicScalingOutSuspended":false, "ScheduledScalingSuspended":false }