When Should You Use AWS EBS st1 or sc1 Volumes for Big Data?
Choosing between Amazon EBS Throughput Optimized HDD st1 and Cold HDD sc1 volumes depends primarily on how frequently your sequential big data workload accesses stored data and your performance requirements. Both volume types are low-cost magnetic storage options designed for large, sequential I/O operations rather than small, random I/O tasks. This article explains the architectural differences, throughput mechanics, use cases, and cost trade-offs to help you select the right HDD volume for your Amazon EC2 instances.
Understanding Amazon EBS HDD Volume Types
Amazon Elastic Block Store provides two magnetic hard disk drive
options tailored for throughput-intensive workloads. Unlike Solid State
Drive volumes such as gp3 or io2 that measure
performance in Input/Output Operations Per Second, HDD-backed volumes
measure performance in megabytes per second (\(\text{MiB/s}\)). They are engineered to
handle large block sizes and sequential read/write operations
efficiently.
Neither st1 nor sc1 can be used as a boot
volume for an Amazon EC2 instance. Instead, they serve as secondary data
volumes attached to compute instances running distributed file systems,
data warehouses, or log processing pipelines.
How Burst Bucket Credits Work
Both st1 and sc1 use a burst-bucket credit
model to determine available throughput. Each volume earns throughput
credits at a baseline rate determined by the provisioned volume size in
terabytes (\(\text{TiB}\)). When your
workload is idle or running below its baseline rate, unused credits
accumulate in a burst bucket up to a maximum credit balance limit.
When your application performs heavy sequential reads or writes, it consumes these accumulated credits to burst up to the volume's maximum throughput limit. The baseline throughput, burst throughput, and credit bucket capacity scale linearly with the volume size up to a hard ceiling. We can express the effective baseline throughput \(T_{\text{base}}\) and burst throughput \(T_{\text{burst}}\) for a volume of size \(S\) (in \(\text{TiB}\)) as:
\[T_{\text{base}} = \min(R_{\text{base}} \times S, T_{\text{max}})\]
\[T_{\text{burst}} = \min(R_{\text{burst}} \times S, T_{\text{max}})\]
Where \(R_{\text{base}}\) is the baseline rate per \(\text{TiB}\), \(R_{\text{burst}}\) is the burst rate per \(\text{TiB}\), and \(T_{\text{max}}\) is the maximum throughput cap for the volume type.
When to Use Throughput Optimized HDD (st1)
Throughput Optimized HDD (st1) volumes are designed for
frequently accessed, throughput-intensive workloads that require
consistent and fast sequential I/O performance.
Performance Specifications of st1
- Volume size range: \(125\text{ GiB}\) to \(16\text{ TiB}\)
- Baseline throughput: \(40\text{ MiB/s}\) per \(\text{TiB}\)
- Maximum burst throughput: \(250\text{ MiB/s}\) per \(\text{TiB}\)
- Absolute maximum throughput cap: \(500\text{ MiB/s}\) per volume (reached at \(12.5\text{ TiB}\) for baseline, or \(2\text{ TiB}\) for burst)
- Bucket capacity: \(1\text{ TiB}\) of credits per \(\text{TiB}\) of provisioned volume size
Ideal Workloads for st1
You should choose st1 when your big data architecture
actively processes, scans, or streams data throughout the day:
- Apache Kafka and Streaming Platforms: Message
brokers write and read append-only commit logs sequentially. Because
consumers frequently read from these partitions,
st1provides the sustained \(\text{MiB/s}\) required without paying SSD prices. - Big Data Analytics (MapReduce, Apache Spark,
Hadoop): Distributed Hadoop Distributed File System (HDFS)
nodes scanning multi-terabyte datasets benefit from
st1because data blocks are large (typically \(128\text{ MiB}\) or \(256\text{ MiB}\)) and accessed sequentially. - Data Warehouses: Columnar databases and MPP (Massively Parallel Processing) analytics platforms perform full table scans over contiguous blocks of disk storage.
- Centralized Log Processing: Workloads that ingest, aggregate, and index high-velocity application logs continuously.
When to Use Cold HDD (sc1)
Cold HDD (sc1) volumes provide the lowest cost per
gigabyte of all Amazon EBS volume types. They are built for large
volumes of data that are accessed infrequently and where the lowest
possible block storage cost is the primary objective.
Performance Specifications of sc1
- Volume size range: \(125\text{ GiB}\) to \(16\text{ TiB}\)
- Baseline throughput: \(12\text{ MiB/s}\) per \(\text{TiB}\)
- Maximum burst throughput: \(80\text{ MiB/s}\) per \(\text{TiB}\)
- Absolute maximum throughput cap: \(250\text{ MiB/s}\) per volume (reached at approximately \(3.125\text{ TiB}\) for burst)
- Bucket capacity: \(1\text{ TiB}\) of credits per \(\text{TiB}\) of provisioned volume size
Ideal Workloads for sc1
You should choose sc1 when your dataset must remain
attached as block storage to an EC2 instance (rather than being
offloaded to Amazon S3), but daily read/write volume is low:
- Cold Data Tiers in Distributed Storage: In tiered
storage architectures (such as HDFS heterogeneous storage or
Elasticsearch warm/cold nodes), older partitions that are rarely queried
can be moved to
sc1volumes while active partitions remain ongp3orst1. - Infrequent Full-System Scans: Historical compliance records, audit logs, or archival databases that only run batch reporting jobs once a week or once a month.
- Cost-Constrained Sequential Backups: Maintaining local on-instance database dumps or staging backups before transferring them to object storage.
Comparing st1 and sc1 Side by Side
| Feature | Throughput Optimized HDD
(st1) |
Cold HDD (sc1) |
|---|---|---|
| Primary Use Case | Frequent sequential access | Infrequent sequential access |
| Volume Size | \(125\text{ GiB}\) – \(16\text{ TiB}\) | \(125\text{ GiB}\) – \(16\text{ TiB}\) |
| Baseline Throughput | \(40\text{ MiB/s}\) per \(\text{TiB}\) | \(12\text{ MiB/s}\) per \(\text{TiB}\) |
| Burst Throughput | \(250\text{ MiB/s}\) per \(\text{TiB}\) | \(80\text{ MiB/s}\) per \(\text{TiB}\) |
| Max Throughput per Volume | \(500\text{ MiB/s}\) | \(250\text{ MiB/s}\) |
| Max IOPS (at \(1\text{ MiB}\) I/O size) | \(500\text{ IOPS}\) | \(250\text{ IOPS}\) |
| Boot Volume Support | No | No |
| Multi-Attach Support | No | No |
Evaluating Scan Frequency and Daily Volume Limits
A practical method to decide between st1 and
sc1 is calculating how many times per day your workload
scans the entire volume. Because a volume earns throughput credits
continuously at its baseline rate, the total amount of data \(D_{\text{daily}}\) you can read or write
per \(\text{TiB}\) of storage in a
\(24\text{-hour}\) period (\(86,400\text{ seconds}\)) without depleting
your burst bucket is:
\[D_{\text{daily}} = R_{\text{base}} \times 86,400\text{ s}\]
For an st1 volume (\(R_{\text{base}} = 40\text{ MiB/s}\)):
\[D_{\text{daily (st1)}} = 40\text{ MiB/s} \times 86,400\text{ s} = 3,456,000\text{ MiB} \approx 3.29\text{ TiB per TiB}\]
For an sc1 volume (\(R_{\text{base}} = 12\text{ MiB/s}\)):
\[D_{\text{daily (sc1)}} = 12\text{ MiB/s} \times 86,400\text{ s} = 1,036,800\text{ MiB} \approx 0.99\text{ TiB per TiB}\]
From these calculations, a clear operational rule emerges:
- Use
sc1if your workload scans the entire volume once a day or less. - Use
st1if your workload scans the entire volume up to three times a day, or requires burst speeds up to \(500\text{ MiB/s}\).
Architectural Best Practices for HDD Volumes on EC2
To get the expected throughput from st1 and
sc1 volumes, your EC2 instance and operating system must be
configured to avoid I/O bottlenecks:
- Avoid Small Random I/O: Magnetic drives normalize
contiguous I/O requests into single operations, but random \(4\text{ KiB}\) or \(16\text{ KiB}\) reads force physical disk
head movement (seek time), drastically degrading throughput. If your
workload mixes random metadata lookups with sequential reads, place
metadata or indexes on a separate
gp3SSD volume and keep only raw sequential data onst1orsc1. - Verify EC2 Instance Bandwidth: Ensure your chosen EC2 instance type is EBS-optimized and provides sufficient network bandwidth to the EBS subsystem. A volume capable of \(500\text{ MiB/s}\) (\(4\text{ Gbps}\)) will be throttled if attached to an instance that only supports \(1.5\text{ Gbps}\) of dedicated EBS bandwidth.
- Use RAID 0 for Higher Throughput: If a single
st1volume's \(500\text{ MiB/s}\) ceiling is insufficient for your big data node, you can stripe multiplest1volumes together in a software RAID 0 array usingmdadmto aggregate their baseline and burst throughput limits. - Monitor Burst Balance in Amazon CloudWatch: Always
configure CloudWatch alarms on the
BurstBalancemetric for yourst1andsc1volumes. IfBurstBalancefrequently drops toward \(0\%\), your workload is exceeding its baseline throughput and getting throttled down from burst speeds to baseline speeds. You can resolve this by either provisioning a larger volume (to gain a higher baseline rate) or migrating ansc1volume tost1via Elastic Volumes without downtime.