关于 aws-cost-optimizer
面向 AWS 使用者的成本分析与优化技能,可解析支出趋势并识别闲置或利用不足的资源。它提供节省建议和 AWS CLI 示例,同时强调需先核实资源归属与变更安全性。
主要功能
- 01按服务、区域和标签分析成本
- 02发现支出趋势与异常
- 03识别闲置或利用不足资源
- 04提供预留计划和规格调整建议
- 05估算具体优化措施的潜在节省
适用场景
- 01比较不同月份的 AWS 支出
- 02查找未挂载 EBS 卷或闲置 EC2
- 03评估 RDS 和 EC2 规格调整
- 04制定预算告警和成本优化报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill aws-cost-optimizer安装后在 Claude Code 中输入/aws-cost-optimizer确认已加载。
详细介绍
AWS 成本优化器
分析 AWS 支出模式,识别浪费,并提供切实可行的成本削减策略。
何时使用此技能
当你需要分析 AWS 支出、寻找成本优化机会或减少云资源浪费时,请使用此技能。
核心能力
成本分析
- 解析 AWS Cost Explorer 数据,识别趋势和异常
- 按服务、区域和资源标签细分成本
- 识别环比支出增长
资源优化
- 检测闲置的 EC2 实例(CPU 利用率低)
- 查找未挂载的 EBS 卷和旧快照
- 识别未使用的 Elastic IP
- 找出利用率不足的 RDS 实例
- 查找符合生命周期策略条件的旧 S3 对象
节省建议
- 推荐 Reserved Instance/Savings Plans 机会
- 根据 CloudWatch 指标建议调整实例规格
- 识别位于高成本区域的资源
- 计算采取具体措施后可节省的成本
分析与变更边界
确认 AWS 账户/配置文件、区域和报告日期。示例使用 GNU date(-d),而非 macOS BSD date。Cost Explorer 的结束日期不包含在内,使用数据也可能有所延迟。仅凭 CPU 利用率低或资源未挂载,并不能确定删除是安全的;请检查所有者、恢复保留期限、I/O、网络、内存和业务周期。删除、终止、调整规格和购买承诺用量,均需要明确的授权范围和恢复计划。
AWS CLI 命令
获取成本和使用情况
# Last 30 days cost by service
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
# Daily costs for current month
aws ce get-cost-and-usage \
--time-period Start=$(date +%Y-%m-01),End=$(date +%Y-%m-%d) \
--granularity DAILY \
--metrics UnblendedCost
查找未使用的资源
# Unattached EBS volumes
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].[VolumeId,Size,VolumeType,CreateTime]' \
--output table
# Unused Elastic IPs
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].[PublicIp,AllocationId]' \
--output table
# Idle EC2 instances (requires 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
# Old EBS snapshots (>90 days)
aws ec2 describe-snapshots \
--owner-ids self \
--query 'Snapshots[?StartTime<=`'$(date -d '90 days ago' --iso-8601)'`].[SnapshotId,StartTime,VolumeSize]' \
--output table
调整规格分析
# List EC2 instances with their types
aws ec2 describe-instances \
--query 'Reservations[*].Instances[*].[InstanceId,InstanceType,State.Name,Tags[?Key==`Name`].Value|[0]]' \
--output table
# Get RDS instance utilization
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 卷
- 释放未使用的 Elastic IP
- 停止/终止闲置的 EC2 实例
- 删除旧快照
-
战略性优化
- 分析 Reserved Instance 覆盖率
- 根据工作负载审查实例类型
- 实施 S3 生命周期策略
- 对非关键工作负载考虑使用 Spot 实例
-
持续监控
- 设置带提醒的 AWS Budgets
- 启用 Cost Anomaly Detection
- 为资源添加成本分配标签
- 每月召开成本审查会议
成本优化清单
- 启用 AWS Cost Explorer
- 设置成本分配标签
- 创建带提醒的 AWS Budget
- 审查并删除未使用的资源
- 分析 Reserved Instance 机会
- 实施 S3 Intelligent-Tiering
- 审查数据传输成本
- 优化 Lambda 内存分配
- 使用 CloudWatch Logs 保留策略
- 考虑多区域成本差异
示例提示词
分析
- “显示过去 3 个月按服务细分的 AWS 成本”
- “哪些资源最贵?请列出前 10 项。”
- “比较本月和上月的支出”
优化
- “查找所有未挂载的 EBS 卷并计算节省金额”
- “识别 CPU 利用率低于 5% 的 EC2 实例”
- “根据使用情况建议购买 Reserved Instance”
- “计算删除超过 90 天的快照可节省的金额”
实施
- “创建一个删除未挂载卷的脚本”
- “为每月 $1000 的预算设置提醒”
- “为管理层生成一份成本优化报告”
最佳实践
- 始终先在非生产环境中测试
- 删除前确认资源确实未被使用
- 记录所有成本优化措施
- 计算优化措施的投资回报率
- 自动化重复性优化任务
- 使用 AWS Trusted Advisor 的建议
- 启用 AWS Cost Anomaly Detection
与 Kiro CLI 集成
此技能可与 Kiro CLI 的 AWS 集成无缝配合:
# Use Kiro to analyze costs
kiro-cli chat "Use aws-cost-optimizer to analyze my spending"
# Generate optimization report
kiro-cli chat "Create a cost optimization plan using aws-cost-optimizer"
安全注意事项
- 风险级别:低 - 只读分析是安全的
- 删除操作:中等风险 - 删除资源前务必确认
- 生产环境变更:高风险 - 先在开发/预发布环境中测试规格调整
- 删除前做好备份
- 如有
--dry-run标志,请使用
其他资源
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 请勿将输出视为对特定环境进行验证、测试或专家审查的替代。
- 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。
评论
支持 Markdown