EBS Introduction

“Amazon EBS provides a range of volume types that allow you to optimize storage performance and cost for your workload. These volume types are divided into two major categories: SSD-backed storage for transactional workloads, such as databases and boot volumes, and HDD-backed storage for throughput intensive workloads, such as MapReduce and log processing.”

EBS stands for Elastic Block Storage and what it is, is simply a service that provides storage for your servers. There are a few types of volumes you can create.

  1. io2: For critical, I/O intensive database and application workloads, as well as throughput-intensive database and data warehouse workloads, such as HBase, Vertica, and Cassandra.
  2. gp2: Default EBS volume type for Amazon EC2 instances. These volumes are backed by solid-state drives (SSDs) and are suitable for a broad range of transactional workloads, including dev/test environments, low-latency interactive applications, and boot volumes.
  3. st1: backed by hard disk drives (HDDs) and is ideal for frequently accessed, throughput-intensive workloads with large datasets and large I/O sizes, such as MapReduce, Kafka, log processing, data warehouse, and ETL workloads. 
  4. sc1: backed by hard disk drives (HDDs) and provides the lowest cost per GB of all EBS volume types

Performance

Now the performance in these drives is measured in IOPS (Input/Output Operations Per Second) and the throughput is measured in MB/s. There is a credit system, so you continuously (but slowly) get credits that get added to your account and you can use those credits as per your needs. There is a max IOPS system per volume. You can get burst speeds as well but those will (as you may have guessed) deplete your credits more quickly.

There are 4 EBS services provided, 2 are SSDs and 2 are HDDs.

SSD Based Volumes

io2 provides 50 IOPS/GB with a maximum of 64000 IOPS (per volume) and up to 1,000 MB/s of throughput per volume. 

use cases: I/O intensive database and application workloads, throughput intensive database & data warehouse workloads e.g. HBase, Verica Cassandra.

gp2 on the other hand provides 3 IOPS/GB (minimum 100 IOPS) to a maximum of 16,000 IOPS (per volume), much less that io2 as this is more general purpose and up to 250 MB/s of throughput per volume.

Use cases: dev/test environments, low-latency interactive applications, and boot volumes

HDD Based Volumes

Here the performance is measured in MB/s.

st1 provides burst performance up to 250 MB/s per TB, with a baseline throughput of 40 MB/s per TB and a maximum throughput of 500 MB/s per volume. 

Use cases: large datasets and large I/O sizes e.g. MapReduce, Kafka, log processing, data warehouse, ETL processing.

sc1 provides burst up to 80 MB/s per TB, with a baseline throughput of 12 MB/s per TB and a maximum throughput of 250 MB/s per volume.

You cannot use HDD as a boot volume, that is you can’t have your OS on here.

That’s all folks! Head over in the comments to share any updates or changes that happen, or just to say hi! I see you later, bye 👋