EBS Volume Types: gp3, io2, st1, sc1
Compare General Purpose SSD, Provisioned IOPS SSD, Throughput Optimised HDD, and Cold HDD to pick the right volume for your workload.
EBS Volume Types: gp3, io2, st1, sc1 is a free AWS Solutions Architect lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the AWS Solutions Architect learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
EBS Volume Overview
Amazon Elastic Block Store (EBS) provides persistent block storage volumes for EC2 instances. Unlike instance store (which is ephemeral and tied to the instance lifecycle), EBS volumes exist independently of the instances they are attached to — data survives instance stops, reboots, and even (with detachment) instance termination. EBS volumes are replicated within a single Availability Zone for durability. Understanding the four volume types is essential for the SAA-C03 exam.
gp3: General Purpose SSD (Current Generation)
gp3 is the current-generation general-purpose SSD volume. Key characteristics: 3,000 IOPS baseline included at no extra cost regardless of volume size, up to 16,000 IOPS and 1,000 MB/s throughput (both independently configurable), and a size range of 1 GiB to 16 TiB. gp3 is 20% cheaper than gp2 and should be your default choice for most workloads including boot volumes, development environments, small-to-medium databases, and low-latency interactive applications.
# Create a gp3 volume with custom IOPS and throughput
aws ec2 create-volume \
--volume-type gp3 \
--size 500 \
--iops 6000 \
--throughput 500 \
--availability-zone us-east-1a \
--encrypted
# gp3 allows IOPS and throughput to be set independently
# Baseline: 3,000 IOPS / 125 MB/s
# Maximum: 16,000 IOPS / 1,000 MB/sgp2: General Purpose SSD (Previous Generation)
gp2 is the previous-generation general-purpose SSD. Key differences from gp3: IOPS are tied to volume size (3 IOPS per GiB, minimum 100, maximum 16,000), and burst credits allow small volumes to burst to 3,000 IOPS temporarily. Throughput is up to 250 MB/s but is not independently configurable. AWS recommends migrating from gp2 to gp3 — you get higher baseline IOPS, independent IOPS/throughput tuning, and lower cost. For the exam, know that gp2 IOPS scale with size while gp3 IOPS are fixed regardless of size.
# Migrate an existing gp2 volume to gp3 (no downtime)
aws ec2 modify-volume \
--volume-id vol-0abc1234def567890 \
--volume-type gp3 \
--iops 3000 \
--throughput 125
# Monitor the modification status
aws ec2 describe-volumes-modifications \
--volume-ids vol-0abc1234def567890 \
--query 'VolumesModifications[].{State:ModificationState,Progress:Progress}'io2 Block Express: Provisioned IOPS SSD
io2 Block Express is the highest-performance EBS volume designed for I/O-intensive workloads. It offers up to 256,000 IOPS and 4,000 MB/s throughput per volume, with a 99.999% (five nines) durability SLA — higher than any other EBS type. io2 is the right choice for mission-critical databases such as Oracle, SAP HANA, and Microsoft SQL Server that require sustained high IOPS with low, consistent latency in the sub-millisecond range.
# Create an io2 volume for a high-performance database
aws ec2 create-volume \
--volume-type io2 \
--size 2000 \
--iops 64000 \
--availability-zone us-east-1a \
--encrypted
# io2 IOPS-to-size ratio: up to 1,000 IOPS per GiB
# Example: 2,000 GiB volume supports up to 64,000 IOPS
# io2 Block Express: up to 256,000 IOPS on supported instances (R6i, X2i, etc.)io1: Provisioned IOPS SSD (Legacy)
io1 is the previous generation of Provisioned IOPS SSD. It supports up to 64,000 IOPS and 1,000 MB/s throughput, with a maximum IOPS-to-GiB ratio of 50:1. io1 provides 99.8-99.9% durability (lower than io2's 99.999%). For new workloads requiring provisioned IOPS, always choose io2 Block Express over io1 — it offers significantly higher IOPS, throughput, and durability at a comparable price. The SAA-C03 exam may present io1 as an option; prefer io2 when the requirement mentions 'highest performance' or 'five nines durability'.
st1: Throughput Optimised HDD
st1 is a hard disk drive volume optimised for sequential, high-throughput workloads that access large amounts of data in order. It offers up to 500 IOPS and 500 MB/s throughput for volumes up to 16 TiB. The cost per GB is significantly lower than SSD volumes. st1 is ideal for big data processing, data warehousing, log processing, and streaming workloads where throughput (MB/s) matters more than IOPS. st1 cannot be used as a boot volume.
# Create an st1 volume for a Hadoop data node
aws ec2 create-volume \
--volume-type st1 \
--size 4000 \
--availability-zone us-east-1a
# st1 performance:
# Baseline throughput: 40 MB/s per TiB
# Burst throughput: 250 MB/s per TiB
# Maximum throughput: 500 MB/s
# Minimum size: 125 GiB, Maximum: 16 TiB
# Cannot be used as a boot volumesc1: Cold HDD
sc1 is the lowest-cost EBS volume type, designed for infrequently accessed cold data. It offers up to 250 IOPS and 250 MB/s throughput for volumes up to 16 TiB. sc1 is appropriate for archives, backups, and cold data that must be kept online but accessed rarely (perhaps monthly). Like st1, sc1 cannot be used as a boot volume. When cost optimisation is the primary exam keyword and the workload is rarely accessed, sc1 is the answer.
# Create an sc1 volume for cold archive data
aws ec2 create-volume \
--volume-type sc1 \
--size 8000 \
--availability-zone us-east-1a
# sc1 performance:
# Baseline throughput: 12 MB/s per TiB
# Burst throughput: 80 MB/s per TiB
# Maximum throughput: 250 MB/s
# Minimum size: 125 GiB
# CANNOT be used as a boot volumeChoosing the Right EBS Volume Type
Use this decision framework for the SAA-C03 exam: Boot volume or general application → gp3. High IOPS database, sub-millisecond latency, five nines durability → io2 Block Express. Big data, streaming, data warehouse — sequential access, cost-sensitive → st1. Cold data archive, infrequent access, lowest cost → sc1. If the question mentions 'highest available IOPS' → io2. If it mentions 'most cost-effective' for frequently accessed data → gp3. If it mentions 'least expensive storage per GB' → sc1.
Multi-Attach for io1 and io2
EBS Multi-Attach allows a single io1 or io2 volume to be attached to up to 16 Nitro-based EC2 instances simultaneously within the same AZ. Each instance has full read/write access. This is useful for achieving higher application availability in clustered databases like Oracle RAC. Note that Multi-Attach is NOT supported for gp2, gp3, st1, or sc1. The file system must be a cluster-aware file system — standard Linux ext4 or xfs will corrupt data if multiple instances write simultaneously.
# Enable Multi-Attach when creating an io2 volume
aws ec2 create-volume \
--volume-type io2 \
--size 500 \
--iops 10000 \
--availability-zone us-east-1a \
--multi-attach-enabled
# Attach to multiple instances
aws ec2 attach-volume --volume-id vol-0MULTI --instance-id i-0AAA --device /dev/sdf
aws ec2 attach-volume --volume-id vol-0MULTI --instance-id i-0BBB --device /dev/sdfEBS Performance Tips
Key EBS performance facts: EC2 instance type limits EBS bandwidth — even a 16,000 IOPS gp3 volume can be bottlenecked by an instance's EBS-optimised throughput limit. EBS-optimised instances have dedicated bandwidth between EC2 and EBS. Pre-warming is no longer needed for volumes created from snapshots — AWS automatically pre-warms restored volumes. Use io2 Block Express on supported instance families (R6i, X2iedn) to unlock up to 256,000 IOPS. RAID 0 across multiple volumes can multiply IOPS and throughput at the cost of reduced fault tolerance.
# Check the EBS bandwidth available to an instance type
aws ec2 describe-instance-types \
--instance-types m5.xlarge \
--query 'InstanceTypes[].EbsInfo.{MaxBandwidth:EbsOptimizedSupport,MaxIops:EbsInfo}'
# Verify EBS optimization is enabled on a running instance
aws ec2 describe-instances \
--instance-ids i-0abc1234 \
--query 'Reservations[].Instances[].EbsOptimized'Volume Type Modification
You can modify an EBS volume's type, size, IOPS, and throughput while it is attached and in use — no downtime required. The volume transitions through modifying, optimizing, and completed states. Size can only increase (you cannot shrink a volume). After increasing a volume's size, you must extend the file system inside the operating system using growpart and resize2fs (Linux) or Disk Management (Windows). This hot-modification capability is a key differentiator of EBS over instance store.
# Resize a gp3 volume from 100 GiB to 500 GiB
aws ec2 modify-volume \
--volume-id vol-0abc1234def567890 \
--size 500
# After AWS completes the resize, extend the filesystem:
# On Linux (for /dev/xvda1 partition):
# sudo growpart /dev/xvda 1
# sudo resize2fs /dev/xvda1Quick Check
Test your understanding of AWS Solutions Architect (SAA-C03) concepts from this lesson.
Lesson Recap
In this lesson you learned: gp3 is the default SSD with 3,000 IOPS baseline and independently configurable throughput, io2 Block Express delivers up to 256,000 IOPS with five-nines durability for mission-critical databases, st1 is the throughput-optimised HDD for sequential big data, and sc1 is the lowest-cost HDD for cold infrequently accessed data. Next up we explore EBS snapshots, encryption, and RAID configurations.
Frequently asked questions
Is the “EBS Volume Types: gp3, io2, st1, sc1” lesson free?
Yes — the full text of “EBS Volume Types: gp3, io2, st1, sc1” is free to read here on the web, and the AWS Solutions Architect course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the AWS Solutions Architect course, upgrade to CoddyKit PRO.
What will I learn in “EBS Volume Types: gp3, io2, st1, sc1”?
Compare General Purpose SSD, Provisioned IOPS SSD, Throughput Optimised HDD, and Cold HDD to pick the right volume for your workload. You practise AWS Solutions Architect with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start AWS Solutions Architect?
No prior experience is required. AWS Solutions Architect on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “EBS Volume Types: gp3, io2, st1, sc1” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this AWS Solutions Architect lesson?
Yes. Every AWS Solutions Architect lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- EBS Volume Types: gp3, io2, st1, sc1
- EBS Snapshots, Encryption, and RAID
- EFS: Shared File Storage for Linux
- FSx: Windows File Server and Lustre