- Newest
- Most votes
- Most comments
My understanding is, since Cost Explorer won't show granular data if your usage is covered by free credits. When looking directly at the Bills page, you are seeing a different set of aggregation rules.
Based on your description (50 minutes actual runtime vs. 2.017 hours billed), this discrepancy is almost certainly caused by one of the following two reasons:
1. An Active Spot Request When you launch a Spot Instance, AWS actually creates a Spot Instance Request. If you only terminated the EC2 instance itself but did not cancel the underlying Spot Request, AWS assumes you still want capacity and will automatically provision a new instance in the background. Your first instance ran for 50 minutes, but a second instance likely spun up and ran for another ~71 minutes before being interrupted or manually stopped.
- How to check: Go to your EC2 Console, click on Spot Requests in the left navigation pane, and make sure there are no active requests still open. Terminating an instance does not automatically cancel a persistent spot request.
2. Monthly Aggregation on the Bills Page
The Bills page does not show per-session usage. It shows the cumulative, aggregated usage for a specific SKU (in this case, g6.xlarge spot usage) for the entire calendar month.
Did you run a g6.xlarge instance earlier this month for about 1 hour and 10 minutes? If so, your recent 50-minute session was simply added to that existing total, resulting in the 2.017 hours you see now.
Try the following via CloudTrail:
Since you are already using CloudTrail, I highly recommend filtering your Event History for the Event names RunInstances and RequestSpotInstances, rather than just TerminateInstances. This will show you exactly how many times an instance was actually launched, which will likely explain the missing hour.
The discrepancy you're seeing between your actual EC2 instance runtime and what appears in Cost Explorer can occur due to how charges are grouped and displayed in different AWS billing tools.
Cost Explorer and your AWS invoice may show charges differently, particularly when it comes to how costs are aggregated. By default, Cost Explorer might be displaying costs in a way that combines multiple charge types or usage categories together, which could make the hours appear inflated.
To get a more accurate view of your EC2 instance usage hours in Cost Explorer, try adjusting your settings:
- Set the cost aggregation to "Unblended Costs" in the Advanced options
- Set the Dimension to "Charge Type"
- Apply filters to include only the specific EC2 services you want to see (like EC2-Instances)
- Exclude Data Transfer related usage types, as these are sometimes bundled with instance charges in Cost Explorer but shown separately on invoices
Additionally, be aware that different billing features may round cost data differently or have different data refresh settings, which can lead to apparent discrepancies. The way charges are grouped can vary between the Bills page and Cost Explorer.
If after adjusting these settings you still see a significant mismatch between your CloudTrail timeline and the usage hours shown, you may want to review your cost data through the AWS Support Center to ensure the charges are accurate.
Sources
Why don't AWS invoice service charges match AWS Cost Explorer or AWS Cost and Usage Report charges? | AWS re:Post
Troubleshooting Cost and Usage Reports - AWS Data Exports
Relevant content
asked 2 years ago
- AWS OFFICIALUpdated a year ago

The cost explorer shows nothing, maybe because I'm on free credits. So applying advanced options does nothing.