mcpField
A
aws-cost-optimizer

aws-cost-optimizer

github.com/sickn33云与 DevOps48.7k129 次安装今天更新
代码仓库

关于 aws-cost-optimizer

面向 AWS 使用者的成本分析与优化技能,可解析支出趋势并识别闲置或利用不足的资源。它提供节省建议和 AWS CLI 示例,同时强调需先核实资源归属与变更安全性。

主要功能

  1. 01按服务、区域和标签分析成本
  2. 02发现支出趋势与异常
  3. 03识别闲置或利用不足资源
  4. 04提供预留计划和规格调整建议
  5. 05估算具体优化措施的潜在节省

适用场景

  1. 01比较不同月份的 AWS 支出
  2. 02查找未挂载 EBS 卷或闲置 EC2
  3. 03评估 RDS 和 EC2 规格调整
  4. 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

优化工作流

  1. 基线评估

    • 获取 3-6 个月的成本数据
    • 找出支出最高的 5 项服务
    • 计算增长率
  2. 需要所有者审核的节省候选项

    • 删除未挂载的 EBS 卷
    • 释放未使用的 Elastic IP
    • 停止/终止闲置的 EC2 实例
    • 删除旧快照
  3. 战略性优化

    • 分析 Reserved Instance 覆盖率
    • 根据工作负载审查实例类型
    • 实施 S3 生命周期策略
    • 对非关键工作负载考虑使用 Spot 实例
  4. 持续监控

    • 设置带提醒的 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