This whitepaper is for historical reference only. Some content might be outdated and some links might not be available.
EBS volume types
General Purpose SSD volumes
General Purpose SSD volumes are designed to provide a balance of price and performance.
The General Purpose SSD (gp3) volumes offer cost-effective storage that is ideal for a broad range of database workloads. These volumes deliver a consistent baseline rate of 3,000 IOPS and 125 MiB/s, included with the price of storage. You can provision additional IOPS (up to 16,000) and throughput (up to 1,000 MiB/s) for an additional cost. The maximum ratio of Provisioned IOPS to provisioned volume size is 500 IOPS per GiB. The maximum ratio of provisioned throughput to Provisioned IOPS is .25 MiB/s per IOPS. The following volume configurations support provisioning either maximum IOPS or maximum throughput:
-
32 GiB or larger: 500 IOPS/GiB x 32 GiB = 16,000 IOPS
-
8 GiB or larger and 4,000 IOPS or higher: 4,000 IOPS x 0.25 MiB/s/IOPS = 1,000 MiB/s
The older General Purpose SSD (gp2) volume is also a good option because it also offers
balanced price and performance. To maximize the performance of the gp2 volume, you need to
know how the burst bucket
In addition to changing the volume type, size and provisioned throughput (for gp3 only); you can also use RAID 0 to stripe multiple gp2 or gp3 volumes together to achieve greater I/O performance. The RAID 0 configuration distributes the I/O across volumes in a stripe. Adding an additional volume also increases the throughput of your MySQL database. Throughput is the read/write transfer rate, which is the I/O block size multiplied by the IOPS rate performed on the disk. AWS recommends adding the same volume size into the stripe set since the performance of the stripe is limited to the worst performing volume in the set. Also consider fault tolerance in RAID 0. A loss of a single volume results in a complete data loss for the array. If possible, use RAID 0 in a MySQL primary/secondary environment where data is already replicated in multiple secondary nodes.
Provisioned IOPS SSD (io1) volumes
Provisioned IOPS SSD (io1 and io2) volumes are designed to meet the needs of I/O-intensive workloads, particularly database workloads that are sensitive to storage performance and consistency. Provisioned IOPS SSD volumes use a consistent IOPS rate, which you specify when you create the volume, and Amazon EBS delivers the provisioned performance 99.9 percent of the time.
-
io1 volumes are designed to provide 99.8 to 99.9 percent volume durability with an annual failure rate (AFR) no higher than 0.2 percent, which translates to a maximum of two volume failures per 1,000 running volumes over a one-year period.
-
io2 volumes are designed to provide 99.999 percent volume durability with an AFR no higher than 0.001 percent, which translates to a single volume failure per 100,000 running volumes over a one-year period.
The maximum ratio of Provisioned IOPS to requested volume size (in GiB) is 50:1 for io1 volumes, and 500:1 for io2 volumes. For example, a 100 GiB io1 volume can be provisioned with up to 5,000 IOPS, while a 100 GiB io2 volume can be provisioned with up to 50,000 IOPS.
To maximize the volume throughput, AWS recommends using an EBS-optimized EC2 instance type (note that most new EC2 instances are EBS-optimized by default, with no extra charge). This provides dedicated throughput between your EBS volume and EC2 instance. As instance size and type affects volume throughput, choose an instance that has more channel bandwidth than the maximum throughput of the io1 volume.
For example, an r5.12xlarge
instance provides a maximum bandwidth of 9,500
MB/s. Therefore, it can more than handle the 1,187.5 MB/s maximum throughput of the io1
volume. Another approach to increasing io1 throughput is to configure RAID 0 on your EBS
volumes. For more information about RAID configuration, refer to RAID configuration in the
Amazon EC2 User Guide.