AWS 计算服务成本优化实战:EC2/Lambda/ECS/Auto Scaling/LightSail 省钱全攻略(2026版)
Meta Description: AWS计算服务成本优化全攻略:EC2预留实例、Lambda毫秒计费、ECS Fargate省电模式、Auto Scaling精准伸缩、LightSail固定月费,从选型到落地帮你月省50%+云账单。
- 引言:账单飞涨?不是 AWS 太贵,是你没用对方式
- 费用模式全景对比:先看清钱花在哪
- EC2 省钱三板斧:预留实例 + Spot + Savings Plans
- Lambda 成本优化:毫秒计费的陷阱与对策
- ECS/EKS 容器成本大解剖
- Auto Scaling:不是"用了就省钱",而是"配对了才省钱"
- LightSail:固定月费的"傻瓜式性价比"
- 综合优化决策框架
Meta Description: AWS计算服务成本优化全攻略:EC2预留实例、Lambda毫秒计费、ECS Fargate省电模式、Auto Scaling精准伸缩、LightSail固定月费,从选型到落地帮你月省50%+云账单。
关键词:AWS成本优化、EC2省钱技巧、Lambda计费优化、ECS Fargate成本控制、Auto Scaling节省方案、LightSail性价比、云计算降本、AWS费用管理、云服务器性价比、Spot实例实战
引言:账单飞涨?不是 AWS 太贵,是你没用对方式
做云计算这些年,我见过太多团队的管理员——月初收到 AWS 账单时的表情,就像打开了一份体检报告。EC2 的按需实例跑了三个月才发现可以买预留实例;Lambda 调用量暴增却没人注意到内存分配大了两倍;ECS 集群里的 Fargate 任务在空闲时段照样全速运行……
残酷的真相是:AWS 的计费模型设计得非常精密——精密到你不主动优化,钱就会从每一个不合理的配置里漏出去。 但好消息是,只要理解了每种计算服务的计费逻辑和优化杠杆,月账单砍掉 30%–60% 并不需要以牺牲性能为代价。
本文将以 EC2、Lambda、ECS/EKS、Auto Scaling 和 LightSail 五款核心计算服务为对象,拆解每一款的计费黑洞,并给出经过实战验证的降本策略。
一、费用模式全景对比:先看清钱花在哪
在深入具体优化技巧之前,先对五款服务的计费模式做一个横向对比。理解"钱是怎么流出去的"比具体的省钱技巧更重要。
| 服务 | 计费单位 | 节省杠杆 | 闲置成本 | 优化难度 |
|---|---|---|---|---|
| EC2 | 按秒(最低60秒),Linux/Windows 不同价 | 预留实例、Spot实例、Savings Plans | 高(关机≠不收费,EBS/弹性IP照扣) | ⭐⭐⭐ |
| Lambda | 调用次数 + GB-秒(内存×时长) | 降低内存配置、缩短执行时间、Provisioned Concurrency | 零(无调用无费用) | ⭐⭐ |
| ECS (Fargate) | vCPU-小时 + GB-小时 | Fargate Spot、Compute Savings Plans、合理配置 task size | 中等(空闲任务仍计费) | ⭐⭐⭐ |
| EKS | 控制平面固定月费 + 工作节点 EC2 费用 | 托管节点组 + Spot、Karpenter 自动调度 | 高(控制平面 24×7 计费) | ⭐⭐⭐⭐ |
| Auto Scaling | 本身免费,影响关联 EC2 费用 | 精准扩缩容窗口、混合实例策略 | 依赖策略精准度 | ⭐⭐ |
| LightSail | 固定月费($3.50–$160/月) | 选对套餐、避免过度配置 | 零(固定月费无波动) | ⭐ |
二、EC2 省钱三板斧:预留实例 + Spot + Savings Plans
2.1 第一板斧:预留实例(Reserved Instances)——最高省 72%
如果你确定某台 EC2 会运行 1 年或 3 年,预留实例是 AWS 提供的最强折扣工具。以 m7i.large(俄勒冈区域)为例:
| 购买方式 | 每小时单价 | 月费(730小时) | 年费 | 节省比例 |
|---|---|---|---|---|
| 按需(On-Demand) | $0.1008 | $73.58 | $883.01 | 基准 |
| 1年标准 RI(全额预付) | $0.0566 | $41.32 | $495.82 | 44% |
| 1年标准 RI(部分预付) | $0.0622 | $45.41 | $544.86 | 38% |
| 3年标准 RI(全额预付) | $0.0283 | $20.66 | $247.91 | 72% |
购买策略建议:
- 数据库主库、API 网关、消息队列等7×24 核心服务:买 3 年全额预付 RI,锁定最大折扣。
- 阶段性项目(6–12 个月):买 1 年 RI,到期后评估是否续期。
- 注意:RI 绑定实例族(如
m7i),但支持同族内大小灵活切换——m7i.large的 RI 可以覆盖两台m7i.xlarge的一半费用。
2.2 第二板斧:Spot 实例——低至一折的"捡漏"模式
AWS 会把闲置的 EC2 容量以竞价方式出售,价格通常为按需价格的 10%–30%。代价是 AWS 可以在提前 2 分钟通知后回收实例。
Spot 实战配置(CLI 一行起一个 Spot 实例):
aws ec2 run-instances \
--instance-type c7i.xlarge \
--image-id ami-0c55b159cbfafe1f0 \
--instance-market-options '{
"MarketType": "spot",
"SpotOptions": {
"MaxPrice": "0.05",
"SpotInstanceType": "persistent",
"InstanceInterruptionBehavior": "stop"
}
}' \
--count 1
哪些场景适合 Spot?
- ✅ 批处理任务、大数据 ETL、CI/CD 构建节点
- ✅ 无状态 Web 应用(后面有 ALB 负载均衡)
- ✅ 渲染农场、机器学习训练(配合 checkpoint 机制)
- ❌ 数据库主库、有状态中间件、金融实时交易
混合策略示例——Web 应用集群:
- 3 台按需/预留实例(保证最低容量)
- 2–10 台 Spot 实例(弹性应对流量高峰)
- Auto Scaling Group 配置多实例类型 + 多可用区,防止单一 Spot 池枯竭
2.3 第三板斧:Savings Plans——比 RI 更灵活的承诺消费
Compute Savings Plans 不绑定实例族和区域,只要承诺每小时消费 $X(如 $5/小时),所有 EC2、Fargate 和 Lambda 的用量都自动享受折扣。
# 查看 Savings Plans 推荐(基于过去 30 天用量)
aws ce get-savings-plans-purchase-recommendation \
--lookback-period-in-days THIRTY_DAYS \
--payment-option PARTIAL_UPFRONT \
--savings-plans-type COMPUTE_SP
RI vs Savings Plans 怎么选:
- 实例类型和区域稳定 → RI(折扣略高,约 3%–5%)
- 实例类型频繁变化、跨区域多云部署 → Savings Plans
三、Lambda 成本优化:毫秒计费的陷阱与对策
Lambda 的计费公式看起来简单:费用 = 调用次数 × $0.20/百万次 + 内存(GB) × 执行时间(秒) × $0.0000166667/GB-秒。但这里的每个变量都是优化空间。
3.1 内存配置的甜蜜点
AWS 为 Lambda 分配的内存越多,CPU 性能线性增长,但成本也成正比上升。很多开发者为了"保险"直接分配 1024MB 甚至 3008MB,而实际函数峰值内存只有 200MB。
| 内存分配 | CPU 等效 | 执行时间(假设) | 每次调用成本 | 月成本(1百万次) |
|---|---|---|---|---|
| 128 MB | 0.083 vCPU | 200 ms | $0.0000043 | $4.31 |
| 256 MB | 0.167 vCPU | 150 ms | $0.0000063 | $6.28 |
| 512 MB | 0.333 vCPU | 100 ms | $0.0000085 | $8.53 |
| 1024 MB | 0.667 vCPU | 80 ms | $0.0000137 | $13.65 |
表中数据说明:内存加倍会缩短执行时间(因为 CPU 更强),但缩短幅度通常小于内存翻倍——256MB 往往比 128MB 更便宜,但 1024MB 可能比 512MB 贵 60% 以上。
操作建议:
# 用 AWS Lambda Power Tuning 自动寻找最优内存配置
aws lambda invoke \
--function-name lambda-power-tuning \
--payload '{"lambdaARN": "arn:aws:lambda:us-east-1:123456789012:function:my-func", "powerValues": [128,256,512,1024,1536,2048,2560,3008], "num": 50, "payload": "{}"}' \
output.json
3.2 Provisioned Concurrency:预热 vs 省钱
Provisioned Concurrency(预置并发) 保持 N 个 Lambda 实例始终温热,消除冷启动,但按 GB 每秒额外计费。一台 256MB 的预置并发实例月费约 $12.50,接近一台 LightSail 最低配。
不花冤枉钱的原则:
- 仅对延迟敏感的 API 端点启用预置并发(如用户登录、支付回调)
- 使用 Application Auto Scaling 按时间窗口自动调整预置并发数量:
# 工作时间保持 10 个预热实例,夜间降到 1 个
MinCapacity: 1
MaxCapacity: 10
ScheduledAction: cron(0 9 ? * MON-FRI *) → 10
ScheduledAction: cron(0 20 ? * MON-FRI *) → 1
3.3 Lambda 账单的隐性杀手
- 递归调用死循环:函数 A 调用函数 B 再调用函数 A——一夜之间烧掉数千美元。必须启用并发限制(Reserved Concurrency),同时对 SQS/DynamoDB 触发源配置死信队列。
- 大 payload 网络传输:Lambda 在 VPC 内部署时,跨 NAT Gateway 传输大文件不仅要付网络费,函数执行时间也被数据传输拉长。
- CloudWatch 日志暴增:默认保留期无限,每个
console.log都永久存储。建议设置日志保留期为 7–30 天。
四、ECS/EKS 容器成本大解剖
4.1 Fargate vs EC2 启动模式
| 维度 | Fargate | EC2 启动模式 |
|---|---|---|
| 计费方式 | 按 vCPU·小时 + 内存·GB·小时 | 按底层 EC2 实例计费(RI/Spot 折扣可用) |
| 运维负担 | 零服务器管理 | 需要管理 AMI、补丁、节点扩缩容 |
| 小规模(<5 个常驻 task) | 更便宜(无闲置 EC2 浪费) | 贵(EC2 实例往往资源利用率低) |
| 大规模(>20 个常驻 task) | 贵(无批量折扣) | 更便宜(搭配 RI/Spot 显著降本) |
| GPU 工作负载 | 不支持 | 支持(G5/P5 实例) |
分水岭建议: 常驻 task 超过 10–15 个时,切换到 EC2 启动模式 + Karpenter 自动调度,综合成本低 20%–50%。
4.2 Fargate Spot——容器的竞价实例
# Fargate Spot 比标准 Fargate 便宜高达 50%
# 在 task definition 中指定 capacity provider:
"capacityProviderStrategy": [
{ "capacityProvider": "FARGATE_SPOT", "weight": 2, "base": 0 },
{ "capacityProvider": "FARGATE", "weight": 1, "base": 3 }
]
权重 2:1 表示:70% 的任务跑在 Spot 上(便宜但可能被中断),30% 跑在标准 Fargate 上(稳定)。base=3 保证至少 3 个任务始终在标准 Fargate 上。
4.3 EKS 控制平面的"固定税"
EKS 每个集群的控制平面固定收费 $0.10/小时(约 $73/月),不管你跑几个 Pod。这意味着:
- 每多建一个"测试/开发用 EKS 集群",每年固定多花 $876。
- 建议:生产 1 个集群 + 命名空间隔离,开发环境用
kind或k3s在 EC2 上自建。
五、Auto Scaling:不是"用了就省钱",而是"配对了才省钱"
Auto Scaling 本身是免费服务,但不合理的扩缩容策略是云账单的无底洞。
5.1 常见血亏场景
| 问题 | 现象 | 修复 |
|---|---|---|
| 最小实例数过高 | 低峰期跑着 4 台 EC2,CPU 利用率仅 5% | 设 MinSize=1,夜间通过 Scheduled Action 降到 0 后关机 |
| 缩容冷却时间太短 | 刚缩掉一台,负载上来又扩一台,反复抖动 | 冷却时间建议 ≥300 秒,用步进缩放代替简单策略 |
| 只用默认的 CPU 指标 | 内存打满但 CPU 还低,ASG 不扩容 | 用 CloudWatch 自定义指标(内存使用率)做扩缩容触发 |
5.2 混合实例 + 多可用区策略
# 创建混合实例 ASG:On-Demand + Spot,优先用便宜的
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name web-app-asg \
--mixed-instances-policy '{
"LaunchTemplate": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-0abc123",
"Version": "$Latest"
},
"Overrides": [
{"InstanceType": "m7i.large"},
{"InstanceType": "m7a.large"},
{"InstanceType": "c7i.large"},
{"InstanceType": "c7a.large"}
]
},
"InstancesDistribution": {
"OnDemandPercentageAboveBaseCapacity": 30,
"SpotAllocationStrategy": "capacity-optimized"
}
}' \
--min-size 2 --max-size 20 --desired-capacity 4 \
--availability-zones us-east-1a us-east-1b us-east-1c
OnDemandPercentageAboveBaseCapacity=30:基础容量的 30% 以上用按需实例,剩余全部跑 Spotcapacity-optimized:从可用区中选择 Spot 中断概率最低的池
六、LightSail:固定月费的"傻瓜式性价比"
LightSail 是 AWS 最简单、最可预测的计算服务——固定月费包含计算、SSD 存储、流量配额和静态 IP。
6.1 套餐对比
| 套餐 | 月费 | 内存 | vCPU | SSD | 流量 | 适合场景 |
|---|---|---|---|---|---|---|
| $3.50 | 512 MB | 1 核 | 20 GB | 1 TB | 个人博客、静态站 | |
| $5.00 | 1 GB | 1 核 | 40 GB | 2 TB | WordPress、小型企业站 | |
| $10.00 | 2 GB | 1 核 | 60 GB | 3 TB | 中小电商、论坛 | |
| $20.00 | 4 GB | 2 核 | 80 GB | 4 TB | 中型 API、SaaS MVP |
6.2 什么时候用 LightSail 而不是 EC2?
| 条件 | 选 LightSail | 选 EC2 |
|---|---|---|
| 需要可预测的月度账单 | ✅ | ❌(按需波动大) |
| 需要 VPC 对等、NAT 网关、PrivateLink | ❌ | ✅ |
| 需要 GPU / FPGA / 裸金属 | ❌ | ✅ |
| 需要 Auto Scaling | ❌(手动升级套餐) | ✅ |
| 日均 UV < 10,000 | ✅ | ❌(EC2 通常贵) |
定价陷阱提醒:LightSail 的 $3.50/月套餐只有 512MB 内存,运行 WordPress + MySQL 很快就会 OOM。建议最低从 $5 套餐起步。如果超出流量配额,超额流量按 $0.09/GB 计费——一个被 DDoS 打爆的 LightSail 实例可能当月产生数百美元超额流量费。
七、综合优化决策框架
用一张决策流程图收尾,帮你判断当前架构的优化优先级:
┌─────────────────┐
│ 分析月度 AWS 账单 │
└────────┬────────┘
│
┌────────▼────────┐
│ EC2 占比 > 60%? │
└───┬─────────┬───┘
YES │ │ NO
┌─────────▼──┐ ┌───▼──────────┐
│ 购买 RI/SP │ │ Lambda 占比 │
│ + 引入 Spot │ │ > 30%? │
└─────────────┘ └───┬───────┬───┘
YES │ │ NO
┌──────────▼─┐ ┌───▼───────────┐
│ 内存调优 │ │ ECS/EKS 容器? │
│ + 预置并发 │ └───┬───────┬───┘
│ 窗口化 │ YES │ │ NO
└────────────┘ ┌───▼───┐ ┌───▼──────────┐
│ Fargate│ │ LightSail? │
│→ Spot │ │ 检查套餐是否 │
│+ Karp. │ │ 过度配置 │
└────────┘ └──────────────┘
各阶段目标降本幅度
| 阶段 | 措施 | 预期降本 | 实施周期 |
|---|---|---|---|
| 低垂果实 | 关停闲置资源、调整 LightSail 套餐、清理未用 EBS/弹性 IP | 15%–25% | 1 天 |
| 结构优化 | EC2 RI/SP 购买、Lambda 内存调优、ECS Fargate→Spot 切换 | 25%–40% | 1–2 周 |
| 架构演进 | Karpenter 自动调度、多区域 Spot 池、EventBridge 定时关机 | 40%–60% | 1–3 月 |
总结
AWS 的计费体系看似复杂,但其实降本的逻辑非常清晰:核心服务买预留(RI/SP),波动负载用竞价(Spot/Fargate Spot),无状态函数调内存(Lambda),轻量场景走固定月费(LightSail),所有资源配自动伸缩(Auto Scaling)。这五个动作覆盖了绝大多数团队的账单优化空间。
成本优化不是一次性的运动,而是需要持续监控、每月复盘的习惯。建议每个月初花 30 分钟打开 Cost Explorer,按标签筛出 Top 10 消费项,逐一确认是否还有优化空间。日积月累,省下的绝不仅仅是几个百分点——而是一整台生产服务器的年费。
本文由 5.chengzicloud.cloud 提供,点击访问首页了解更多
常见问题(FAQ)
EC2 关机了为什么还在扣费?
停止 EC2 实例后,挂载的 EBS 卷和弹性 IP 仍然计费。弹性 IP 在未关联运行中实例时每小时收取 $0.005。如果不再需要,务必在 EC2 控制台的"弹性 IP"页面手动释放。
Lambda 和 Fargate 怎么选?哪个更便宜?
Lambda 适合间歇性短任务(单次<15分钟、调用不太密集)。Fargate 适合持续性中等负载(任务跑数小时、需要更大内存/CPU)。成本分水岭大约在每月 200 万次 Lambda 调用——超过这个量且每次执行时间超过 1 秒,Fargate 可能更划算。
预留实例买了能退吗?
可以,但有条件。 通过 AWS Reserved Instance Marketplace 可以出售不需要的标准 RI(需持有至少 30 天)。Convertible RI 支持更换实例族但不可转售。
LightSail 能扛住多少并发?
$5/月套餐(1GB 内存、1 vCPU)部署 WordPress + Nginx 大约能支撑 500–1,000 并发连接,取决于页面动态程度。超过这个量级应升级到更高套餐或迁移到 EC2 搭配 Load Balancer。
有什么工具能自动发现省钱项?
AWS Cost Explorer(免费)可以按服务/标签拆解账单。AWS Compute Optimizer(免费)根据 CloudWatch 指标推荐更合适的实例类型。AWS Trusted Advisor(商业支持计划包含)扫描闲置资源。第三方工具 Vantage.sh 和 CloudZero 提供更细粒度的成本归因。