What is the difference between an Amazon dedicated instance and a dedicated host?
Amazon has two types of "dedicated" infrastructure: dedicated instances, and dedicated hosts. They say:
When you launch instances on a Dedicated Host, the instances run on a physical server that is dedicated for your use. While Dedicated instances also run on dedicated hardware, Dedicated Hosts provide further visibility and control by allowing you to place your instances on a specific, physical server. This enables you to deploy instances using configurations that help address corporate compliance and regulatory requirements. [Italics mine.]
I find this unclear. It doesn't explain what the difference is between dedicated hardware and physical server. What is the actual physical difference between these two "dedicated offerings"?
Short version:
Dedicated Instances - You pay for the instances, but they get placed on whatever dedicated hardware Amazon decides.
Dedicated Host - You pay for the entire physical server and can, in effect, run instances on it as you please.
Long version:
In both cases, its hardware that only your instances will use. However with dedicated hosts you have even more control than you would with dedicated instances. For example: Requesting a m4.large dedicated instance could end with your instance on a server exactly the size of an m4.large, so it'd be an old machine from years ago. Next time you reboot that instance it could be rebalanced onto new hardware. Maybe you have two dedicated instances that hammer the heck out of the RAM (making something up), they could end up on two different pieces of hardware or the same hardware.
On the flip side with a dedicated hardware, you pay for the hardware much in the same way you could pay for a leased server at a colo. You know exactly what the hardware is, you can run instances on it in the way you choose. You can leave overhead, or not. If you decide that instance X runs on your dedicated hardware, it will always run on that dedicated hardware in the way you've specified.
Dedicated instances ensure all of your instances run on single tenant hardware.
Dedicated hosts allow you more control on where your dedicated instances run. It's primarily to make "bring your own license" and compliance easier.