AWS Cloud Practitioner Study Notes · Part 15

Amazon EBS Volume Types: Choosing the Right SSD or HDD

AWS Cloud Practitioner study notes comparing EBS gp3, io2, st1, and sc1 volumes by IOPS, throughput, workload, and cost.

Amazon Elastic Block Store (EBS) gives an Amazon EC2 instance persistent block storage. The difficult part is not attaching a volume; it is choosing a volume type that matches the workload’s access pattern, performance target, and budget.

This is Part 15 of the AWS Cloud Practitioner Study Notes series. Part 12 introduced EBS as block storage, while this note focuses on the main EBS volume families and their exam-friendly use cases.

Start with IOPS or throughput

EBS volume selection becomes easier when you identify the dominant performance requirement:

  • IOPS: how many input/output operations the volume can process per second. This matters for many small or random reads and writes, such as transactional databases.
  • Throughput: how much data the volume can move per second. This matters for large, sequential reads and writes, such as log processing and data warehouses.
  • Latency: how long an individual I/O operation takes. This matters for interactive applications and latency-sensitive databases.

SSD-backed volumes are designed for transactional workloads where IOPS and latency matter. HDD-backed volumes are designed for large streaming workloads where throughput matters more than random I/O performance.

EBS volume typeMediaPrimary performance focusTypical fit
gp3SSDGeneral-purpose IOPS and throughputBoot volumes, applications, development, medium databases
io2SSDProvisioned IOPS and consistent low latencyI/O-intensive and critical databases
st1HDDHigh sequential throughputBig data, data warehouses, log processing
sc1HDDLow-cost sequential throughputInfrequently accessed large datasets

The volume type is only one part of the result. The EC2 instance must also provide enough EBS bandwidth, and the application’s I/O pattern must match the medium.

General Purpose SSD: gp3

gp3 is the normal starting point for many EBS workloads. It is designed for transactional applications, virtual desktops, medium-sized single-instance databases, low-latency interactive applications, boot volumes, and development environments.

The key improvement over the older gp2 model is that gp3 lets you provision volume size, IOPS, and throughput more independently. With gp2, performance is closely tied to the volume size. With gp3, you can avoid making a volume unnecessarily large just to obtain more performance.

Choose gp3 when:

  • The workload needs SSD-style random I/O.
  • The application needs a reliable general-purpose boot or data volume.
  • Performance requirements are important but do not justify specialised provisioned-IOPS storage.
  • You want to tune IOPS and throughput separately from capacity.

Typical examples include:

  • An EC2 root volume
  • A web application with a local database
  • A development or test environment
  • A virtual desktop workload
  • A medium-sized relational database

For a Cloud Practitioner question that says “general purpose,” “boot volume,” “transactional workload,” or “low-latency application,” gp3 is usually the best current answer.

What about gp2?

gp2 is a previous-generation general-purpose SSD type that may still appear in existing environments and exam material. Its IOPS scale with volume size, and smaller volumes can use burst credits. For new designs, gp3 is generally the more flexible general-purpose choice unless a specific compatibility requirement says otherwise.

Provisioned IOPS SSD: io2

io2 is designed for workloads that need sustained, predictable IOPS and consistent low latency. Rather than accepting a general-purpose performance profile, you provision the IOPS that the workload requires.

Use io2 for I/O-intensive workloads such as:

  • Critical relational databases
  • Large transactional systems
  • Workloads with demanding random read and write patterns
  • Applications where storage latency and IOPS consistency are business-critical

io2 Block Express is the high-performance option within the family. AWS documents it as designed for very low average latency with 16 KiB I/O operations. The exact performance available still depends on the EC2 instance and the volume configuration.

The exam distinction is simple:

  • General-purpose SSD: choose gp3.
  • Provisioned, sustained IOPS: choose io2.

Do not choose io2 merely because a database exists. Many databases are a good fit for gp3. Choose provisioned IOPS when the question emphasises high, predictable, or sustained I/O performance.

What about io1?

io1 is another Provisioned IOPS SSD type and remains a supported option in AWS documentation. io2 is the newer generation to consider for new workloads, while io1 may appear when discussing existing deployments or compatibility.

Throughput Optimized HDD: st1

st1 is a magnetic HDD volume designed for frequently accessed workloads that read and write large amounts of data sequentially. Its performance is described primarily in terms of throughput rather than IOPS.

Good fits include:

  • Big-data processing
  • Amazon EMR workloads
  • Data warehouses
  • Log processing
  • Large sequential scans

The important limitation is that st1 is not a general-purpose disk. It is inefficient for small, random reads and writes. AWS also does not support st1 as a boot volume.

Choose st1 when the question emphasises:

  • Large streaming data
  • Sequential I/O
  • Throughput-oriented processing
  • Big data or log processing
  • Lower storage cost than SSD

For example, an analytics job scanning large log files sequentially may benefit from st1. A transactional database issuing many random updates generally should use an SSD-backed volume instead.

Cold HDD: sc1

sc1 is designed for throughput-oriented data that is accessed infrequently and where the lowest storage cost is important. Like st1, it is optimised for large sequential I/O rather than small random requests, and it cannot be used as a boot volume.

Use sc1 for large datasets that must remain available as block storage but are rarely read. The trade-off is lower performance and less frequent access than st1.

The exam comparison is:

  • st1: throughput-oriented data that is accessed frequently.
  • sc1: throughput-oriented data that is accessed infrequently and needs lower storage cost.

Neither is a good answer for a boot disk, a low-latency interactive application, or a database dominated by small random I/O.

SSD versus HDD: a practical decision process

Use this sequence when evaluating a workload:

  1. Is this an EC2 boot volume or an interactive application disk? Start with gp3.
  2. Does the workload require sustained, provisioned IOPS and very low latency? Evaluate io2.
  3. Does it process large data sequentially? Consider st1 or sc1.
  4. Is the sequential dataset accessed frequently? Choose st1.
  5. Is it accessed infrequently and cost is the priority? Choose sc1.
  6. Is the instance large enough to deliver the volume’s potential performance? Check the EC2 instance’s EBS bandwidth.

The last question matters because a high-performance volume cannot exceed the bandwidth available from the attached instance. A volume configuration that looks fast on paper may be bottlenecked by the compute instance or by the application itself.

Common exam scenarios

A boot volume for an EC2 instance

The operating system needs a general-purpose block device with low-latency access. Choose gp3.

A high-performance transactional database

The database needs sustained, predictable IOPS and consistent low latency. Choose io2.

A log-processing pipeline

The workload reads and writes large log streams sequentially and values throughput over random I/O. Choose st1.

A rarely accessed large dataset

The data still needs block-storage access, but it is accessed infrequently and storage cost is the priority. Choose sc1.

A small random-I/O workload on HDD

This is a mismatch. HDD volumes are optimised for large sequential I/O. Choose an SSD-backed type such as gp3 instead.

EBS volume type memory aid

Remember the families this way:

  • gp3 = general purpose SSD
  • io2 = IOPS you intentionally provision
  • st1 = sequential throughput, accessed regularly
  • sc1 = sequential throughput, accessed less often and cheaper

Also remember that st1 and sc1 are not boot volumes, while gp3 is the normal boot-volume answer.

Conclusion

Choose EBS volume types according to the I/O pattern, not simply the amount of storage required. gp3 is the flexible SSD default for many EC2 workloads. io2 is for sustained, provisioned IOPS and critical low-latency workloads. st1 is for frequently accessed sequential throughput, while sc1 is for colder sequential data at a lower storage cost.

For the exam, identify whether the question is about IOPS or throughput first. Then check whether the data is frequently or infrequently accessed, and whether the volume needs to boot an EC2 instance.

Sources

Back to the journal