暂停并恢复缩放 Application Auto Scaling - Application Auto Scaling
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

暂停并恢复缩放 Application Auto Scaling

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

在跟随的示例命令中,您将在config.json文件中传递JSON格式的参数。也可以通过使用引号来封闭JSON数据结构,通过命令行上的这些参数。有关详细信息,请参阅 使用带有字符串的 AWS CLIAWS Command Line Interface 用户指南.

扩展活动

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以及其资源ID --resource-id.

暂停扩展活动

打开命令行窗口并使用 register-scalable-target 使用 --suspendedstate 选项如下。

在本地Linux、MACOS或UNIX计算机上:

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

在本地 Windows 计算机上:

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 选项如下。

在本地Linux、MACOS或UNIX计算机上:

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

在本地 Windows 计算机上:

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 命令以确定可扩展目标中哪个缩放处于暂停状态。

在本地Linux、MACOS或UNIX计算机上:

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

在本地 Windows 计算机上:

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 命令。

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

在本地Linux、MACOS或UNIX计算机上:

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

在本地 Windows 计算机上:

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 }