| account-wide |
After the EC2 rightsizing and idle findings, about $14,379/mo of steady On-Demand usage remains. Purchase a 1-year No Upfront Compute Savings Plan at $10.07/hr to cover 70% of it at about 27% below On-Demand |
Right-Size |
Low |
7••••••3847 |
$2,717.67 |
| i-0a1b****7890 |
Rightsize to m5.large ($0.096/hr, $70.08/mo); maintains headroom for peak usage while cutting costs 75% |
Right-Size |
Medium |
3••••••9921 |
$210.24 |
| i-0b2c****901a |
Rightsize to r5.xlarge ($0.252/hr, $183.96/mo); massively overprovisioned |
Right-Size |
Medium |
3••••••9921 |
$551.88 |
| i-0c3d****1ab2 |
Rightsize to c5.xlarge ($0.170/hr, $124.10/mo) |
Right-Size |
Medium |
7••••••3847 |
$372.30 |
| i-0f7b****8e21 |
Rightsize to m5.2xlarge ($0.384/hr, $280.32/mo) |
Right-Size |
Medium |
7••••••3847 |
$840.96 |
| i-0d4e****b23c |
Terminate if no longer needed, or rightsize to t3.medium ($0.0416/hr, $30.37/mo) |
Right-Size |
Low |
7••••••3847 |
$109.79 |
| snap-0abc****789a |
Disable Fast Snapshot Restore on this snapshot |
Right-Size |
VeryLow |
4••••••1200 |
$1,642.50 |
| app-api-service |
Reduce to 4 tasks of 2 vCPU / 4 GB ($288.32/mo), which still leaves headroom above today's peak |
Right-Size |
Medium |
3••••••9921 |
$576.64 |
| app-worker-service |
Reduce memory to 4 GB per task (Fargate charges $0.004445 per GB-hour) |
Right-Size |
Low |
3••••••9921 |
$51.92 |
| app-prod-primary |
Purchase a 1-year No Upfront RDS Reserved Instance for db.r6g.2xlarge Multi-AZ ($1.0388/hr), 42% below On-Demand |
Right-Size |
Low |
4••••••1200 |
$554.22 |
| app-prod-vpc |
Create S3 and DynamoDB Gateway Endpoints (free) and update route tables to eliminate NAT Gateway data processing charges |
Right-Size |
Low |
7••••••3847 |
$540.00 |
| app-api-fleet (8 instances) |
Migrate to m7g.xlarge (ARM64/Graviton3). Test application compatibility first; most Linux workloads run without changes |
Right-Size |
High |
9••••••4455 |
$168.19 |
| app-audit-logs |
Switch to DynamoDB Standard-IA table class for 60% storage savings |
Right-Size |
VeryLow |
9••••••4455 |
$112.50 |
| app-session-cache-001 |
Purchase a 1-year No Upfront reserved node for cache.r6g.xlarge ($0.281/hr), 32% below On-Demand |
Right-Size |
Low |
4••••••1200 |
$94.90 |
| /aws/lambda/app-data-processor |
Set retention to 30 or 90 days depending on compliance requirements |
Right-Size |
VeryLow |
4••••••1200 |
$25.50 |
| /aws/ecs/app-api-service |
Set retention to 30 or 90 days |
Right-Size |
VeryLow |
7••••••3847 |
$36.00 |
| app-data-lake-raw |
Enable S3 Intelligent-Tiering to automatically move infrequently accessed objects to cheaper tiers (IA tier is $0.0125/GB/mo) |
Right-Size |
Low |
7••••••3847 |
$36.13 |
| app-event-processor |
Switch log level to WARN or ERROR in production to reduce ingestion by ~90% |
Right-Size |
VeryLow |
3••••••9921 |
$20.25 |
| i-0e1a****3c01 |
Stop or terminate this instance; it has done no work since the load test ended |
Idle & Unused |
Low |
3••••••9921 |
$496.40 |
| i-0e1a****3c02 |
Stop or terminate this instance; it has done no work since the load test ended |
Idle & Unused |
Low |
3••••••9921 |
$496.40 |
| i-0e1a****3c03 |
Stop or terminate this instance; it has done no work since the load test ended |
Idle & Unused |
Low |
3••••••9921 |
$496.40 |
| i-0e1a****3c04 |
Stop or terminate this instance; it has done no work since the load test ended |
Idle & Unused |
Low |
3••••••9921 |
$496.40 |
| app-analytics-cluster |
Stop or delete this cluster. If needed periodically, consider migrating to Aurora Serverless v2 |
Idle & Unused |
Medium |
4••••••1200 |
$757.74 |
| app-ml-inference-v2 |
Delete this endpoint. If the model is needed occasionally, use SageMaker Serverless Inference instead |
Idle & Unused |
Medium |
7••••••3847 |
$167.90 |
| vol-0abc****789a |
Snapshot this volume for backup and then delete it to stop incurring storage charges |
Idle & Unused |
VeryLow |
3••••••9921 |
$50.00 |
| vol-0def****456b |
Snapshot and delete this volume |
Idle & Unused |
VeryLow |
3••••••9921 |
$20.00 |
| vol-0789****456c |
Snapshot and delete this volume; likely left behind after an instance termination |
Idle & Unused |
VeryLow |
9••••••4455 |
$81.92 |
| app-session-cache-002 |
Delete this cluster if no longer needed, or downsize to cache.t4g.micro for minimal workloads |
Idle & Unused |
Medium |
3••••••9921 |
$150.38 |
| 47 unused AMIs |
Deregister old AMIs and delete backing snapshots. Keep only the 3 most recent versions per application |
Idle & Unused |
Low |
7••••••3847 |
$115.00 |
| nat-0a1b****7890 |
Delete this NAT Gateway or move resources to a public subnet if they need internet access |
Idle & Unused |
Medium |
7••••••3847 |
$32.40 |
| nat-09f8****3210 |
Delete this NAT Gateway immediately; it is completely unused |
Idle & Unused |
Low |
7••••••3847 |
$32.40 |
| app-staging-alb |
Consider deleting this ALB or consolidating with another load balancer to avoid unnecessary costs |
Idle & Unused |
Low |
3••••••9921 |
$22.27 |
| app-legacy-api-alb |
Delete this unused ALB; it appears to be left over from a decommissioned service |
Idle & Unused |
VeryLow |
4••••••1200 |
$22.27 |
| vpce-0abc****789a |
Delete this VPC endpoint if SQS access can go through the NAT Gateway or if the service is no longer used |
Idle & Unused |
Low |
7••••••3847 |
$21.90 |
| j****h@company.com |
Downgrade to Reader ($5/month) or remove this user |
Idle & Unused |
VeryLow |
3••••••9921 |
$19.00 |
| app-legacy-trail |
Delete this duplicate trail to eliminate redundant S3 storage and CloudTrail charges |
Idle & Unused |
Low |
7••••••3847 |
$15.00 |
| eipalloc-0a1b****789a |
Release this Elastic IP to stop incurring the idle charge |
Idle & Unused |
VeryLow |
4••••••1200 |
$3.65 |
| eipalloc-0b2c****9ab1 |
Release this Elastic IP |
Idle & Unused |
VeryLow |
7••••••3847 |
$3.65 |
| app-dev-database |
Migrate to Aurora Serverless v2 to scale to zero during idle periods and pay only for actual ACU usage |
Modernization |
High |
7••••••3847 |
$126.36 |
| app-reporting-db |
Upgrade to db.r7g.xlarge during the next maintenance window. PostgreSQL 13 is fully compatible with Graviton |
Modernization |
Medium |
3••••••9921 |
$16.06 |
| app-prod-cluster |
Upgrade to a supported Kubernetes version (1.32 or later) to avoid extended support charges and maintain security updates |
End-of-Life |
Medium |
7••••••3847 |
$365.00 |
| app-staging-cluster |
Upgrade to a supported Kubernetes version (1.32 or later) to avoid extended support charges and maintain security updates |
End-of-Life |
Medium |
3••••••9921 |
$365.00 |
| app-data-processor |
Upgrade to a supported runtime version to maintain security patches and avoid blocked deployments |
End-of-Life |
High |
3••••••9921 |
$0.00 |
| app-auth-handler |
Upgrade to a supported runtime version to maintain security patches and avoid blocked deployments |
End-of-Life |
High |
9••••••4455 |
$0.00 |
| app-image-resizer |
Upgrade to a supported runtime version to maintain security patches and avoid blocked deployments |
End-of-Life |
Medium |
7••••••3847 |
$0.00 |