- Newest
- Most votes
- Most comments
In an attempt to clarify your questions:
The report is a point-in-time report, with some caveats around recently launched or terminated instances. That means that there isn't really such a thing as a time window considered, the report will represent the best knowledge available to the tool at precisely the time the report is generated.
Regarding what states are included in the reporting, the documentation is as you've noticed a bit vague. The closely related AMI Reference Check gives us some hints, though, through its state-name scoping option:
| Scoping Option | Default Values |
|---|---|
state-name for EC2 instances | pending, running, shutting-down, terminated, stopping, stopped |
A conjecture would therefore be that also the AMI Usage Report would include all the states including the transient ones. Note that it takes about an hour for metadata to be purged from DescribeInstances, so that's about how long terminated instances would still be expected to show up in the report.
If you want to get an accurate, real-time count that you can optionally scope by instance state (and if you've only got a limited number of accounts to work with), you could consider directly using the AMI Reference Check instead:
# Count only running + stopped instances referencing the AMI
aws ec2 describe-image-references \
--image-ids ami-0abcdef1234567890 \
--resource-types \
'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,stopped]}]'
Based on the available AWS documentation, the AMI usage reports are designed to provide visibility into which AWS accounts are using your AMIs and how much each AMI is being used. The primary purpose is to help you identify AWS accounts and resource types referencing your AMIs so you can safely deregister or disable AMIs, identify unused AMIs for deregistration to reduce storage costs, and identify your most used AMIs.
However, the specific internal calculation methodology for the usage count is not detailed in the available documentation. The documentation does acknowledge that "instance activity from the past 24 hours might not appear in the report," which indicates there is a data collection and processing lag, but it doesn't provide explicit details about:
- The exact algorithm or methodology used to calculate the usage count
- Which specific instance states (running, stopped, terminated) are included in the count
- The complete time window of data coverage beyond the 24-hour lag mentioned
For precise clarification on these technical details about how the usage count is calculated internally, which instance states are included, and the full data window covered by the report, I recommend reaching out to AWS Support directly. They can provide authoritative information about the specific implementation details of the AMI usage reporting feature that may not be publicly documented.
In the meantime, you can use the AMI usage reports in conjunction with other AWS features like last used tracking and AMI reference checks to get a more complete picture of your AMI usage across your AWS environment.
Sources
Manage and monitor AMI usage - Amazon Elastic Compute Cloud
Relevant content
- asked a year ago
- asked a year ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 4 years ago

Thank you for the clarification, that helps a lot. @johanstaring
In our case the AMIs are shared with external accounts that we don't have access to. The AMI usage report doesn't seem to help here either since it doesn't give an accurate count of running instances.
Is there any way to accurately track running instances launched from our shared AMIs in those external accounts, from our side only without requiring any access or cooperation from the consumer accounts?