You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2上ECS部署时Capacity Provider无法触发ASG扩容问题

基于EC2的ECS蓝绿部署扩容异常问题

我正在构建基于EC2的ECS服务,目标实现蓝绿部署:每次部署应用新版本时,ECS临时将任务数量翻倍以承载新版本,待新版本任务正常运行后终止旧版本任务,确保用户无停机体验。

按照AWS官方建议,我通过Capacity Provider搭建该架构,CDK代码如下:

const autoscalingGroup = new AutoScalingGroup(this, `${this.id}-autoscaling-group`, {
    maxCapacity: 2,
    minCapacity: 1,
    minHealthyPercentage: 100,
    maxHealthyPercentage: 200,
    desiredCapacity: 1,
    ...
})

capacityProvider = new AsgCapacityProvider(this, `${this.id}-capacity-provider`, {
    autoScalingGroup: autoscalingGroup,
    enableManagedScaling: true,
    enableManagedTerminationProtection: true,
})

cluster = new Cluster(this, `${this.id}-ecs-cluster`, {
    ...
})

cluster.addAsgCapacityProvider(capacityProvider)

new Ec2Service(this, `${this.id}-ec2-service`, {
    cluster: ecsCluster,
...
})

上述代码创建了ECS集群与服务(负责启动应用任务)、ASG(负责启动承载任务的EC2实例),并通过Capacity Provider将两者关联,让集群知晓EC2实例的来源。

首次部署一切正常:ASG启动一台EC2实例,ECS成功在其上调度任务。但后续部署时出现问题:按预期,ECS应触发ASG扩容一台实例以容纳新增任务(我的配置中每个实例仅能承载1个任务),但实际并未触发扩容,ECS因找不到可用实例而无法调度新任务。

内容的提问来源于stack exchange,提问作者Nicola Pedretti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:03:21