The # of Instance Hours dimension is calculated based on # of Instances * (24/168/730) depending on the interval.
The Number of Instance hours is # of Instances * 24 = Instance Hours.
Here "# Instances" is not actually the number of unique instances running in that month.
The "# Instances" Y-Axis option on the monthly EC2 Usage report is designed to show the # of units worth of fully utilized instances in the month and does not show the # of unique instances running in the month.
The "# instances" in this report is the total number of instance hours run so far in the month divided by the total number of hours in the month.
For all time intervals of the EC2 instance usage report, the "# of instances" figure is an average for that interval.
For daily, it's the total number of instance hours run in that day divided by 24.
For monthly, it's the total number of instance hours run so far in the month divided by the total number of hours in the month.
The hourly and weekly intervals work in a similar fashion.
Please find below link for reference:
EC2 Instance Usage Reporting
Also when reviewing your Amazon EC2 usage, consider the following:
Hence you are always billed for only the number of hours / seconds the instance is started—that is, when the instance enters the running state.