如何使用 SDK 为 ecs 服务的弹性伸缩策略设置最小和最大任务?

Posted

技术标签:

【中文标题】如何使用 SDK 为 ecs 服务的弹性伸缩策略设置最小和最大任务?【英文标题】:How do I set min and max tasks for auto scaling policy for ecs services using the SDK? 【发布时间】:2020-02-07 07:15:08 【问题描述】:

我想利用 AWS 开发工具包为我的 ECS 服务的 Auto Scaling 策略设置和定义最小/最大任务。

因此,我能够使用代码成功修改我的 ECS 容器实例的 Auto Scaling 组策略。

UpdateAutoScalingGroupRequest request = new UpdateAutoScalingGroupRequest().withAutoScalingGroupName("helloWorld-ASG").withMinSize(1);

UpdateAutoScalingGroupResult response = client.updateAutoScalingGroup(request);

UpdateScalingPlanResult scalingResponse = scalingClient.updateScalingPlan(scalingRequest);

但是如何为我的 ECS 服务的 Auto Scaling 策略执行此操作? 我需要什么课程才能做到这一点?有可能吗?

【问题讨论】:

【参考方案1】:

对于 ECS 服务自动扩展,请查看 AWSApplicationAutoScalingClient、PutScalingPolicyRequest 和 PutScalingPolicyResult 类,然后根据您的首选扩展策略,您将需要 StepScalingPolicyConfiguration 或 TargetTrackingScalingPolicyConfiguration 类。

请参阅 AWS Java SDK 文档中的以下示例:

AWSApplicationAutoScaling client = AWSApplicationAutoScalingClientBuilder.standard().build();
PutScalingPolicyRequest request = new PutScalingPolicyRequest()
        .withPolicyName("web-app-cpu-gt-75")
        .withServiceNamespace("ecs")
        .withResourceId("service/default/web-app")
        .withScalableDimension("ecs:service:DesiredCount")
        .withPolicyType("StepScaling")
        .withStepScalingPolicyConfiguration(
                new StepScalingPolicyConfiguration().withAdjustmentType("PercentChangeInCapacity")
                        .withStepAdjustments(new StepAdjustment().withMetricIntervalLowerBound(0d).withScalingAdjustment(200)).withCooldown(60));
PutScalingPolicyResult response = client.putScalingPolicy(request);AWSApplicationAutoScaling client = AWSApplicationAutoScalingClientBuilder.standard().build();

【讨论】:

我明白了。我正在查看文档,但在最小/最大任务中找不到任何内容。我可以使用 UpdateServiceRequest 设置desiredCount,但不能设置 min/max 任务。 我认为问题在于我处于蓝/绿部署中,我很难在文档中找到为此设置最小/最大任务的位置。我查看了 DeploymentConfiguration,但似乎 withMinimumHealthyPercent() 函数仅用于滚动更新。目前正在研究 CodeDeploy,因为那是使用 B/G 的地方,但到目前为止还没有运气。

以上是关于如何使用 SDK 为 ecs 服务的弹性伸缩策略设置最小和最大任务?的主要内容,如果未能解决你的问题,请参考以下文章

ECS 弹性伸缩:缩容

Auto Scaling 弹性伸缩(运维释放人力)

阿里云云计算 31在线实验--弹性伸缩(AS)初体验

云图说丨手把手教你为容器应用配置弹性伸缩策略

ECS弹性伸缩和GRE隧道 [ECS3]

阿里云ACP笔记-弹性伸缩