- Now lets talk about instance store volumes.
With EC2, some EC2 instances include
instance store volumes, right?
So it's worth noting that not every instance type
does include instance based volumes.
There are several different instance types that only use EBS
but for those that do include instance volumes
they are included with the instance,
and again they are powered by the physical host.
So remember that when we get an instance
on EC2, this is a virtual machine,
usually a virtual machine, and that virtual machine
is powered by a physical host.
So for those instance types that include
instance store volumes, those volumes are powered
by the physical host, it goes straight
through the hypervisor, to the actual disk
that's right there in the same chassis.
There's no network latency, it's straight through.
So as a result, we can see a very, very high degree
of IOPs, in many cases beyond 100,000 IOPs.
So if you have very intensive applications
that need a very high degree of IOPs,
then you can look to instance store volumes
to solve that, but keep in mind again they are ephemeral.
So EC2 instance, they can be stopped
and then started again later, they can be terminated
and then relaunched anew, and either way
it's very likely that an instance
that is stopped and started will come back
to life on a different host, and because it's on
a different host, the storage volume is not there.
So there's also no ability to perform snapshots,
so between the ephemeral nature in those snapshots
there is really no durability built in.
There is absolutely no inherent durability
to that storage volume.
So the trade-off is that we get
really high IOPs with no durability.
If durability is important, if you need persistence
in your data, if you need some inherent durability,
then we would look to EBS, but there are plenty
of use cases where ephemeral storage may make sense.
One example might be that you are performing
some type extract, transform, and load operation.
Maybe you are extracting data from some data source
and now you have this very large dataset,
and you're doing some type of a transform
or an analysis on it that requires a lot of random IO
before shipping it somewhere else.
You could have some type of a high performing database
that, such as Mongo or Cassandra, running on EC2,
and you want access to that high IOPs instance store volume.
In that regard, you could achieve durability
by leveraging replication, and by replicating
those datasets between two or three different machines,
then you can solve the durability issue
in that if you lost one machine, you would still have
another, some number of machines, two or three or whatever.
So let's take a look at a few instance
store volume examples here, and you'll notice here,
and this is by no means an exhaustive list,
this is just a small sample to give you an idea
of what's possible, with certain instances, let's say
the m3.large for example, some instances
may come with only one volume.
So here the m3.large comes with one 32GB SSD volume.
Other instances may come with two volumes.
So the c3.large comes with two 16GB SSD volumes,
and in that regard you can treat them as two
separate volumes and use them for two different purposes,
or you could include them in a RAID configuration
or include them within a logical volume manager
and use them as a single volume.
Some of the other instances that are available,
and you'll notice here that we have the d2.8xlarge,
this particular instance comes with 24 2TB volumes.
So if you were to RAID those, you could end up with
48TB worth of storage, and of course in that instance
that is using hard disks rather than SSDs.
Now the later ones, the ones that I'm most
excited about recently, would be the 5D instances.
The C5D, M5D, and R5D series
generally come with some number of volumes.
Some come with one, some come with two or four,
but they're all, the D series come with NVMe SSDs,
so these are going to be the fastest, most highly performing
volumes that you can get for instance store volumes.
So the takeaway here is that if you do have an application,
or some type of a use case or workload that needs
a very high degree of IOPs, and you're willing
to make the trade-off in durability,
then take a look at the instance store volumes.