2. 基础设施成本构成分析:计算、存储、网络、数据库、托管服务等主要成本项
在实施成本优化之前,必须对云基础设施的成本构成进行精确拆解。云成本并非单一账单,而是由多个服务维度叠加而成。本章将逐一剖析计算、存储、网络、数据库、托管服务这五大核心成本项,并揭示它们之间的关联与杠杆效应。
2.1 成本构成全景视图
下图展示了典型云基础设施的成本构成层级。理解这一结构是后续所有优化动作的基础。
成本分析起点:建议从云厂商的 Cost Explorer 或账单导出中,按服务类别(Service)维度拉取过去 90 天的数据,先识别出占比最高的前 3 项服务,再逐层下钻。
2.2 计算成本:占比最大、弹性最强
计算资源(EC2、ECS、Lambda、AKS/EKS 等)通常是账单中占比最高的部分,可达 40%-60%。其成本构成要素如下:
| 成本要素 | 说明 | 优化杠杆 |
|---|---|---|
| 实例规格 | vCPU、内存、GPU 的配置大小 | 选择合适规格,避免过度配置 |
| 计费模式 | 按需、预留(1年/3年)、Spot | 稳态负载用预留,弹性负载用 Spot |
| 运行时长 | 实例开机时间(秒级计费) | 非生产环境定时关机,使用 Auto Scaling |
| 操作系统/许可证 | Windows 比 Linux 贵 20%-40% | 优先使用 Linux,自带许可证(BYOL) |
| 附加组件 | EBS 优化、弹性网卡、监控代理 | 按需启用,避免默认全开 |
实战案例:某电商平台通过将 60% 的在线实例切换为 Spot 实例,并配合混合预留实例(RI),计算成本降低了 52%。关键动作是使用
AWS Instance Scheduler 对开发环境实施夜间关机策略。
2.3 存储成本:分层与生命周期是关键
存储成本(S3、EBS、EFS、Azure Blob 等)通常占总成本的 10%-20%,但数据量增长快,容易失控。核心成本项包括:
- 存储容量:按 GB/月计费,不同存储层(标准、低频、归档)单价差异可达 10 倍以上。
- 请求与检索:GET/PUT 请求次数、数据取回费用(尤其低频和归档层)。
- 数据传输:跨区域复制、公网下载流量。
- 快照与备份:块存储快照按增量计费,长期保留成本不可忽视。
| 存储类型 | 典型场景 | 单价($/GB/月) | 优化策略 |
|---|---|---|---|
| 对象存储 - 标准 | 热数据、静态网站 | ~0.023 | 设置生命周期策略,30天未访问自动转低频 |
| 对象存储 - 低频 | 备份、日志归档 | ~0.012 | 合并小文件,减少请求次数 |
| 对象存储 - 归档 | 合规保留、冷数据 | ~0.001 | 使用批量检索,避免频繁取回 |
| 块存储 (SSD) | 系统盘、数据库 | ~0.08 | 使用 gp3 替代 io1,按需配置 IOPS |
| 文件存储 (NFS) | 共享文件系统 | ~0.08 | 使用低频策略,限制未使用文件 |
常见陷阱:很多团队只关注存储容量单价,忽略了请求费用和数据取回费用。例如,低频存储虽然单价低,但如果频繁读取,总成本可能超过标准存储。务必使用 S3 Analytics 或 Azure Storage Insights 分析访问模式。
2.4 网络成本:隐蔽的“流量税”
网络成本(NAT Gateway、Load Balancer、VPN、Direct Connect、跨区域流量)通常占总成本的 5%-15%,但增长弹性大,容易在架构扩展时失控。
网络优化三原则:
1. 就近访问:使用 CloudFront / CDN 缓存静态内容,减少回源流量。
2. 同 AZ 部署:将频繁通信的服务部署在同一可用区,避免跨 AZ 流量费。
3. 减少 NAT 依赖:使用 VPC Endpoint(Gateway/Interface)替代 NAT 网关访问 AWS 服务,可节省 50%-70% 的网络成本。
1. 就近访问:使用 CloudFront / CDN 缓存静态内容,减少回源流量。
2. 同 AZ 部署:将频繁通信的服务部署在同一可用区,避免跨 AZ 流量费。
3. 减少 NAT 依赖:使用 VPC Endpoint(Gateway/Interface)替代 NAT 网关访问 AWS 服务,可节省 50%-70% 的网络成本。
2.5 数据库成本:性能与存储的双重消耗
托管数据库(RDS、Aurora、DynamoDB、Cosmos DB、Cloud SQL 等)成本通常占总成本的 15%-25%。其成本模型比计算更复杂:
| 成本维度 | 说明 | 典型优化手段 |
|---|---|---|
| 实例规格 | vCPU、内存决定基础价格 | 使用 RDS 性能洞察识别未充分利用的实例 |
| 存储与 IOPS | 预置 IOPS 或按实际消耗计费 | gp3 存储按需配置 IOPS,避免过度预置 |
| 备份与快照 | 自动备份默认保留 7 天,超出部分收费 | 调整保留期,删除手动快照 |
| 数据传输 | 跨区域复制、公网访问 | 使用 VPC 内部访问,避免公网端点 |
| 预留实例 | RDS RI 可节省 30%-60% | 对稳态数据库购买 1 年或 3 年 RI |
数据库成本陷阱:DynamoDB 的按需模式单价是预置模式的 5-10 倍。对于可预测的流量,务必使用预置容量 + Auto Scaling。同样,Aurora 的 Serverless v2 模式在低负载时比预置实例更经济。
2.6 托管服务成本:便捷背后的隐性费用
托管服务(EKS/AKS/GKE 集群管理费、EMR、Kinesis、Lambda 请求、API Gateway 等)通常占总成本的 5%-10%,但容易被低估:
- Kubernetes 集群管理费:EKS 每个集群 $0.10/小时(约 $73/月),多集群环境下成本线性增长。
- 无服务器请求费:Lambda 每百万次请求 $0.20,但高并发场景下执行时长费用可能远超预期。
- API Gateway:每百万次 REST API 调用 $3.50,加上缓存和数据传输,小流量下不明显,大流量下不可忽视。
- 消息队列:SQS 请求费 $0.40/百万次,但长轮询和大量空响应会增加无效请求。
托管服务成本控制要点:
- 合并 EKS 集群,避免为每个环境创建独立集群。
- Lambda 函数设置合理的预留并发和超时时间,避免因代码 bug 导致无限循环产生巨额费用。
- 使用
- 合并 EKS 集群,避免为每个环境创建独立集群。
- Lambda 函数设置合理的预留并发和超时时间,避免因代码 bug 导致无限循环产生巨额费用。
- 使用
aws ce get-cost-and-usage 或 Azure Cost Management 定期审计托管服务账单,设置预算告警。
2.7 成本构成总结与优先级矩阵
基于以上分析,我们可以将五大成本项按占比和优化潜力进行排序,形成优化优先级矩阵:
| 成本项 | 典型占比 | 优化潜力 | 优先级 | 推荐切入点 |
|---|---|---|---|---|
| 计算 | 40%-60% | 高 (30%-60%) | P0 | 预留实例 + Spot + 自动缩放 |
| 数据库 | 15%-25% | 高 (20%-50%) | P0 | RI + 规格右缩 + 存储分层 |
| 存储 | 10%-20% | 中 (15%-40%) | P1 | 生命周期策略 + 删除未使用快照 |
| 网络 | 5%-15% | 中 (10%-30%) | P1 | CDN + VPC Endpoint + 同AZ部署 |
| 托管服务 | 5%-10% | 低-中 (5%-20%) | P2 | 集群合并 + 请求优化 + 预算告警 |