如何在AWS AppRunner中实现无任务时无运行实例以节省计算成本
AWS AppRunner 无请求时停止实例避费方案
核心实现方案
AppRunner原生未提供"无任务自动停实例"的一键配置,但可通过以下方式实现类似效果:
1. ECS集成模式下配置自动缩容至0
仅当AppRunner服务采用ECS集成模式(而非默认Build模式)时支持:
- 创建/更新服务时选择ECS作为计算来源
- 在自动扩缩容设置中,将最小任务数设为0,最大任务数按需配置
- 绑定扩缩容触发器(如基于CPU使用率、请求数指标),无请求时自动将任务数缩至0
2. CloudWatch Events + Lambda 实现启停控制
针对Build模式的AppRunner服务,需通过外部触发实现:
- 编写Lambda函数,调用AppRunner的
StartService和StopServiceAPI - 配置CloudWatch Events规则:
- 定时规则:工作时段启动服务,非工作时段停止
- 指标触发规则:当AppRunner的
RequestCount指标连续N分钟为0时触发停止;当有请求进入时(可通过前端网关指标触发)启动服务
- 注意:停止后启动会有冷启动延迟,适合非实时性应用
3. 替代方案:切换至Lambda + API Gateway
若应用为无状态API服务,直接使用Lambda + API Gateway更原生支持"无请求零计费",无需管理实例,仅在请求执行时产生费用
注意事项
- 停止AppRunner服务后,仍会收取少量服务配置费用(金额极低)
- ECS集成模式缩容至0需确保应用支持快速启动,避免影响用户体验
内容的提问来源于stack exchange,提问作者Gah Maresh
相关产品推荐
相关产品推荐

