Yesterday Jeff Barr announced the new io2
EBS volume type. It offers two main features which make it an awesome replacement for the old io1
type.
The io1
and io2
volume types form the family of EBS volumes with IOPS as their dominant performance trait. These are the go-to type of disks for workloads with many small reads and writes, like databases.
The pricing and performance for all other disk types (standard
, gp2
, st1
and sc2
) is pretty straight-forward. You configure a disk’s size (up to 16 TB), and you get a number of IOPS or MBps per GB. For example, the gp2
disk provides 3 IOPS per GB and costs $0.10 per GB-month (in Ohio). A 100 GB gp2
disk will thus be able to provide a sustained 300 IOPS for $10 per month.
For these disks, the only way to get more IOPS is to increase the disk size (at $0.10 per GB). For workloads with high IOPS requirements this doesn’t scale. Additionally, gp2
disks have an upper limit of 16.000 IOPS.
The io
disks have a different pricing model, which consists of two components. The first is a price per GB-month for the volume’s size, like the other disks. But instead of providing a number of IOPS per GB, the configured volume size determines the max IOPS you can configure for the disk. The IOPS for the disk are the second price component, which is priced at $0.065 per IOPS-month in Ohio.
Pricing example for io1
disks
Let’s say your workload requires a volume with 20 GB of storage and 10.000 IOPS. Because the limit for io1
volumes is 50 IOPS per GB, you actually need to provision 10.000 / 50 = 200 GB
. A 200 GB volume costs 200 * $0.125 = $25
. The IOPS cost is 10.000 * $0.065 = $650
, so this volume will total $675 per month.
Pricing for io2
disks
The pricing for io2
disks is the same as for io1
. But the limit of provisioned IOPS is 500 per GB, so an 20 GB io2
volume can actually be configured at 10.000 IOPS.
Let’s calculate the price for an io2
disk with the same specs as above. A 20 GB volume costs 20 * $0.125 = $2.50
. The IOPS still cost 10.000 * $0.065 = $650
, so this volume will total $652.50 per month, which equals 3.33% in cost savings.
Pricing compared
The pricing difference is most significant at workloads with small volumes with high IOPS requirements, like the example above.
In the table below, we compare the pricing for io1
and io2
volumes at different volume sizes. The target performance is 5.000 IOPS. The break-even point is 100 GB.
GBs | Volume size price | IOPS price | Max IOPS io1 |
Max IOPS io2 |
Min io1 size |
Min io2 size |
Actual volume size price io1 |
Actual volume size price io2 |
Total price io1 |
Total price io2 |
Savings |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | $2,50 | $325,00 | 1.000 | 10.000 | 100 | 20 | $12,50 | $2,50 | $337,50 | $327,50 | 2,96% |
50 | $6,25 | $325,00 | 2.500 | 25.000 | 100 | 50 | $12,50 | $6,25 | $337,50 | $331,25 | 1,85% |
100 | $12,50 | $325,00 | 5.000 | 50.000 | 100 | 100 | $12,50 | $12,50 | $337,50 | $337,50 | 0,00% |
200 | $25,00 | $325,00 | 10.000 | 64.000 | 200 | 200 | $25,00 | $25,00 | $350,00 | $350,00 | 0,00% |
1.000 | $125,00 | $325,00 | 50.000 | 64.000 | 1000 | 1000 | $125,00 | $125,00 | $450,00 | $450,00 | 0,00% |
In the following table the target performance is 10.000 IOPS. The break-even point is 200 GB.
GBs | Volume size price | IOPS price | Max IOPS io1 |
Max IOPS io2 |
Min io1 size |
Min io2 size |
Actual volume size price io1 |
Actual volume size price io2 |
Total price io1 |
Total price io2 |
Savings |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | $2,50 | $650,00 | 1.000 | 10.000 | 200 | 20 | $25,00 | $2,50 | $675,00 | $652,50 | 3,33% |
50 | $6,25 | $650,00 | 2.500 | 25.000 | 200 | 50 | $25,00 | $6,25 | $675,00 | $656,25 | 2,78% |
100 | $12,50 | $650,00 | 5.000 | 50.000 | 200 | 100 | $25,00 | $12,50 | $675,00 | $662,50 | 1,85% |
200 | $25,00 | $650,00 | 10.000 | 64.000 | 200 | 200 | $25,00 | $25,00 | $675,00 | $675,00 | 0,00% |
1.000 | $125,00 | $650,00 | 50.000 | 64.000 | 1000 | 1000 | $125,00 | $125,00 | $775,00 | $775,00 | 0,00% |
Next, a target performance of 32.000 IOPS. The break-even point is 640 GB.
GBs | Volume size price | IOPS price | Max IOPS io1 |
Max IOPS io2 |
Min io1 size |
Min io2 size |
Actual volume size price io1 |
Actual volume size price io2 |
Total price io1 |
Total price io2 |
Savings |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | $2,50 | $2.080,00 | 1.000 | 10.000 | 640 | 64 | $80,00 | $8,00 | $2.160,00 | $2.088,00 | 3,33% |
50 | $6,25 | $2.080,00 | 2.500 | 25.000 | 640 | 64 | $80,00 | $8,00 | $2.160,00 | $2.088,00 | 3,33% |
100 | $12,50 | $2.080,00 | 5.000 | 50.000 | 640 | 100 | $80,00 | $12,50 | $2.160,00 | $2.092,50 | 3,13% |
200 | $25,00 | $2.080,00 | 10.000 | 64.000 | 640 | 200 | $80,00 | $25,00 | $2.160,00 | $2.105,00 | 2,55% |
640 | $80,00 | $2.080,00 | 32.000 | 64.000 | 640 | 640 | $80,00 | $80,00 | $2.160,00 | $2.160,00 | 0,00% |
1.000 | $125,00 | $2.080,00 | 50.000 | 64.000 | 1000 | 1000 | $125,00 | $125,00 | $2.205,00 | $2.205,00 | 0,00% |
And finally, a target performance of 64.000 IOPS. The break-even point is 1.280 GB.
GBs | Volume size price | IOPS price | Max IOPS io1 |
Max IOPS io2 |
Min io1 size |
Min io2 size |
Actual volume size price io1 |
Actual volume size price io2 |
Total price io1 |
Total price io2 |
Savings |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | $2,50 | $4.160,00 | 1.000 | 10.000 | 1280 | 128 | $160,00 | $16,00 | $4.320,00 | $4.176,00 | 3,33% |
50 | $6,25 | $4.160,00 | 2.500 | 25.000 | 1280 | 128 | $160,00 | $16,00 | $4.320,00 | $4.176,00 | 3,33% |
100 | $12,50 | $4.160,00 | 5.000 | 50.000 | 1280 | 128 | $160,00 | $16,00 | $4.320,00 | $4.176,00 | 3,33% |
200 | $25,00 | $4.160,00 | 10.000 | 64.000 | 1280 | 200 | $160,00 | $25,00 | $4.320,00 | $4.185,00 | 3,13% |
1.000 | $125,00 | $4.160,00 | 50.000 | 64.000 | 1280 | 1000 | $160,00 | $125,00 | $4.320,00 | $4.285,00 | 0,81% |
1.280 | $160,00 | $4.160,00 | 64.000 | 64.000 | 1280 | 1280 | $160,00 | $160,00 | $4.320,00 | $4.320,00 | 0,00% |
2.000 | $250,00 | $4.160,00 | 64.000 | 64.000 | 2000 | 2000 | $250,00 | $250,00 | $4.410,00 | $4.410,00 | 0,00% |
As you can see, smaller volumes are up to 3.33% cheaper on io2
than on io1
. The higher your IOPS requirements, the higher the break-even point. For environments with many IOPS-based resources, this can lead to significant cost savings. But this isn’t the only reason to switch to io2
.
Durability
All EBS volumes before the release of the io2
type have a durability of 99.8 - 99.9% on a yearly basis. That translates to 1 or 2 failing drives per 1.000 volumes, every year. In large environments with thousands of volumes, this is a significant amount which requires additional data protection and failover measures. This can include shared file systems, snapshots, or using S3 instead of EBS for long term storage. All these solutions will cost time, effort and money to build and maintain.
The new io2
disk type features a 99.999% reliability - which means one volume in every 100,000 volumes will fail on a yearly basis. This is very welcome change, bringing io2
disks to enterprise levels of reliability.
Conclusion
With the cost savings and durability improvements in io2
, there is no reason not to migrate as many io1
disks to io2
as soon as you can. At the very least, deprecate io1
as an option for every new deployment. The only exception is when you use EBS multi-attach… but not many people do.
If you have any question or remarks, or would like to get in touch you can find me on Twitter or LinkedIn.