(this post does only covers EBS, not S3 (object based storage)
We have three storage type on Amazon’s AWS platform for EC2 virtual machines:
- General Purpose SSD
- Provisioned IOPS
- magnetic disk
These provide the lowest cost per GB of all EBS volume types. Magnetic volumes are backed by magnetic drives and are ideal for workloads where data is accessed infrequently, and scenarios where the lowest storage cost is important. Magnetic volumes provide 100 IOPS on average, but can burst to hundreds of IOPS.
General Purpose SSD
General Purpose (SSD) volumes are the default EBS volume type for Amazon EC2 instances. General Purpose (SSD) volumes are backed by Solid-State Drives (SSDs) and are suitable for a broad range of workloads, including small to medium-sized databases, development and test environments, and boot volumes. General Purpose (SSD) volumes are designed to offer single digit millisecond latencies, deliver a consistent baseline performance of 3 IOPS/GB to a maximum of 10,000 IOPS, and provide up to 160 MBps of throughput per volume. General Purpose SSD volumes smaller than 1 TB can also burst up to 3,000 IOPS. I/O is included in the price, so you pay only for the capacity.
Provisioned IOPS volumes – backed by Solid-State Drives (SSDs) – are suitable for applications with I/O-intensive workloads such as databases.
Provisioned IOPS volumes are designed to offer single digit millisecond latencies, deliver a consistent baseline performance of up to 30 IOPS/GB to a maximum burst capacity of 20,000 IOPS, and provide up to 320 MBps of throughput per volume. Additionally, you can stripe multiple volumes together to achieve up to 48,000 IOPS or 800MBps when attached to larger EC2 instances.
To maximize the benefit of Provisioned IOPS volumes, EBS-optimized EC2 instances are recommended. With EBS-optimized instances, Provisioned IOPS volumes can achieve single-digit millisecond latencies and are designed to deliver the provisioned performance 99.9% of the time.
Compared to some HDD’s and SSD’s
- a 6TB SATA HDD can deliver about 100 IOPS = 0.016 IOPS/GB
- a 600GB SAS HDD typically offers 160 IOPS = 0.26 IOPS/GB
- a 100GB SATA HDD typically offers around 100 IOPS = 1 IOPS/GB < non existent disk used for reference
- a 512GB SATA SSD can deliver 84.000 IOPS = 164 IOPS/GB
- a 512GB 12GB/s SAS SSD can deliver 120.000 IOPS = 234 IOPS/GB
- a 400 GB NVMe PCIe SSD can deliver 290.000 IOPS = 725 IOPS/GB
- a 256GB 3D Xpoint SAS SSD 461.000 = 1800 IOPS/GB
Customers often use capacity as a metric when comparing storage solutions. Gamers tend to focus and benchmark on throughput (MB/ps) while this is hardly relevant for gamers nor servers and storage systems because random IO is typically the bottleneck. The most important metric is the amount of random read or write operations per second. That’s why storage and virtualisation specialists tend to talk about IOPS.
(of course not all IO’s are created equal, but that’s another topic)
An even better metric to compare storage solutions or storage media would be the amount of IOPS per GB, so we calculated the IOPS per GB metric for every disk type.