名称: 成本优化 描述: 通过资源优化、标记策略、预留实例和支出分析来优化云成本。适用于减少云支出、分析基础设施成本或实施成本治理政策。
云成本优化
跨AWS、Azure和GCP优化云成本的策略和模式。
目的
实施系统性成本优化策略,在保持性能和可靠性的同时减少云支出。
何时使用
- 减少云支出
- 优化资源规模
- 实施成本治理
- 优化多云成本
- 满足预算限制
成本优化框架
1. 可见性
- 实施成本分配标签
- 使用云成本管理工具
- 设置预算警报
- 创建成本仪表板
2. 优化规模
- 分析资源利用率
- 缩小过度配置的资源
- 使用自动扩展
- 移除闲置资源
3. 定价模型
- 使用预留容量
- 利用现货/可抢占实例
- 实施储蓄计划
- 使用承诺使用折扣
4. 架构优化
- 使用托管服务
- 实施缓存
- 优化数据传输
- 使用生命周期策略
AWS成本优化
预留实例
节省: 30-72% 对比按需实例
期限: 1 或 3 年
付款: 全部/部分/无预付费
灵活性: 标准或可转换
储蓄计划
计算储蓄计划: 66% 节省
EC2实例储蓄计划: 72% 节省
适用于: EC2, Fargate, Lambda
跨实例系列、区域、操作系统的灵活性
现货实例
节省: 高达 90% 对比按需实例
最佳用于: 批处理作业、CI/CD、无状态工作负载
风险: 2分钟中断通知
策略: 与按需实例混合以提高弹性
S3成本优化
resource "aws_s3_bucket_lifecycle_configuration" "example" {
bucket = aws_s3_bucket.example.id
rule {
id = "transition-to-ia"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 90
storage_class = "GLACIER"
}
expiration {
days = 365
}
}
}
Azure成本优化
预留VM实例
- 1 或 3 年期限
- 高达 72% 节省
- 灵活规模
- 可交换
Azure混合福利
- 使用现有Windows Server许可证
- 与预留实例结合高达 80% 节省
- 适用于Windows和SQL Server
Azure顾问建议
- 优化VM规模
- 删除未使用资源
- 使用预留容量
- 优化存储
GCP成本优化
承诺使用折扣
- 1 或 3 年承诺
- 高达 57% 节省
- 适用于vCPU和内存
- 基于资源或支出
持续使用折扣
- 自动折扣
- 运行实例高达 30% 节省
- 无需承诺
- 适用于Compute Engine, GKE
可抢占VM
- 高达 80% 节省
- 最长24小时运行时间
- 最佳用于批处理工作负载
标记策略
AWS标记
locals {
common_tags = {
Environment = "production"
Project = "my-project"
CostCenter = "engineering"
Owner = "team@example.com"
ManagedBy = "terraform"
}
}
resource "aws_instance" "example" {
ami = "ami-12345678"
instance_type = "t3.medium"
tags = merge(
local.common_tags,
{
Name = "web-server"
}
)
}
参考: 参见 references/tagging-standards.md
成本监控
预算警报
# AWS预算
resource "aws_budgets_budget" "monthly" {
name = "monthly-budget"
budget_type = "COST"
limit_amount = "1000"
limit_unit = "USD"
time_period_start = "2024-01-01_00:00"
time_unit = "MONTHLY"
notification {
comparison_operator = "GREATER_THAN"
threshold = 80
threshold_type = "PERCENTAGE"
notification_type = "ACTUAL"
subscriber_email_addresses = ["team@example.com"]
}
}
成本异常检测
- AWS成本异常检测
- Azure成本管理警报
- GCP预算警报
架构模式
模式 1: 优先无服务器
- 使用Lambda/函数处理事件驱动
- 仅按执行时间付费
- 包含自动扩展
- 无闲置成本
模式 2: 优化数据库规模
开发: t3.small RDS
测试: t3.large RDS
生产: r6g.2xlarge RDS 带读取副本
模式 3: 多层存储
热数据: S3标准
温数据: S3标准-IA (30天)
冷数据: S3 Glacier (90天)
归档: S3深度归档 (365天)
模式 4: 自动扩展
resource "aws_autoscaling_policy" "scale_up" {
name = "scale-up"
scaling_adjustment = 2
adjustment_type = "ChangeInCapacity"
cooldown = 300
autoscaling_group_name = aws_autoscaling_group.main.name
}
resource "aws_cloudwatch_metric_alarm" "cpu_high" {
alarm_name = "cpu-high"
comparison_operator = "GreaterThanThreshold"
evaluation_periods = "2"
metric_name = "CPUUtilization"
namespace = "AWS/EC2"
period = "60"
statistic = "Average"
threshold = "80"
alarm_actions = [aws_autoscaling_policy.scale_up.arn]
}
成本优化检查清单
- [ ] 实施成本分配标签
- [ ] 删除未使用资源 (EBS, EIPs, 快照)
- [ ] 基于利用率优化实例规模
- [ ] 对稳定工作负载使用预留容量
- [ ] 实施自动扩展
- [ ] 优化存储类别
- [ ] 使用生命周期策略
- [ ] 启用成本异常检测
- [ ] 设置预算警报
- [ ] 每周审查成本
- [ ] 使用现货/可抢占实例
- [ ] 优化数据传输成本
- [ ] 实施缓存层
- [ ] 使用托管服务
- [ ] 持续监控和优化
工具
- AWS: Cost Explorer, Cost Anomaly Detection, Compute Optimizer
- Azure: Cost Management, Advisor
- GCP: Cost Management, Recommender
- 多云: CloudHealth, Cloudability, Kubecost
参考文件
references/tagging-standards.md- 标记约定assets/cost-analysis-template.xlsx- 成本分析电子表格
相关技能
terraform-module-library- 用于资源供应multi-cloud-architecture- 用于云选择