
关于
使用 AWS CLI 和 Cost Explorer 进行全面的 AWS 成本分析和优化建议。
name: aws-cost-optimizer description: "全面的 AWS 成本分析和优化建议,使用 AWS CLI 和 Cost Explorer" risk: safe source: community date_added: "2026-02-27"
AWS 成本优化器
分析 AWS 支出模式,识别浪费,并提供可操作的成本削减策略。
何时使用此技能
当你需要分析 AWS 支出、识别成本优化机会或减少云资源浪费时使用此技能。
核心能力
成本分析
- 解析 AWS Cost Explorer 数据以发现趋势和异常
- 按服务、区域和资源标签分解成本
- 识别月度环比支出增长
资源优化
- 检测空闲 EC2 实例(低 CPU 利用率)
- 查找未挂载的 EBS 卷和旧快照
- 识别未使用的弹性 IP
- 定位利用率不足的 RDS 实例
- 查找符合生命周期策略的旧 S3 对象
节省建议
- 建议预留实例/Savings Plans 机会
- 基于 CloudWatch 指标推荐实例调整大小
- 识别位于昂贵区域的资源
- 计算特定操作的潜在节省
AWS CLI 命令
获取成本和使用量
# 过去30天按服务分类的成本
aws ce get-cost-and-usage \
--time-period Start=$(date -d '30 days ago' +%Y-%m-%d),End=$(date +%Y-%m-%d) \
--granularity MONTHLY \
--metrics BlendedCost \
--group-by Type=DIMENSION,Key=SERVICE
# 当月每日成本
aws ce get-cost-and-usage \
--time-period Start=$(date +%Y-%m-01),End=$(date +%Y-%m-%d) \
--granularity DAILY \
--metrics UnblendedCost
查找未使用的资源
# 未挂载的 EBS 卷
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].[VolumeId,Size,VolumeType,CreateTime]' \
--output table
# 未使用的弹性 IP
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].[PublicIp,AllocationId]' \
--output table
# 空闲 EC2 实例(需要 CloudWatch)
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-xxxxx \
--start-time $(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 86400 \
--statistics Average
# 旧 EBS 快照(>90天)
aws ec2 describe-snapshots \
--owner-ids self \
--query 'Snapshots[?StartTime<=`'$(date -d '90 days ago' --iso-8601)'`].[SnapshotId,StartTime,VolumeSize]' \
--output table
调整大小分析
# 列出 EC2 实例及其类型
aws ec2 describe-instances \
--query 'Reservations[*].Instances[*].[InstanceId,InstanceType,State.Name,Tags[?Key==`Name`].Value|[0]]' \
--output table
# 获取 RDS 实例利用率
aws cloudwatch get-metric-statistics \
--namespace AWS/RDS \
--metric-name CPUUtilization \
--dimensions Name=DBInstanceIdentifier,Value=mydb \
--start-time $(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 86400 \
--statistics Average,Maximum
优化工作流
-
基线评估
- 拉取 3-6 个月的成本数据
- 识别前 5 大支出服务
- 计算增长率
-
快速见效
- 删除未挂载的 EBS 卷
- 释放未使用的弹性 IP
- 停止/终止空闲 EC2 实例
- 删除旧快照
-
战略优化
- 分析预留实例覆盖率
- 审查实例类型与工作负载的匹配度
- 实施 S3 生命周期策略
- 考虑对非关键工作负载使用 Spot 实例
-
持续监控
- 设置带告警的 AWS Budgets
- 启用成本异常检测
- 为资源打标签以进行成本分配
- 月度成本审查会议
成本优化检查清单
- [ ] 启用 AWS Cost Explorer
- [ ] 设置成本分配标签
- [ ] 创建带告警的 AWS Budget
- [ ] 审查并删除未使用的资源
- [ ] 分析预留实例机会
- [ ] 实施 S3 Intelligent-Tiering
- [ ] 审查数据传输成本
- [ ] 优化 Lambda 内存分配
- [ ] 使用 CloudWatch Logs 保留策略
- [ ] 考虑多区域成本差异
示例提示
分析
- "显示过去3个月按服务分类的 AWS 成本"
- "我最贵的10个资源是什么?"
- "比较本月与上月的支出"
优化
- "查找所有未挂载的 EBS 卷并计算节省"
- "识别 CPU 利用率低于5%的 EC2 实例"
- "基于使用情况建议预留实例购买"
- "计算删除90天以上快照的节省"
实施
- "创建删除未挂载卷的脚本"
- "设置每月 $1000 的预算告警"
- "为管理层生成成本优化报告"
最佳实践
- 始终先在非生产环境测试
- 删除前验证资源确实未使用
- 记录所有成本优化操作
- 计算优化工作的投资回报率
- 自动化定期成本审查
兼容工具
Claude CodeCursor
标签
运维部署

