利用 AWS Spot 实例与 ECS 自动扩展,将生产环境服务器成本降低三分之二
作者:API传播员 · 2025-09-12 · 阅读时间:5分钟
本文详细介绍了如何在AWS EC2 Spot实例上构建可扩展的API,通过在生产环境中使用Spot实例将服务器成本降低至原来的三分之一。文章分为两部分:工作原理概述和具体操作步骤,包括配置自动扩展功能、EC2启动模板、自动扩展组、ECS服务和容量提供商的设置。
一. 什么是 AWS Spot 实例?
AWS Spot 实例 是一种可以显著降低计算成本的弹性云服务实例。由于价格波动较大,传统上多用于 开发(DEV)环境 或计算类任务(如将中间结果保存至 Amazon S3 或数据库),而较少应用于 生产(PROD)环境。
尽管市面上存在一些第三方解决方案支持在生产环境中使用 Spot 实例,但受限于业务场景,我们并未采用这些方案。本文介绍的方法 完全基于 AWS 标准功能,无需额外脚本或定时任务。
以下是部分 Spot 实例的价格波动截图,展示了成本节省潜力:
- m5.large(爱尔兰 eu-west-1):价格稳定,成本节省约 2.9 倍。
- m5.large(美国东部 us-east-1):价格波动较大,节省在 2.3–2.8 倍之间。
- t3.small(美国东部 us-east-1):价格稳定,节省约 3.4 倍。
二. 服务架构
本文采用的服务架构如下图所示:
1. 应用程序负载均衡器(ALB)→ EC2 目标组(TG)→ 弹性容器服务(ECS)
- 应用程序负载均衡器(ALB):将用户请求分发至目标组。
- EC2 目标组(TG):负责端口转发并监控实例健康。
- Amazon ECS:容器编排平台,类似 Kubernetes,用于管理 Docker 容器。
在 ECS 中,一个实例可运行多个容器。ECS 会动态分配端口,并通过 TG 进行健康检查。如果某实例异常,TG 会自动停止转发请求。
2. EC2 自动扩展组(ASG)+ ECS 容量提供商(CP)
- Auto Scaling Group (ASG):根据负载动态调整实例数量。
- ECS 容量提供商(CP):解决了 ECS 对实例数量调度的限制。可根据任务需求扩展或缩减实例,并设定目标容量百分比,保证可用性。
3. EC2 启动模板
通过 EC2 Launch Template 可以简化实例配置,关键参数包括:
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
:当 Spot 实例即将回收时,将任务迁移至其他实例。ECS_CONTAINER_STOP_TIMEOUT
:任务停止超时时间(默认 30 秒)。ECS_CLUSTER
:指定 ECS 集群名称。
三. 创建服务的步骤
1. 创建 EC2 启动模板
- 选择 ECS 优化的 AMI。
- 根据任务需求选择实例类型。
- 配置 VPC 和安全组。
- 在用户数据中加入
ECS_ENABLE_SPOT_INSTANCE_DRAINING
等参数。
2. 配置 EC2 自动扩展组(ASG)
- 选择启动模板。
- 设置 按需实例与 Spot 实例比例(如 20% 按需 + 80% Spot)。
- 定义最小和最大实例数量。
- 配置扩展策略:基于 ECS 任务数量进行扩展。
3. 配置应用程序负载均衡器(ALB)和目标组(TG)
- 配置 HTTP (80) 和 HTTPS (443) 侦听器。
- 设置目标组健康检查,确保实例可用性。
4. 创建 ECS 任务定义
- 配置容器资源限制、端口映射、环境变量。
- 将日志写入 Amazon CloudWatch。
5. 创建 ECS 集群与容量提供商
- 创建空集群,名称需与启动模板中
ECS_CLUSTER
保持一致。 - 绑定 ASG 并设置目标容量百分比。
6. 配置 ECS 服务
- 选择任务定义。
- 设置 最小健康百分比与 最大百分比,保障部署过程的高可用性。
四. 总结
通过结合 AWS Spot 实例与 ECS 自动扩展,企业能够在保持服务可用性的同时,将生产环境服务器成本降低至三分之一。
整个过程完全基于 AWS 原生功能,无需额外工具或复杂脚本,适合希望降低成本并提升灵活性的后端系统。
五. 原文链接
原文链接: https://adapty.io/blog/designing-scalable-api-on-aws-spot-instance/
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)