aws-cost-optimizer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

AWS Cost Optimizer

AWS成本优化器

Analyze AWS spending patterns, identify waste, and provide actionable cost reduction strategies.
分析AWS支出模式,识别资源浪费,并提供可落地的成本削减策略。

When to Use This Skill

何时使用该技能

Use this skill when you need to analyze AWS spending, identify cost optimization opportunities, or reduce cloud waste.
当你需要分析AWS支出、识别成本优化机会或减少云资源浪费时,可使用该技能。

Core Capabilities

核心功能

Cost Analysis
  • Parse AWS Cost Explorer data for trends and anomalies
  • Break down costs by service, region, and resource tags
  • Identify month-over-month spending increases
Resource Optimization
  • Detect idle EC2 instances (low CPU utilization)
  • Find unattached EBS volumes and old snapshots
  • Identify unused Elastic IPs
  • Locate underutilized RDS instances
  • Find old S3 objects eligible for lifecycle policies
Savings Recommendations
  • Suggest Reserved Instance/Savings Plans opportunities
  • Recommend instance rightsizing based on CloudWatch metrics
  • Identify resources in expensive regions
  • Calculate potential savings with specific actions
成本分析
  • 解析AWS Cost Explorer数据以发现趋势与异常
  • 按服务、区域和资源标签拆分成本
  • 识别月度支出增长情况
资源优化
  • 检测闲置EC2实例(CPU利用率低)
  • 查找未挂载的EBS卷和旧快照
  • 识别未使用的Elastic IP
  • 定位未充分利用的RDS实例
  • 查找符合生命周期策略的旧S3对象
节省建议
  • 推荐预留实例(Reserved Instance)/节约计划(Savings Plans)的适用场景
  • 基于CloudWatch指标推荐实例规格调整
  • 识别位于高成本区域的资源
  • 计算执行特定操作可带来的潜在节省

AWS CLI Commands

AWS CLI命令

Get Cost and Usage

获取成本与使用情况

bash
undefined
bash
undefined

Last 30 days cost by service

过去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 -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
undefined
aws ce get-cost-and-usage
--time-period Start=$(date +%Y-%m-01),End=$(date +%Y-%m-%d)
--granularity DAILY
--metrics UnblendedCost
undefined

Find Unused Resources

查找未使用资源

bash
undefined
bash
undefined

Unattached EBS volumes

未挂载的EBS卷

aws ec2 describe-volumes
--filters Name=status,Values=available
--query 'Volumes[*].[VolumeId,Size,VolumeType,CreateTime]'
--output table
aws ec2 describe-volumes
--filters Name=status,Values=available
--query 'Volumes[*].[VolumeId,Size,VolumeType,CreateTime]'
--output table

Unused Elastic IPs

未使用的Elastic IP

aws ec2 describe-addresses
--query 'Addresses[?AssociationId==null].[PublicIp,AllocationId]'
--output table
aws ec2 describe-addresses
--query 'Addresses[?AssociationId==null].[PublicIp,AllocationId]'
--output table

Idle EC2 instances (requires CloudWatch)

闲置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
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)

90天以上的旧EBS快照

aws ec2 describe-snapshots
--owner-ids self
--query 'Snapshots[?StartTime<=
'$(date -d '90 days ago' --iso-8601)'
].[SnapshotId,StartTime,VolumeSize]'
--output table
undefined
aws ec2 describe-snapshots
--owner-ids self
--query 'Snapshots[?StartTime<=
'$(date -d '90 days ago' --iso-8601)'
].[SnapshotId,StartTime,VolumeSize]'
--output table
undefined

Rightsizing Analysis

规格调整分析

bash
undefined
bash
undefined

List EC2 instances with their types

列出EC2实例及其类型

aws ec2 describe-instances
--query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name,Tags[?Key==
Name
].Value|[0]]'
--output table
aws ec2 describe-instances
--query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name,Tags[?Key==
Name
].Value|[0]]'
--output table

Get RDS instance utilization

获取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
undefined
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
undefined

Optimization Workflow

优化工作流

  1. Baseline Assessment
    • Pull 3-6 months of cost data
    • Identify top 5 spending services
    • Calculate growth rate
  2. Quick Wins
    • Delete unattached EBS volumes
    • Release unused Elastic IPs
    • Stop/terminate idle EC2 instances
    • Delete old snapshots
  3. Strategic Optimization
    • Analyze Reserved Instance coverage
    • Review instance types vs. workload
    • Implement S3 lifecycle policies
    • Consider Spot instances for non-critical workloads
  4. Ongoing Monitoring
    • Set up AWS Budgets with alerts
    • Enable Cost Anomaly Detection
    • Tag resources for cost allocation
    • Monthly cost review meetings
  1. 基准评估
    • 获取3-6个月的成本数据
    • 找出支出最高的5项服务
    • 计算增长率
  2. 快速见效措施
    • 删除未挂载的EBS卷
    • 释放未使用的Elastic IP
    • 停止/终止闲置EC2实例
    • 删除旧快照
  3. 战略性优化
    • 分析预留实例覆盖情况
    • 评估实例类型与工作负载的匹配度
    • 实施S3生命周期策略
    • 为非关键工作负载考虑使用Spot实例
  4. 持续监控
    • 配置带告警的AWS预算
    • 启用成本异常检测
    • 为资源添加标签以实现成本分摊
    • 每月召开成本回顾会议

Cost Optimization Checklist

成本优化检查清单

  • Enable AWS Cost Explorer
  • Set up cost allocation tags
  • Create AWS Budget with alerts
  • Review and delete unused resources
  • Analyze Reserved Instance opportunities
  • Implement S3 Intelligent-Tiering
  • Review data transfer costs
  • Optimize Lambda memory allocation
  • Use CloudWatch Logs retention policies
  • Consider multi-region cost differences
  • 启用AWS Cost Explorer
  • 配置成本分摊标签
  • 创建带告警的AWS预算
  • 检查并删除未使用资源
  • 分析预留实例适用机会
  • 实施S3智能分层
  • 检查数据传输成本
  • 优化Lambda内存分配
  • 配置CloudWatch日志保留策略
  • 考虑多区域成本差异

Example Prompts

示例提示词

Analysis
  • "Show me AWS costs for the last 3 months broken down by service"
  • "What are my top 10 most expensive resources?"
  • "Compare this month's spending to last month"
Optimization
  • "Find all unattached EBS volumes and calculate savings"
  • "Identify EC2 instances with <5% CPU utilization"
  • "Suggest Reserved Instance purchases based on usage"
  • "Calculate savings from deleting snapshots older than 90 days"
Implementation
  • "Create a script to delete unattached volumes"
  • "Set up a budget alert for $1000/month"
  • "Generate a cost optimization report for leadership"
分析类
  • "展示过去3个月按服务划分的AWS成本"
  • "找出我成本最高的10项资源"
  • "对比本月与上月的支出情况"
优化类
  • "查找所有未挂载的EBS卷并计算可节省的成本"
  • "识别CPU利用率低于5%的EC2实例"
  • "基于使用情况推荐预留实例购买方案"
  • "计算删除90天以上快照可节省的成本"
实施类
  • "创建一个删除未挂载卷的脚本"
  • "配置每月1000美元的预算告警"
  • "为管理层生成一份成本优化报告"

Best Practices

最佳实践

  • Always test in non-production first
  • Verify resources are truly unused before deletion
  • Document all cost optimization actions
  • Calculate ROI for optimization efforts
  • Automate recurring optimization tasks
  • Use AWS Trusted Advisor recommendations
  • Enable AWS Cost Anomaly Detection
  • 始终先在非生产环境测试
  • 删除前确认资源确实未被使用
  • 记录所有成本优化操作
  • 计算优化工作的投资回报率(ROI)
  • 自动化重复的优化任务
  • 参考AWS Trusted Advisor的建议
  • 启用AWS成本异常检测

Integration with Kiro CLI

与Kiro CLI的集成

This skill works seamlessly with Kiro CLI's AWS integration:
bash
undefined
该技能可与Kiro CLI的AWS集成无缝协作:
bash
undefined

Use Kiro to analyze costs

使用Kiro分析成本

kiro-cli chat "Use aws-cost-optimizer to analyze my spending"
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"
undefined
kiro-cli chat "Create a cost optimization plan using aws-cost-optimizer"
undefined

Safety Notes

安全注意事项

  • Risk Level: Low - Read-only analysis is safe
  • Deletion Actions: Medium Risk - Always verify before deleting resources
  • Production Changes: High Risk - Test rightsizing in dev/staging first
  • Maintain backups before any deletion
  • Use
    --dry-run
    flag when available
  • 风险等级:低 - 只读分析是安全的
  • 删除操作:中等风险 - 删除资源前务必确认
  • 生产环境变更:高风险 - 先在开发/预发布环境测试规格调整
  • 执行任何删除操作前先备份
  • 尽可能使用
    --dry-run
    参数

Additional Resources

额外资源