You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Anomaly Detection Timeline
Nov 2025 ──●────●────●────●────●────●──── 6 anomalies
Dec 2025 ──●────●────●────●────●────●────●────●──── 8 anomalies
Jan 2026 ──●────●────●────●────●────●──── 6 anomalies (MTD)
│
└── Total Impact: $9,124.74
Likely Root Causes
🔴 High Priority Investigation
graph TD
A[Cost Spike Nov 2025] --> B{What Changed?}
B --> C[New EC2 Instances?]
B --> D[Larger Instance Types?]
B --> E[24/7 Running Instances?]
B --> F[Data Transfer Spike?]
C --> G[Check: aws ec2 describe-instances]
D --> H[Check: Instance type distribution]
E --> I[Check: Uptime vs business hours]
F --> J[Check: CloudWatch network metrics]
Loading
Common Causes of EC2 Cost Spikes
Cause
Likelihood
How to Check
Forgotten dev/test instances
⭐⭐⭐⭐⭐
EC2 Console → Running instances
GPU instances left running
⭐⭐⭐⭐
Filter by instance type (p*, g*)
Auto-scaling gone wild
⭐⭐⭐
Check ASG desired vs actual capacity
Large EBS volumes
⭐⭐⭐
EC2 → Volumes → Sort by size
Cross-region data transfer
⭐⭐⭐
Cost Explorer → Group by Usage Type
NAT Gateway traffic
⭐⭐
VPC → NAT Gateways → CloudWatch
Recommended Actions
Immediate (This Week)
Review the 6 active cost anomalies - Click "View cost anomalies" in AWS Console
Audit running EC2 instances - Identify any that can be stopped/terminated
Check for GPU instances - These cost $1-30+/hour depending on type
Review unused Elastic IPs - Each unattached EIP costs ~$3.65/month
Short-term (This Month)
Enable Cost Allocation Tags - Tag resources by project/team/environment
Set up AWS Budgets - Get alerts before costs spike
Consider Reserved Instances - Save 30-60% on predictable workloads
Implement auto-stop for dev instances - Use Lambda + CloudWatch Events
AWS CLI Commands to Investigate
# List all running EC2 instances with their types and launch times
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[*].Instances[*].[InstanceId,InstanceType,LaunchTime,Tags[?Key==`Name`].Value|[0]]' \
--output table
# Find large/expensive instance types
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[*].Instances[*].[InstanceType]' \
--output text | sort | uniq -c | sort -rn
# List EBS volumes sorted by size
aws ec2 describe-volumes \
--query 'Volumes[*].[VolumeId,Size,State,VolumeType]' \
--output table
# Find unattached EBS volumes (wasting money)
aws ec2 describe-volumes \
--filters "Name=status,Values=available" \
--query 'Volumes[*].[VolumeId,Size,CreateTime]' \
--output table
# List Elastic IPs not attached to instances
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==`null`].[PublicIp,AllocationId]' \
--output table
Free Tier Alert
⚠️You have exceeded 85% of Free Tier limits for 8 services.
This won't be a major cost driver given your spend level, but review these to avoid unexpected charges on smaller services.
Summary
Finding
Impact
Action
EC2 costs tripled since October
~$15K/month increase
Audit running instances immediately
6 active cost anomalies
Unknown
Review in Cost Anomaly Detection
Bedrock usage growing
~$2-3K/month
Review if usage is expected
No budget alerts set up
Risk of surprise bills
Configure AWS Budgets
Report generated from AWS Cost Explorer data. For detailed breakdown, use Cost Explorer with grouping by Instance Type, Usage Type, and Tags.