Real scan — anonymized data
CostPatrol found $6,496/mo
in savings — across 4 AWS regions
We scanned a production SaaS account across us-east-1, us-east-2, eu-west-2, and us-west-2. 56 optimization opportunities across 4 rules — dominated by database cluster sprawl.
$6,496/mo in waste. Found in under 2 minutes.
A SaaS company was running 17 Aurora PostgreSQL clusters across 4 regions. Only 3 were needed. CostPatrol flagged 56 findings automatically. No manual audit required.
Check your accountTotal savings
$6,496/mo
$3,879 - $6,496
Findings
56
Rules matched
4
Regions scanned
4
Every finding, with exact fix commands
56 optimization opportunities across 4 rules and 4 regions. Real dollar amounts. Anonymized resource names.
RDS Cluster Sprawl
RDS-O005 · 17 clusters across 2 regions
$2,192 - $3,132/mo
9x Aurora PostgreSQL clusters (us-east-1)
$1,169 - $1,670/mo
9 clusters · $1,879.20/mo total · Each microservice running its own dedicated cluster
→ Consolidate 9 Aurora PostgreSQL clusters into 1 shared cluster with separate schemas
- svc_auth_db_production
- svc_billing_db_production
- svc_catalog_db_production
- svc_notify_db_production
- svc_orders_db_production
- svc_search_db_production
- svc_users_db_production
- svc_inventory_db_production
- svc_payments_db_production
# 1. Create final snapshots of each cluster $ aws rds create-db-cluster-snapshot \
--db-cluster-identifier svc-auth-dbcluster-prod \
--db-cluster-snapshot-identifier svc-auth-final-snapshot
# 2. Export data using pg_dump $ pg_dump -h svc-auth-dbcluster-prod.cluster-xxxx.us-east-1.rds.amazonaws.com \
-U admin -d svc_auth_db_production > svc_auth_backup.sql
# 3. Import into shared cluster as separate schema $ psql -h shared-cluster-prod.cluster-xxxx.us-east-1.rds.amazonaws.com \
-U admin -c "CREATE SCHEMA svc_auth;"
$ psql -h shared-cluster-prod.cluster-xxxx.us-east-1.rds.amazonaws.com \
-U admin -d shared_production < svc_auth_backup.sql
# 4. Repeat for all 9 clusters, then delete originals
8x Aurora PostgreSQL clusters (us-east-2)
$1,023 - $1,462/mo
8 clusters · $1,670.40/mo total · Same pattern: one cluster per microservice
→ Consolidate 8 Aurora PostgreSQL clusters into 1 shared cluster with separate schemas
- svc_analytics_db_production
- svc_shipping_db_production
- svc_pricing_db_production
- svc_reviews_db_production
- svc_checkout_db_production
- svc_messaging_db_production
- svc_reports_db_production
- svc_support_db_production
# Same consolidation process as above for us-east-2 clusters $ aws rds create-db-cluster-snapshot \
--db-cluster-identifier svc-analytics-dbcluster-prod \
--db-cluster-snapshot-identifier svc-analytics-final-snapshot
# Repeat snapshot → export → import → delete for all 8 clusters
Idle RDS Instances
RDS-O001 · 16 resources across 4 regions
$1,670 - $3,341/mo
svc-auth-dbcluster-prod-1
$104 - $209/mo
us-east-1 · Aurora PostgreSQL · $208.80/mo · Zero active connections
→ Stop, downsize, or delete low-utilization RDS instance
# Option 1: Snapshot and delete $ aws rds create-db-cluster-snapshot \
--db-cluster-identifier svc-auth-dbcluster-prod \
--db-cluster-snapshot-identifier svc-auth-dbcluster-prod-final
$ aws rds delete-db-instance --db-instance-identifier svc-auth-dbcluster-prod-1 --skip-final-snapshot
# Option 2: Stop instance $ aws rds stop-db-instance --db-instance-identifier svc-auth-dbcluster-prod-1
svc-analytics-dbcluster-prod-1
$104 - $209/mo
us-east-2 · Aurora PostgreSQL · $208.80/mo · Zero active connections
→ Stop, downsize, or delete low-utilization RDS instance
$ aws rds stop-db-instance --db-instance-identifier svc-analytics-dbcluster-prod-1
svc-fulfillment-dbcluster-prod-1
$104 - $209/mo
eu-west-2 · Aurora PostgreSQL · $208.80/mo · Zero active connections
→ Stop, downsize, or delete low-utilization RDS instance
$ aws rds stop-db-instance --db-instance-identifier svc-fulfillment-dbcluster-prod-1
svc-media-dbcluster-prod-1
$104 - $209/mo
us-west-2 · Aurora PostgreSQL · $208.80/mo · Zero active connections
→ Stop, downsize, or delete low-utilization RDS instance
$ aws rds stop-db-instance --db-instance-identifier svc-media-dbcluster-prod-1
and 12 more idle RDS instances across 4 regions — $1,253 - $2,506/mo in additional savings
Previous-Generation Instance Types
EC2-O001 · 20 resources across 4 regions
$14 - $21/mo
i-0a1b2c3d4e5f0001
$0.69 - $1.04/mo
us-east-1 · t2.micro · stopped · $8.35/mo
→ Upgrade to t3.micro (better price/performance, Nitro-based)
$ aws ec2 stop-instances --instance-ids i-0a1b2c3d4e5f0001
$ aws ec2 modify-instance-attribute --instance-id i-0a1b2c3d4e5f0001 --instance-type '{"Value":"t3.micro"}'
$ aws ec2 start-instances --instance-ids i-0a1b2c3d4e5f0001
i-0a1b2c3d4e5f0010
$0.69 - $1.04/mo
us-east-2 · t2.micro · stopped · $8.35/mo
→ Upgrade to t3.micro (better price/performance, Nitro-based)
$ aws ec2 modify-instance-attribute --instance-id i-0a1b2c3d4e5f0010 --instance-type '{"Value":"t3.micro"}'
i-0a1b2c3d4e5f0018
$0.69 - $1.04/mo
eu-west-2 · t2.micro · stopped · $8.35/mo
→ Upgrade to t3.micro (better price/performance, Nitro-based)
$ aws ec2 modify-instance-attribute --instance-id i-0a1b2c3d4e5f0018 --instance-type '{"Value":"t3.micro"}'
and 17 more previous-generation t2.micro instances across 4 regions
Lambda Memory Right-Sizing
LAM-O002 · 18 resources across 4 regions
$2 - $3/mo
svc-inventory-handler-prod
$0.08 - $0.11/mo
us-east-1 · 1024MB allocated · 190MB peak usage · $0.14/mo
→ Reduce memory from 1024MB to 256MB (75% reduction, still 35% headroom)
$ aws lambda update-function-configuration \
--function-name svc-inventory-handler-prod \
--memory-size 256
svc-reports-handler-prod
$0.36 - $0.45/mo
us-east-2 · 1024MB allocated · $0.90/mo
→ Reduce memory from 1024MB to 256MB
$ aws lambda update-function-configuration \
--function-name svc-reports-handler-prod \
--memory-size 256
svc-support-handler-prod
$0.34 - $0.43/mo
us-east-2 · 1024MB allocated · $0.86/mo
→ Reduce memory from 1024MB to 256MB
$ aws lambda update-function-configuration \
--function-name svc-support-handler-prod \
--memory-size 256
and 15 more over-provisioned Lambda functions across 4 regions
What AWS Cost Explorer misses
AWS Cost Explorer
Shows $3,549/mo in RDS spend — with no per-cluster breakdown
Tells you "RDS costs went up" — not which clusters are idle
Cannot detect that 17 clusters could be consolidated into 2
No consolidation plan — you're on your own
CostPatrol
Exact cluster name, region, utilization, and savings per instance
"17 Aurora clusters — each microservice has its own $208/mo cluster"
Consolidation plan: merge 9 into 1, merge 8 into 1
Step-by-step commands to snapshot, export, and consolidate
AWS tells you RDS costs went up. CostPatrol tells you that 17 microservice databases — each running their own $208/mo Aurora cluster — could be consolidated into 2, saving up to $3,132/mo.
You've been meaning to do this.
It takes 2 minutes. If there's nothing to find, you lost a coffee break.