aws-finops — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited aws-finops (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill covers AWS cost optimization: identifying waste, right-sizing workloads, choosing the right storage classes and instance families, planning commitment purchases (Savings Plans, RIs, reserved nodes for RDS/ElastiCache/OpenSearch/Redshift/DynamoDB), and using AWS-native cost tooling (Cost Explorer, CUR, Compute Optimizer, Trusted Advisor, Budgets).
Scripts: Always run scripts with --help first. Scripts call the AWS CLI and assume credentials are already configured (env vars, profile, or instance role). Do not read script source unless debugging the script itself.
References: Load reference files on demand. Do not pre-load all references.
Slash commands: Users can also invoke these directly:
/finops-skills:finops-audit [account-or-profile] — Account-wide waste audit (idle resources, untagged spend, gp2 volumes, old snapshots)/finops-skills:finops-rightsize [resource-id] — Analyze a workload (EC2 / RDS / ASG) and recommend instance/RDS sizing/finops-skills:finops-commit — Recommend a coordinated reservation portfolio (Savings Plans + RDS/ElastiCache/OpenSearch RIs)In most AWS accounts, the top cost drivers — in order — are:
Go after these in order of impact, not in order of "easy."
"My AWS bill is too high"
│
├─ First: get the data
│ ├─ Cost Explorer: group by SERVICE (1-month) → top 5 services
│ ├─ Cost Explorer: group by USAGE_TYPE on the top service
│ └─ If you have CUR + Athena: query by account, tag, resource_id
│
├─ Top driver = EC2 / Fargate / Lambda?
│ ├─ Compute Optimizer → right-size recommendations (free)
│ ├─ Move dev/test to Spot or schedule off-hours
│ ├─ Migrate to Graviton (~20% cheaper, often faster)
│ ├─ Buy a Compute Savings Plan to cover stable baseline
│ └─ Read references/compute.md
│
├─ Top driver = RDS?
│ ├─ Right-size with Performance Insights + Compute Optimizer for RDS
│ ├─ gp2 → gp3 storage (cheaper + faster)
│ ├─ Aurora I/O-Optimized if I/O > 25% of cost
│ ├─ Buy RDS Reserved Instances for steady-state prod
│ └─ Read references/reservations.md (RDS section)
│
├─ Top driver = Data Transfer?
│ ├─ NAT Gateway hot? → VPC Endpoints for S3/DynamoDB/ECR/etc.
│ ├─ Cross-AZ? → Co-locate chatty services in one AZ (with HA tradeoff)
│ ├─ CloudFront in front of S3/ALB to cut egress
│ └─ Read references/networking.md
│
├─ Top driver = S3?
│ ├─ Enable Storage Lens (free dashboard) → identify cold buckets
│ ├─ Intelligent-Tiering for unknown/changing access patterns
│ ├─ Lifecycle rules to transition old objects to IA/Glacier
│ ├─ Delete incomplete multipart uploads (silent waste)
│ └─ Read references/storage.md
│
├─ Top driver = EBS?
│ ├─ gp2 → gp3 migration (always wins under most workloads)
│ ├─ Find unattached volumes (waste)
│ ├─ Snapshot lifecycle (DLM) — old snapshots accumulate
│ └─ Read references/storage.md
│
└─ Lots of small line items?
├─ Run idle/waste audit → scripts/find-idle-resources.sh
├─ Untagged spend → scripts/untagged-spend.sh
└─ Read references/waste.mdIn rough order of savings-per-effort. Most accounts have at least 3-4 of these.
scripts/ebs-gp2-to-gp3-audit.sh.scripts/find-idle-resources.sh.Full decision tree, math, and modification rules in Reservations Reference. Quick lookup:
| Service | Commitment Type | Size Flex | Region/AZ Flex | Convertible? | SP Equivalent |
|---|---|---|---|---|---|
| EC2 | Compute SP / EC2 Instance SP / Standard RI / Convertible RI | SP: yes; RI: within family | SP: any region; RI: regional or zonal | RI: convertible only | yes |
| Fargate | Compute SP only | n/a | any region | n/a | yes |
| Lambda | Compute SP only | n/a | any region | n/a | yes |
| RDS | Reserved Instance | within instance family (same engine) | regional | no | no |
| ElastiCache | Reserved Node | no (exact node type) | regional | no | no |
| OpenSearch | Reserved Instance | no (exact instance type) | regional | no | no |
| Redshift | Reserved Node | no (exact node type) | regional | no | no |
| DynamoDB | Reserved Capacity | n/a | regional | no | no |
Rules of thumb:
| Tool | What it's for | Cost |
|---|---|---|
| Cost Explorer | Interactive cost analysis, forecasts, RI/SP recommendations | Free (API: $0.01/req) |
| AWS Budgets | Alerts on actual or forecasted spend; RI/SP utilization & coverage alerts | First 2 free, then $0.02/day |
| Cost & Usage Report (CUR) | Hourly line-item data → S3 → query with Athena | Free (storage + Athena cost only) |
| Compute Optimizer | ML-based right-sizing for EC2, EBS, Lambda, ASG, ECS-on-Fargate, RDS | Free (Enhanced metrics: extra) |
| Trusted Advisor | Cost checks (idle LBs, low-util EC2, unassociated EIPs, RI/SP recos) | Basic free; full needs Business+ Support |
| S3 Storage Lens | Bucket-level usage + activity dashboard | Free tier; advanced metrics paid |
| AWS CUDOS / Cost Intelligence Dashboards | Pre-built QuickSight dashboards on CUR data | QuickSight cost only |
For Cost Explorer queries, CUR + Athena recipes, and Compute Optimizer workflow, read Tooling Reference.
All scripts use the AWS CLI. Set AWS_PROFILE or AWS_REGION as needed. Run with --help for full options.
bash scripts/find-idle-resources.sh # current region
bash scripts/find-idle-resources.sh --region us-east-1
bash scripts/find-idle-resources.sh --all-regions # slow but thoroughFinds: unattached EBS volumes, unused Elastic IPs, idle ELBs (no requests), stopped EC2 (still paying for EBS), snapshots older than 90 days, unattached ENIs.
bash scripts/ebs-gp2-to-gp3-audit.sh
bash scripts/ebs-gp2-to-gp3-audit.sh --apply # actually convert (with confirmation)Lists every gp2 volume with estimated monthly savings if migrated to gp3. Optionally performs the online migration.
bash scripts/untagged-spend.sh --tag-key Owner
bash scripts/untagged-spend.sh --tag-key CostCenter --region eu-west-1Reports resources missing a required tag, grouped by service. Use to drive a tagging cleanup before allocating cost.
bash scripts/reservation-coverage.sh # all services
bash scripts/reservation-coverage.sh --service rds
bash scripts/reservation-coverage.sh --expiring-days 60Reports current SP/RI coverage and utilization across EC2, RDS, ElastiCache, OpenSearch, Redshift; flags reservations expiring soon.
Load these as the task requires:
| Task | Action |
|---|---|
| "My AWS bill is too high" | Use decision tree above. Start with Cost Explorer by SERVICE. |
| Find waste in account | Run scripts/find-idle-resources.sh. Read waste.md. |
| Should I buy a Savings Plan? | Read reservations.md. Use Cost Explorer → Recommendations. |
| 1-yr vs 3-yr commitment | Read reservations.md payment math section. |
| RDS / ElastiCache / OpenSearch reservations | Read reservations.md — separate sections per service. |
| gp2 → gp3 migration | Run scripts/ebs-gp2-to-gp3-audit.sh. Read storage.md. |
| NAT Gateway too expensive | Read networking.md — VPC Endpoints + NAT alternatives. |
| Right-size a workload | Use Compute Optimizer first. Read compute.md. |
| Set up CUR + Athena | Read tooling.md. |
| Build coverage/utilization alerts | Read tooling.md AWS Budgets section. |
| Check current reservation coverage | Run scripts/reservation-coverage.sh. |
| Drive a tagging cleanup | Run scripts/untagged-spend.sh. Read waste.md. |
| Set up multi-account guardrails (SCPs, OUs) | Read organizations.md. |
| Cap sandbox spend with a kill-switch | Read organizations.md Budget Actions section. |
| Share SP/RI across accounts | Read organizations.md consolidated billing section. |
| EKS cluster too expensive | Read eks.md — start with the audit checklist. |
| Karpenter vs Cluster Autoscaler | Read eks.md. |
| Per-namespace EKS cost attribution | Read eks.md (Kubecost / OpenCost section). |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.