216 lines
6.5 KiB
Markdown
216 lines
6.5 KiB
Markdown
|
|
# 第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 Tier(12 个月免费额度)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 常见的"账单惊吓"
|
|||
|
|
|
|||
|
|
### 惊吓一:忘记关 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 的架构设计最佳实践框架。了解如何从五个维度评估和改进你的架构。
|