aws-doc/课程/第五阶段-监控与运维/第34天-成本管理.md
2026-05-08 10:24:39 +08:00

216 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第34天成本管理——控制你的 AWS 账单
## 今天你将学到什么
今天学习如何管理和优化 AWS 成本。AWS 按使用量付费,用得好省钱,用不好可能收到天价账单。掌握成本管理是每个 AWS 用户的必修课。
---
## AWS 定价的基本原则
### 三大定价原则
1. **按使用量付费**:用多少付多少,不用不花钱
2. **用得越多越便宜**:很多服务有阶梯定价
3. **预付费更便宜**:承诺长期使用可以获得折扣
### 什么东西要花钱
| 类别 | 计费方式 | 举例 |
|------|----------|------|
| 计算 | 按运行时间 | EC2 每小时 $0.05 |
| 存储 | 按存储量 | S3 每 GB 每月 $0.023 |
| 网络 | 按传输量 | 数据传出每 GB $0.09 |
| 请求 | 按请求次数 | API Gateway 每百万次 $3.50 |
| 数据库 | 按实例时间 + 存储 | RDS 每小时 $0.10 + 存储费 |
### 什么东西免费
- 数据传入 AWS免费上传不花钱
- 同一可用区内的数据传输:免费
- 很多服务的 Free Tier12 个月免费额度)
---
## 常见的"账单惊吓"
### 惊吓一:忘记关 EC2
你创建了一台 EC2 做实验,用完忘记关了。一个月后发现账单多了 $50。
**预防**:设置 Billing Alarm超过预算立刻通知。
### 惊吓二NAT Gateway 流量费
NAT Gateway 按流量收费($0.045/GB。如果你的应用通过 NAT Gateway 下载大量数据,费用会很高。
**预防**:使用 VPC Endpoint 访问 S3/DynamoDB免费减少通过 NAT 的流量。
### 惊吓三EBS 快照堆积
每次创建 EBS 快照都会占用存储空间。如果不清理旧快照,费用会持续增长。
**预防**:设置快照生命周期策略,自动删除过期快照。
### 惊吓四:闲置的 Elastic IP
Elastic IP 绑定到运行中的 EC2 是免费的。但如果 EC2 停止了或 IP 没有绑定,每小时收 $0.005。
**预防**:不用的 Elastic IP 及时释放。
---
## AWS 省钱策略
### 策略一:选择合适的实例类型
不要盲目选大实例。先用小实例,监控资源使用率,再决定是否升级。
| 场景 | 推荐 | 原因 |
|------|------|------|
| 开发测试 | t3.micro / t3.small | 便宜,突发性能够用 |
| 稳定负载 | m6i / c6i | 性价比高 |
| 内存密集 | r6i | 内存大 |
| 计算密集 | c6i | CPU 强 |
### 策略二:使用预留实例 / Savings Plans
如果你确定要长期使用某些资源,预付费可以省很多钱。
| 方式 | 折扣 | 灵活性 | 适合 |
|------|------|--------|------|
| 按需On-Demand | 无折扣 | 最灵活 | 短期、不确定的负载 |
| Savings Plans | 最多 72% | 中等 | 确定要用 1-3 年 |
| 预留实例 | 最多 75% | 最低 | 确定实例类型和区域 |
| Spot 实例 | 最多 90% | 可能被中断 | 可中断的任务 |
### 策略三:使用 Spot 实例
Spot 实例是 AWS 闲置的计算资源,价格只有按需的 10-30%。但 AWS 可能随时收回。
**适合**
- 批处理任务(数据分析、视频转码)
- CI/CD 构建
- 测试环境
- 可以容忍中断的工作负载
**不适合**
- 生产环境的核心服务
- 数据库
- 不能中断的任务
### 策略四:合理使用存储层级
| S3 存储类 | 价格 | 适合 |
|-----------|------|------|
| Standard | $0.023/GB | 频繁访问的数据 |
| Infrequent Access | $0.0125/GB | 偶尔访问(每月一次) |
| Glacier | $0.004/GB | 归档(几个月访问一次) |
| Glacier Deep Archive | $0.00099/GB | 长期归档(几年访问一次) |
设置生命周期策略自动转移:
```
0-30 天Standard
30-90 天Infrequent Access
90 天以上Glacier
```
### 策略五:关闭不用的资源
听起来简单,但很多公司每月浪费 20-30% 的云费用在闲置资源上。
**常见浪费**
- 开发环境晚上和周末不关
- 测试完的资源忘记删除
- 没有流量的负载均衡器
- 没有挂载的 EBS 卷
---
## AWS 成本管理工具
### Cost Explorer——费用分析
可视化你的 AWS 花费:
- 按服务查看:哪个服务花钱最多
- 按时间查看:费用趋势是上升还是下降
- 按标签查看:哪个项目/团队花钱最多
- 预测未来费用
### Budgets——预算告警
设置预算上限,超过时自动通知:
```
月度预算:$100
告警阈值:
- 达到 50%$50→ 发邮件提醒
- 达到 80%$80→ 发邮件 + 短信
- 达到 100%$100→ 紧急通知 + 可选自动操作
```
**强烈建议**:学习阶段一定要设置 Budget设置 $10 或 $20 的月度预算,避免意外花费。
### Trusted Advisor——优化建议
AWS 的"理财顾问",自动检查你的账户并给出建议:
| 检查类别 | 举例 |
|----------|------|
| 成本优化 | "你有 3 台 EC2 CPU 使用率低于 10%,建议缩小实例" |
| 性能 | "你的 EBS 卷 IOPS 经常达到上限,建议升级" |
| 安全 | "你的 S3 桶是公开的,建议限制访问" |
| 容错 | "你的 RDS 没有开启 Multi-AZ建议开启" |
### 资源标签Tags——费用归属
给每个资源打标签,方便追踪费用归属:
```
标签示例:
Environment: production / staging / development
Team: backend / frontend / data
Project: order-system / user-portal
```
然后在 Cost Explorer 中按标签筛选,就能知道每个团队、每个项目花了多少钱。
---
## 成本优化清单
| 优先级 | 措施 | 预期节省 |
|--------|------|----------|
| 高 | 关闭闲置资源 | 10-30% |
| 高 | 合适的实例大小 | 10-20% |
| 高 | Savings Plans / 预留实例 | 30-72% |
| 中 | 使用 Spot 实例 | 60-90%(适用部分) |
| 中 | S3 生命周期策略 | 存储费 50-90% |
| 中 | VPC Endpoint 替代 NAT | 网络费 50%+ |
| 低 | 选择合适的区域 | 5-15% |
| 低 | 数据传输优化 | 视情况 |
---
## 今天的小测验
1. AWS 的三大定价原则是什么?
2. Spot 实例为什么这么便宜?什么场景适合用?
3. 为什么学习阶段一定要设置 Budget
4. 列举三种常见的 AWS 费用浪费场景。
---
## 延伸阅读
- [AWS 定价页面](https://aws.amazon.com/pricing/)
- [AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html)
- [AWS Savings Plans](https://docs.aws.amazon.com/savingsplans/latest/userguide/)
- [AWS 成本优化白皮书](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-laying-the-foundation/cost-optimization-laying-the-foundation.html)
---
## 明天预告
明天学习 Well-Architected Framework——AWS 的架构设计最佳实践框架。了解如何从五个维度评估和改进你的架构。