Reading35 min read·Module 3High exam weight

Amazon EBS Volume Types & IOPS

Key concepts

  • gp3 vs gp2

  • io2 Block Express

  • st1 and sc1 for throughput

  • IOPS vs throughput

  • EBS-optimized instances

Overview

Amazon Elastic Block Store (EBS) provides persistent block storage volumes for use with Amazon EC2 instances. Choosing the right EBS volume type is critical for achieving optimal performance and cost efficiency. The SAA-C03 exam heavily tests your understanding of when to use each volume type based on workload requirements.

EBS volumes are categorized into two main families: SSD-backed volumes for transactional workloads requiring high IOPS, and HDD-backed volumes for throughput-intensive workloads with large sequential I/O patterns.

Key Principle

GP3 is now the recommended default for most workloads in 2025. It provides 20% cost savings over GP2, with the ability to independently scale IOPS and throughput without increasing storage size.

Exam Tip

EBS questions are common on the exam. Know the max IOPS for each volume type (gp3: 16,000, io2: 256,000), when to use HDD vs SSD, and that st1/sc1 cannot be boot volumes. Expect 3-5 questions on EBS.


Architecture Diagram

The following diagram illustrates EBS volume types and their performance characteristics:

EBS Volume Types Overview
Figure 1: EBS volume types comparison - SSD volumes (gp3, gp2, io2) for IOPS-intensive workloads and HDD volumes (st1, sc1) for throughput-intensive sequential workloads

Key Concepts

General Purpose SSD (gp3)

General Purpose SSD (gp3)

GP3 is the latest generation General Purpose SSD, offering the best price-performance for most workloads.

Performance Specifications: | Metric | Value | |--------|-------| | Baseline IOPS | 3,000 (included free) | | Max IOPS | 16,000 | | Baseline Throughput | 125 MB/s (included free) | | Max Throughput | 1,000 MB/s | | Volume Size | 1 GiB - 16 TiB | | Latency | Single-digit milliseconds |

Key Advantages:

  • Independent scaling: Provision IOPS and throughput separately from storage size
  • 20% cheaper than gp2 for storage ($0.08 vs $0.10 per GB-month)
  • Predictable performance: No burst credits to manage
  • Can be used as boot volume

General Purpose SSD (gp2)

General Purpose SSD (gp2)

GP2 is the previous generation General Purpose SSD, still available but should be migrated to gp3.

Performance Specifications: | Metric | Value | |--------|-------| | Baseline IOPS | 3 IOPS per GiB | | Max IOPS | 16,000 (at 5,334+ GiB) | | Burst IOPS | Up to 3,000 (for volumes < 1,000 GiB) | | Max Throughput | 250 MB/s | | Volume Size | 1 GiB - 16 TiB |

Burst Credit Model:

  • Volumes < 1,000 GiB can burst to 3,000 IOPS
  • Burst credits accumulate when below baseline
  • Credits deplete during burst periods
  • Makes performance unpredictable for production workloads

GP3 vs GP2 Comparison

FeatureGP3GP2
Baseline IOPS3,000 (any size)3 per GiB (min 100)
Max IOPS16,00016,000
Max Throughput1,000 MB/s250 MB/s
IOPS ScalingIndependent of sizeTied to volume size
Storage Cost$0.08/GB-month$0.10/GB-month
Burst CreditsNot neededRequired for small volumes
RecommendedYes - default choiceMigrate to gp3

Provisioned IOPS SSD (io2 Block Express)

Provisioned IOPS SSD (io2 Block Express)

io2 Block Express is the highest-performance EBS volume type, designed for mission-critical, I/O-intensive workloads.

Performance Specifications: | Metric | Value | |--------|-------| | Max IOPS | 256,000 (Nitro instances) | | Max Throughput | 4,000 MB/s | | IOPS:GiB Ratio | 1,000:1 | | Volume Size | 4 GiB - 64 TiB | | Latency | Sub-millisecond (<500 μs avg) | | Durability | 99.999% (vs 99.8-99.9% for gp3) |

Key Features:

  • Multi-Attach: Attach to up to 16 Nitro-based instances simultaneously
  • Supports volumes up to 64 TiB
  • 10x better outlier latency than General Purpose volumes
io2 Block Express Requirement

To achieve 256,000 IOPS, you must use a Nitro-based EC2 instance. Non-Nitro instances are limited to 32,000 IOPS even with io2 Block Express volumes.

Throughput Optimized HDD (st1)

Throughput Optimized HDD (st1)

ST1 is designed for frequently accessed, throughput-intensive workloads with large sequential I/O.

Performance Specifications: | Metric | Value | |--------|-------| | Baseline Throughput | 40 MB/s per TiB | | Max Throughput | 500 MB/s | | Burst Throughput | 250 MB/s per TiB | | Max IOPS | 500 | | Volume Size | 125 GiB - 16 TiB | | Cost | $0.045/GB-month |

Best Use Cases:

  • Big data and data warehouses
  • Log processing
  • Apache Kafka
  • ETL workloads
  • Video editing (large sequential files)

Cold HDD (sc1)

Cold HDD (sc1)

SC1 is the lowest-cost EBS volume type, designed for infrequently accessed cold data.

Performance Specifications: | Metric | Value | |--------|-------| | Baseline Throughput | 12 MB/s per TiB | | Max Throughput | 250 MB/s | | Burst Throughput | 80 MB/s per TiB | | Max IOPS | 250 | | Volume Size | 125 GiB - 16 TiB | | Cost | $0.015/GB-month |

Best Use Cases:

  • Cold data archives
  • Infrequently accessed logs
  • Compliance data retention
  • Backup storage
HDD Boot Volume Limitation

ST1 and SC1 cannot be used as boot volumes. Only SSD volume types (gp2, gp3, io1, io2) can be used to boot EC2 instances.


How It Works

IOPS vs Throughput

IOPS vs Throughput Explained
Figure 2: Understanding the relationship between IOPS (random I/O operations) and Throughput (sequential data transfer)

IOPS vs Throughput

IOPS (Input/Output Operations Per Second):

  • Measures the number of read/write operations per second
  • Important for random I/O workloads (databases, transactional systems)
  • SSD volumes excel at high IOPS

Throughput (MB/s):

  • Measures the amount of data transferred per second
  • Important for sequential I/O workloads (big data, video processing)
  • HDD volumes provide cost-effective throughput

Relationship:

Throughput = IOPS × I/O Size

Example: 16,000 IOPS × 16 KiB = 256 MB/s

Volume Type Selection Flow

EBS Volume Type Selection
Figure 3: Decision flowchart for selecting the optimal EBS volume type based on workload requirements

Complete Volume Comparison

EBS Volume Types Complete Comparison

Volume TypeMax IOPSMax ThroughputMax SizeCost (GB/mo)Use Case
gp316,0001,000 MB/s16 TiB$0.08Default for most workloads
gp216,000250 MB/s16 TiB$0.10Legacy - migrate to gp3
io2 Block Express256,0004,000 MB/s64 TiB$0.125Mission-critical databases
io164,0001,000 MB/s16 TiB$0.125Legacy - use io2 instead
st1500500 MB/s16 TiB$0.045Big data, log processing
sc1250250 MB/s16 TiB$0.015Cold data, archives

EBS-Optimized Instances

EBS-Optimized Instances

EBS-optimized instances provide dedicated bandwidth between EC2 and EBS, ensuring consistent performance.

Key Points:

  • Most current-generation instances are EBS-optimized by default
  • Dedicated bandwidth ranges from 500 Mbps to 14,000 Mbps depending on instance type
  • Required to achieve maximum EBS performance
  • Nitro-based instances support the highest IOPS (up to 256,000)

Instance Bandwidth Limits: The EC2 instance type determines the maximum achievable EBS performance. Even with a high-performance io2 volume, a small instance may bottleneck performance.

| Instance Example | Max EBS Bandwidth | Max IOPS | |-----------------|-------------------|----------| | m5.large | 4,750 Mbps | 18,750 | | m5.xlarge | 4,750 Mbps | 18,750 | | m5.4xlarge | 4,750 Mbps | 18,750 | | m5.8xlarge | 6,800 Mbps | 30,000 | | m5.16xlarge | 13,600 Mbps | 60,000 |


Use Cases

Use Case 1: Production Database (SQL Server)

Scenario: Enterprise SQL Server database requiring consistent low latency and 10,000 IOPS.

Solution:

  • Use gp3 volume with 10,000 provisioned IOPS
  • 500 GB storage with 500 MB/s throughput
  • Cost-effective alternative to io2 for this IOPS level
SHCreate gp3 Volume for Database
aws ec2 create-volume \
    --volume-type gp3 \
    --size 500 \
    --iops 10000 \
    --throughput 500 \
    --availability-zone us-east-1a \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=Name,Value=sql-server-data}]'

Use Case 2: SAP HANA In-Memory Database

Scenario: SAP HANA requiring 100,000+ IOPS with sub-millisecond latency.

Solution:

  • Use io2 Block Express volume
  • Nitro-based instance (e.g., x2idn.metal)
  • Multi-Attach for high availability if needed

Use Case 3: Big Data Analytics (EMR)

Scenario: Hadoop/Spark cluster processing large datasets with sequential reads.

Solution:

  • Use st1 volumes for data nodes
  • High throughput at low cost
  • 500 MB/s max throughput per volume

Use Case 4: Compliance Log Archive

Scenario: Store 7 years of compliance logs, accessed only during audits.

Solution:

  • Use sc1 volumes
  • Lowest cost at $0.015/GB-month
  • Acceptable performance for infrequent access

Best Practices

EBS Best Practices
  1. Start with gp3 - Default choice for most workloads; migrate from gp2 for 20% savings
  2. Use io2 Block Express only when needed - For >16,000 IOPS or 99.999% durability requirements
  3. Match instance to volume - Ensure EC2 instance can support volume's max performance
  4. Use Nitro instances for high IOPS - Required for >32,000 IOPS
  5. Consider HDD for throughput - st1/sc1 for large sequential I/O workloads
  6. Enable EBS encryption - Minimal performance impact, use KMS keys
  7. Monitor with CloudWatch - Track VolumeReadOps, VolumeWriteOps, BurstBalance
  8. Use striping for extreme performance - RAID 0 across multiple volumes

Common Exam Scenarios

Exam Scenarios and Solutions

ScenarioSolutionWhy
Database needs 64,000 IOPS on single volumeio1/io2 with Nitro instancegp3 max is 16,000 IOPS; io2 supports up to 256,000
Cost-effective storage for dev/testgp3 with default 3,000 IOPSLowest SSD cost, predictable performance
Hadoop cluster with large sequential readsst1 (Throughput Optimized HDD)High throughput at low cost for sequential I/O
Archive data accessed once per yearsc1 (Cold HDD)Lowest cost at $0.015/GB-month
Boot volume for EC2 instancegp3 (or any SSD type)HDD volumes (st1/sc1) cannot be boot volumes
Database needs 256,000 IOPSio2 Block Express + Nitro instanceOnly io2 Block Express on Nitro can achieve this
Migrate from gp2 to save costsgp320% storage cost savings with better performance

Common Pitfalls

Pitfall 1: Instance Bottleneck

Mistake: Provisioning high-performance EBS volume with inadequate EC2 instance.

Why it fails:

  • EC2 instance has maximum EBS bandwidth limit
  • Small instances cannot utilize high IOPS volumes
  • Money wasted on unused capacity

Correct Approach:

  • Match instance type to volume performance requirements
  • Use Nitro instances for >32,000 IOPS workloads
  • Check instance EBS bandwidth limits before provisioning
Pitfall 2: Using gp2 for New Workloads

Mistake: Continuing to use gp2 for new deployments.

Why it's wasteful:

  • 20% more expensive than gp3
  • Lower max throughput (250 MB/s vs 1,000 MB/s)
  • Unpredictable burst credit performance

Correct Approach:

  • Use gp3 for all new workloads
  • Migrate existing gp2 volumes to gp3
  • No downtime required for migration
Pitfall 3: Using io2 When gp3 Suffices

Mistake: Over-provisioning with io2 for workloads under 16,000 IOPS.

Why it's wasteful:

  • io2 costs $0.065 per IOPS (13x more than gp3's $0.005)
  • gp3 includes 3,000 IOPS free
  • Example: 10,000 IOPS costs ~$35/mo on gp3 vs ~$650/mo on io2

Correct Approach:

  • Use gp3 for workloads up to 16,000 IOPS
  • Only use io2 for >16,000 IOPS or 99.999% durability requirements
Pitfall 4: HDD for Random I/O

Mistake: Using st1/sc1 for workloads with random I/O patterns.

Why it fails:

  • HDD volumes optimized for sequential I/O only
  • Max 500 IOPS (st1) or 250 IOPS (sc1)
  • Poor performance for databases or transactional workloads

Correct Approach:

  • Use SSD volumes (gp3, io2) for random I/O
  • Reserve HDD for large sequential workloads (big data, logs)

Test Your Knowledge

Q

A company needs an EBS volume for a production MySQL database requiring 12,000 IOPS with consistent performance. Which volume type is MOST cost-effective?

Agp2 with 4 TiB storage
Bgp3 with 12,000 provisioned IOPS
Cio2 with 12,000 provisioned IOPS
Dst1 with maximum throughput
Q

Which EBS volume types can be used as a boot volume for an EC2 instance? (Select TWO)

Ast1 (Throughput Optimized HDD)
Bsc1 (Cold HDD)
Cgp3 (General Purpose SSD)
Dio2 (Provisioned IOPS SSD)
Q

An application requires 200,000 IOPS from a single EBS volume. What is the correct configuration?

Agp3 volume with maximum IOPS
Bio1 volume on any EC2 instance
Cio2 Block Express volume on a Nitro-based instance
DMultiple gp3 volumes in RAID 0
Q

A data warehouse runs nightly batch jobs processing 10 TB of data with large sequential reads. Which volume type provides the BEST price-performance?

Agp3 with maximum throughput
Bio2 Block Express
Cst1 (Throughput Optimized HDD)
Dsc1 (Cold HDD)


Quick Reference

Volume Type Summary

EBS Volume Types Quick Reference

TypeCategoryMax IOPSMax ThroughputBoot Volume?
gp3General Purpose SSD16,0001,000 MB/sYes
gp2General Purpose SSD16,000250 MB/sYes
io2 Block ExpressProvisioned IOPS SSD256,0004,000 MB/sYes
io1Provisioned IOPS SSD64,0001,000 MB/sYes
st1Throughput Optimized HDD500500 MB/sNo
sc1Cold HDD250250 MB/sNo

Pricing Quick Reference (US East)

EBS Pricing Summary

Volume TypeStorageIOPSThroughput
gp3$0.08/GB-mo$0.005/IOPS (>3,000)$0.04/MB/s (>125)
gp2$0.10/GB-moIncludedIncluded
io2$0.125/GB-mo$0.065/IOPSIncluded
st1$0.045/GB-moIncludedIncluded
sc1$0.015/GB-moIncludedIncluded

Key Numbers to Remember

Critical EBS Limits for Exam

MetricValue
gp3 max IOPS16,000
gp3 max throughput1,000 MB/s
gp3 baseline IOPS (free)3,000
io2 Block Express max IOPS256,000 (Nitro)
io2 Block Express max throughput4,000 MB/s
st1/sc1 boot volumeNOT ALLOWED
Non-Nitro max IOPS32,000

Further Reading

Related services

EBSEC2