本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
迁移您的扩展计划
您可以从扩展计划迁移到 Amazon EC2 Auto Scaling 和 Application Auto Scaling 扩展策略。
迁移过程
重要
要迁移扩展计划,必须按精确顺序完成多个步骤。迁移扩展计划时,请不要对其进行更新,因为这会破坏操作顺序并可能导致不良行为。
第 1 步:查看您的现有设置
要确定必须移动哪些缩放设置,请使用 desc ribe-scaling-p lans 命令。
aws autoscaling-plans describe-scaling-plans \ --scaling-plan-names
my-scaling-plan
记下要从现有扩展计划中保留的项目,其中可能包括以下内容:
-
MinCapacity
— 可扩展资源的最小容量。 -
MaxCapacity
— 可扩展资源的最大容量。 -
PredefinedLoadMetricType
— 用于预测性扩展的负载指标。 -
PredefinedScalingMetricType
— 用于目标跟踪(动态)扩展和预测性扩展的扩展指标。 -
TargetValue
— 缩放指标的目标值。
扩展计划和扩展策略之间的区别
扩展计划和扩展策略之间有一些重要的区别:
-
扩展策略只能启用一种扩展类型:目标跟踪扩展或预测扩展。要同时使用这两种扩展方法,必须创建单独的策略。
-
同样,您必须在各自的策略中分别定义预测性扩展的扩展指标和用于目标跟踪扩展的扩展指标。
步骤 2:创建预测性扩展策略
如果您不使用预测缩放,请直接跳至步骤 4:准备删除扩展计划。
为了留出时间来评估预测,我们建议您先创建预测性扩展策略,然后再创建其他扩展策略。
对于任何具有现有负载指标规范的 Auto Scaling 组,请执行以下操作将其转换为基于 Amazon EC2 自动扩展的预测性扩展策略。
创建预测性扩展策略
-
在 JSON 文件中,定义一个
MetricSpecifications
结构,如以下示例所示:{ "MetricSpecifications":[ {
...
} ] } -
在
MetricSpecifications
结构中,针对扩展计划中的每个负载指标,CustomizedLoadMetricSpecification
使用扩展计划中的等效设置创建PredefinedLoadMetricSpecification
或。以下是载荷指标部分结构的示例。
-
将缩放指标规范添加到中
MetricSpecifications
并定义目标值。以下是扩展指标和目标值部分的结构示例。
-
要仅进行预测,请添加值为
Mode
的属性ForecastOnly
。在完成预测性缩放迁移并确保预测准确可靠之后,您可以更改模式以允许扩展。有关更多信息,请参阅 步骤 7:重新激活预测扩展。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly",...
}有关更多信息,请参阅 Amazon EC2 Auto Scaling API 参考中的PredictiveScaling配置。
-
如果您的扩展计划中存在该
ScheduledActionBufferTime
属性,则将其值复制到预测性扩展策略中的SchedulingBufferTime
属性中。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly","SchedulingBufferTime":300, ...
}有关更多信息,请参阅 Amazon EC2 Auto Scaling API 参考中的PredictiveScaling配置。
-
如果扩展计划中存在
PredictiveScalingMaxCapacityBehavior
和PredictiveScalingMaxCapacityBuffer
属性,则可以在预测性扩展策略中配置MaxCapacityBreachBehavior
和MaxCapacityBuffer
属性。这些属性定义了当预测容量接近或超过为 Auto Scaling 组指定的最大容量时应发生的情况。警告
如果将该
MaxCapacityBreachBehavior
属性设置为IncreaseMaxCapacity
,则启动的实例数可能会超过预期值,除非您监控和管理增加的最大容量。增加的最大容量将变为 Auto Scaling 组新的正常最大容量,直到您手动对其进行更新。最大容量不会自动减少到原始的最大容量。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly", "SchedulingBufferTime":300,"MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10
}有关更多信息,请参阅 Amazon EC2 Auto Scaling API 参考中的PredictiveScaling配置。
-
使用唯一名称保存 JSON 文件。记下文件名。在下一步中,当你重新激活预测性扩展策略时,你需要它,然后在迁移过程结束时再次需要它。有关更多信息,请参阅 步骤 7:重新激活预测扩展。
-
保存 JSON 文件后,运行 put-s caling-policy 命令。在以下示例中,将每个
用户输入占位符
替换为您自己的信息。aws autoscaling put-scaling-policy --policy-name
my-predictive-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type PredictiveScaling \ --predictive-scaling-configurationfile://my-predictive-scaling-config.json
如果成功,此命令将返回策略的 Amazon Resource Name (ARN)。
{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy", "Alarms": [] }
-
对于要迁移到基于 Amazon EC2 自动扩展的预测性扩展策略的每个负载指标规范,重复这些步骤。
步骤 3:查看预测性扩展策略生成的预测
如果您不使用预测缩放,请跳过以下步骤。
在您创建预测性扩展策略后不久就会提供预测。在 Amazon EC2 Auto Scaling 生成预测后,您可以通过 Amazon EC2 Auto Scaling 控制台查看策略的预测并根据需要进行调整。
查看预测性扩展策略的预测
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Auto Scaling Groups,然后从列表中选择您的 Auto Scaling 组的名称。
-
在自动扩展选项卡的预测扩展策略中,选择您的策略。
-
在监控部分中,您可以根据实际值查看策略对过去和未来负载和容量的预测。
有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的查看预测性扩展监控图表。
-
对您创建的每个预测性扩展策略重复这些步骤。
步骤 4:准备删除扩展计划
对于任何具有现有目标跟踪扩展配置的资源,请在删除扩展计划之前执行以下操作以从扩展计划中收集所需的任何其他信息。
要描述扩展计划中的扩展策略信息,请使用 desc ribe-scaling-plan- resources 命令。在以下示例命令中,用您自己的信息替换 my-scaling-plan
。
aws autoscaling-plans describe-scaling-plan-resources \ --scaling-plan-name
my-scaling-plan
\ --scaling-plan-version 1
查看输出并确认您要迁移所述的扩展策略。使用此信息在中创建新的 Amazon EC2 Auto Scaling 和基于应用程序自动扩展的目标跟踪扩展策略。步骤 6:重新激活动态缩放
步骤 5:删除扩展计划
在创建新的目标跟踪扩展策略之前,必须删除扩展计划才能删除其创建的扩展策略。
要删除您的扩展计划,请使用 delete-scaling-pl an 命令。在以下示例命令中,用您自己的信息替换 my-scaling-plan
。
aws autoscaling-plans delete-scaling-plan \ --scaling-plan-name
my-scaling-plan
\ --scaling-plan-version 1
删除扩展计划后,动态伸缩将停用。因此,如果流量或工作负载突然激增,则每个可扩展资源的可用容量不会自行增加。作为预防措施,您可能需要在短期内手动增加可扩展资源的容量。
增加 Auto Scaling 组的容量
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Auto Scaling Groups,然后从列表中选择您的 Auto Scaling 组的名称。
-
在 Details(详细信息)选项卡上,选择 Group details(组详细信息)、Edit (编辑)。
-
对于所需容量,请增加所需容量。
-
完成后,选择 “更新”。
将 Aurora 副本添加到数据库集群
-
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择数据库,然后选择您的数据库集群。
-
确保集群和主实例都处于可用状态。
-
选择 “操作”、“添加读者”。
-
在添加读取器页面上,为您的新 Aurora 副本指定选项。
-
选择 “添加阅读器”。
增加 DynamoDB 表或全局二级索引的预配置读取和写入容量
打开 DynamoDB 控制台:https://console.aws.amazon.com/dynamodb/
。 -
在导航窗格中,选择表,然后从列表中选择表的名称。
-
在 “其他设置” 选项卡上,选择 “读/写容量”、“编辑”。
-
在编辑读/写容量页面上,对于读取容量、预配置容量单位,增加表的预配置读取容量。
-
(可选)如果您希望全局二级索引使用与基表相同的读取容量设置,请选中 “对所有全局二级索引使用相同的读取容量设置” 复选框。
-
对于写入容量,即预置容量单位,请增加表的预配置写入容量。
-
(可选)如果您希望全局二级索引使用与基表相同的写入容量设置,请选中 “对所有全局二级索引使用相同的写入容量设置” 复选框。
-
如果您没有在步骤 5 或 7 中选中复选框,请向下滚动页面以更新所有全局二级索引的读取和写入容量。
-
选择 “保存更改” 以继续。
增加您的 Amazon ECS 服务的运行任务数
-
在导航窗格中,选择 Clusters,然后从列表中选择您的集群名称。
-
在 “服务” 部分,选中服务旁边的复选框,然后选择 “更新”。
-
对于预期任务,请输入要为服务运行的任务数量。
-
选择更新。
增加 Spot 队列的容量
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择竞价请求,然后选择您的竞价型队列请求。
-
依次选择 Actions (操作) 和 Modify target capacity (修改目标容量)。
-
在修改目标容量中,输入新的目标容量和按需实例部分。
-
选择提交。
步骤 6:重新激活动态缩放
通过创建目标跟踪扩展策略来重新激活动态扩展。
在为 Auto Scaling 组创建目标跟踪扩展策略时,可以将其直接添加到该组中。在为其他可扩展资源创建目标跟踪扩展策略时,首先要将该资源注册为可扩展目标,然后向可扩展目标添加目标跟踪扩展策略。
为 Auto Scaling 群组创建目标跟踪扩展策略
为 Auto Scaling 组创建目标跟踪扩展策略
-
在 JSON 文件中,
CustomizedMetricSpecification
使用扩展计划中的等效设置创建PredefinedMetricSpecification
或。以下是目标跟踪配置的示例。在这些示例中,用您自己的信息替换每个
用户输入的占位符
。 -
要创建扩展策略,请使用 put-scaling-polic y 命令以及您在上一步中创建的 JSON 文件。在以下示例中,将每个
用户输入占位符
替换为您自己的信息。aws autoscaling put-scaling-policy --policy-name
my-target-tracking-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://config.json
-
对于要迁移到基于 Amazon EC2 Auto Scaling 的目标跟踪扩展策略的每个基于扩展计划的扩展策略,重复此过程。
为其他可扩展资源创建目标跟踪扩展策略
接下来,通过执行以下配置任务,为其他可扩展资源创建目标跟踪扩展策略。
-
使用 Application Auto Scaling 服务注册用于自动缩放的可扩展目标。
-
在可扩展目标上添加目标跟踪扩缩策略。
为其他可扩展资源创建目标跟踪扩展策略
-
使用 register-scalable-tar get 命令将资源注册为可扩展目标并定义扩展策略的扩展限制。
在以下示例中,将每个
用户输入占位符
替换为您自己的信息。对于命令选项,请提供以下信息:-
--service-namespace
— 目标服务的命名空间(例如,
)。要获取服务命名空间,请参阅 Targe RegisterScalablet 参考文档。ecs
-
--scalable-dimension
— 与目标资源关联的可扩展维度(例如
)。要获得可缩放的维度,请参阅 RegisterScalableTarget 参考文档。ecs:service:DesiredCount
-
--resource-id
— 目标资源的资源 ID(例如,
)。有关特定资源 ID 的语法和示例的信息,请参阅 Targe RegisterScalablet 参考资料。service/
my-cluster
/my-service
aws application-autoscaling register-scalable-target --service-namespace
namespace
\ --scalable-dimensiondimension
\ --resource-ididentifier
\ --min-capacity1
--max-capacity10
如果成功,该命令会返回可扩展目标的 ARN。
{ "ScalableTargetARN": "arn:aws:application-autoscaling:
region
:account-id
:scalable-target/1234abcd56ab78cd901ef1234567890ab123" } -
-
在 JSON 文件中,
CustomizedMetricSpecification
使用扩展计划中的等效设置创建PredefinedMetricSpecification
或。以下是目标跟踪配置的示例。
-
要创建扩展策略,请使用 put-scaling-polic y 命令以及您在上一步中创建的 JSON 文件。
aws application-autoscaling put-scaling-policy --service-namespace
namespace
\ --scalable-dimensiondimension
\ --resource-ididentifier
\ --policy-namemy-target-tracking-scaling-policy
--policy-typeTargetTrackingScaling
\ --target-tracking-scaling-policy-configurationfile://config.json
-
对于要迁移到基于应用程序 Auto Scaling 的目标跟踪扩展策略的每个基于扩展计划的扩展策略,重复此过程。
步骤 7:重新激活预测扩展
如果您不使用预测扩展,请跳过此步骤。
通过将预测缩放切换到预测和缩放来重新激活预测性扩展。
要进行此更改,请更新您在中创建的 JSON 文件,步骤 2:创建预测性扩展策略并将该Mode
选项的值更改ForecastAndScale
为,如下例所示:
"Mode":"ForecastAndScale"
然后,使用 put-scaling -policy 命令更新每个预测性扩展策略。在此示例中,用您自己的信息替换每个用户输入的占位符
。
aws autoscaling put-scaling-policy --policy-name
my-predictive-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type PredictiveScaling \ --predictive-scaling-configurationfile://my-predictive-scaling-config.json
或者,您可以在 Amazon EC2 Auto Scaling 控制台中进行此更改,方法是打开基于预测设置的比例。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的 Amazon EC2 Auto Scaling 的预测性扩展。
用于迁移目标跟踪扩展策略的 Amazon EC2 Auto Scaling 参考
为了便于参考,下表列出了扩展计划中的所有目标跟踪配置属性及其在 Amazon EC2 Auto Scaling PutScalingPolicy
API 操作中的相应属性。
扩展计划源属性 | Amazon EC2 Auto Scaling 目标属性 |
---|---|
PolicyName |
PolicyName |
PolicyType |
PolicyType |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Unit |
TargetTrackingConfiguration.CustomizedMetricSpecification.Unit |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingConfiguration.EstimatedInstanceWarmup |
TargetTrackingConfiguration.EstimatedInstanceWarmup ¹ |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.PredefinedScalingMetricType |
TargetTrackingConfiguration.PredefinedMetricSpecification.PredefinedMetricType |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.PredefinedMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.ScaleInCooldown |
Not available |
TargetTrackingConfiguration.ScaleOutCooldown |
Not available |
TargetTrackingConfiguration.TargetValue |
TargetTrackingConfiguration.TargetValue |
¹ 实例预热是 Auto Scaling 组的一项功能,它有助于确保新启动的实例在将其使用数据提供给扩展指标之前准备好接收流量。当实例仍在预热时,Amazon EC2 Auto Scaling 会减慢向组中添加或删除实例的过程。我们建议您使用 Auto Scaling 组的默认实例预热设置来确保所有实例启动都使用相同的实例预热时间,而不是为扩展策略指定预热时间。有关更多信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的设置 Auto Scaling 组的原定设置实例预热。
用于迁移目标跟踪扩展策略的 Auto Scaling 参考
为了便于参考,下表列出了扩展计划中的所有目标跟踪配置属性及其在 Application Auto Scaling PutScalingPolicy
API 操作中的相应属性。
扩展计划源属性 | Application Auto Scaling 目标属性 |
---|---|
PolicyName |
PolicyName |
PolicyType |
PolicyType |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Name |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Value |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.MetricName |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Namespace |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Statistic |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Unit |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Unit |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingScalingPolicyConfiguration.DisableScaleIn |
TargetTrackingConfiguration.EstimatedInstanceWarmup |
Not available |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.PredefinedScalingMetricType |
TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.PredefinedMetricType |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.ResourceLabel |
TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.ScaleInCooldown ¹ |
TargetTrackingScalingPolicyConfiguration.ScaleInCooldown |
TargetTrackingConfiguration.ScaleOutCooldown ¹ |
TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown |
TargetTrackingConfiguration.TargetValue |
TargetTrackingScalingPolicyConfiguration.TargetValue |
¹ 当您的可扩展资源横向扩展(增加容量)和向内扩展(减少容量)时,Application Auto Scaling 会使用冷却时间来减慢扩展速度。有关更多信息,请参阅《App lication Auto Scaling 用户指南》中的定义冷却时间。
其他信息
要了解如何通过控制台创建新的预测性扩展策略,请参阅以下主题:
-
Amazon EC2 Auto Scalin g — 在 Amazon EC2 Auto Scaling 用户指南中创建预测性扩展策略。
要了解如何使用控制台创建新的目标跟踪扩展策略,请参阅以下主题:
-
亚马逊 Aurora — 亚马逊 RDS 用户指南中的 Amazon Aurora Auto Scaling 与 A urora 副本一起使用。
-
DynamoDB — 使用《亚马逊 D Amazon Web Services Management Console ynamoDB 开发者指南》中的 dynamoDB 自动缩放。
-
Amazon EC2 Auto Scalin g — 在 Amazon EC2 Auto Scaling 用户指南中创建目标跟踪扩展策略。
-
Amazon ECS — 使用亚马逊弹性容器服务开发者指南中的控制台更新服务。
-
Spot 队列 — 使用 A mazon EC2 用户指南中的目标跟踪策略扩展竞价型队列。