What's the difference between the two? It seems as if using an instance store the root drive is ephemeral and EBS isn't in the event of a termination. But, if you're not terminating does it matter? Could someone compare EBS with instance-store and termination turned off? What are the practical differences?
There are several differences, but the most concerning one is that with instance store, if the host crashes, your root volume is gone. With EBS, it resides on different (and redundnat) hardware, so the volume would stick around and you could restart the instance.
Here are some reasons I recommend EBS boot to people who are just starting out with EC2:
If the instance hardware fails, the EBS volume remains accessible.
EBS boot instances can be stopped and restarted at will.
When something goes wrong with an EBS boot instance so you cannot connect, you can still view and modify or fix the EBS root volume.
EBS boot instances can be run with a root disk larger than 10GB.
It is possible to grow the size of the root disk of an EBS boot instance.
It is possible to change the instance type of an EBS boot instance.
You can easily replace the hardware of an EBS boot instance.
EBS boot AMIs are simpler and faster to create than instance-store AMIs.
Amazon has stated that EBS boot AMIs boot up faster than instance-store AMIs
The t1.micro instance type only supports EBS boot instances.
I go into more detail and provide links to in depth explanations about many of these points in this article:
There are some valid reasons for using instance-store, but you need to understand what you are giving up and how to compensate for the added risks.
Note: In your question, it seems that you believe an EBS boot disk survives an instance being deliberately terminated. By default, this is not true and if you terminate an EBS boot instance, the root disk is deleted. You can change this default so that the EBS boot disk is preserved on termination, but it takes an active choice. I write about that in this article:
Imagine if you had updates that required a reboot or the server locked and you needed to reboot. EBS is better if you want the instance to store any data/configuration changes to the instance.
However, we are using both. Our web servers use EBS because we expect configurations located on the ebs image and they do frequently need rebooted. Even amazon requires you to reboot when updates are applied to their hosts.
However, with the instance store we have a streaming infrastructure which actually passes the user_data which is our custom configuration. When we are done will kill the server. When we need it again we bring up the instance store and pass it the configuration.