Explanation
Why the waste happens and who it affects.
The host, not the instance, is the unit of billing: an On-Demand Dedicated Host is charged for as long as it is allocated, regardless of how many instances, or what size of instances, run on it.
Over time instances are rightsized, migrated, consolidated or retired, but the hosts they ran on stay allocated. The result is hosts running one or two small instances where they could hold many, or hosts with no running instances at all. Because hosts are never released unless someone releases them, or a License Manager host resource group is configured to release unused hosts, this capacity keeps billing indefinitely. EC2 Mac hosts have their own allocation rules and are covered in a separate entry.
Billing model
The pricing dimensions that drive this cost.
- On-Demand host
- Billed per second with a 60-second minimum for each allocated host, at a rate set by instance family and Region, regardless of the number or size of instances on it
- Release
- Releasing an On-Demand host stops its charges; running instances must be stopped or moved first
- Dedicated Host Reservation
- 1- or 3-year billing discount applied to hosts of one instance family in one AZ; a host associated with a reservation cannot be released until the term ends
- Savings Plans
- Savings Plans can also apply to Dedicated Host usage as a commitment in USD per hour
How to detect
5 checks to find it in your estate.
- Run describe-hosts and, for each host in the available state, compare the Instances list and AvailableCapacity (AvailableInstanceCapacity and AvailableVCpus) with the host's total capacity to find empty or lightly packed hosts
- Flag hosts with no running instances, and hosts whose instances are all stopped, since both are billed in full
- Group hosts by instance family and AZ and check whether the running instances could fit on fewer hosts
- Review License Manager host resource groups and check whether Release hosts automatically is disabled
- Before planning a release, check whether each host is associated with a Dedicated Host Reservation, since reserved hosts cannot be released until the term ends
How to fix
6 ways to remove the waste.
- Consolidate instances onto fewer hosts of the same family, for example by stopping instances and restarting them with host affinity or a target host ID, then release the empty On-Demand hosts with release-hosts
- On Nitro-based host families that support multiple instance sizes, pack mixed instance sizes on the same host instead of keeping a separate host per size
- Add hosts to a License Manager host resource group with Release hosts automatically enabled, so hosts with no running instances are released without manual action
- Confirm that license terms for any bring-your-own-license software allow the move before consolidating instances across hosts
- If hosts were chosen only for dedicated hardware and not for socket- or core-based licensing or placement control, consider Dedicated Instances, which are billed per instance rather than per host
- Size future Dedicated Host Reservations or Savings Plans to the consolidated steady-state host count rather than the current allocation
Documentation
Vendor references for pricing and configuration.