# 第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 的架构设计最佳实践框架。了解如何从五个维度评估和改进你的架构。