It's not enough to simply select an Amazon Elastic Block Store volume type. No EBS volume alone can guarantee that...
the related cloud workload -- usually running in a connected EC2 instance -- will experience peak performance. Selecting a better-performing volume can help, but that doesn't ensure high EBS performance either. Fortunately, several strategies can help improve application performance with an EBS volume.
First, applications use storage differently and have unique requirements for storage throughput, I/O and latency. For example, a workload that depends on throughput rather than IOPS could experience reduced performance when using an EBS General Purpose SSD (GP2) instance with 10,000 IOPS and 160 Mbps throughput. It might actually perform better on a Throughput Optimized HDD instance with 500 IOPS and 500 Mbps throughput. Understanding the storage demands of a workload and finding an EBS volume that better suits the preferred storage characteristics is important.
Monitoring also is a good way to measure and track EBS performance. Amazon CloudWatch can report on a variety of storage metrics, including the read/write throughput, read/write IOPS, burst performance and volume queue length. Monitoring won't fix poor workload or storage performance, but assessing performance metrics over time can provide insights into potential limitations. Successful monitoring also provides feedback on how changes affect EBS performance.
Using EBS-optimized Elastic Compute Cloud (EC2) instances is another step to improve performance. Optimized EC2 instances provide dedicated throughput and minimize traffic contention between the workload and any EBS storage volume type. This allows the workload to take full advantage of the IOPS available from an EBS volume. Users can select EBS-optimized EC2 instances with dedicated throughput from 500 to 4,000 Mbps, allowing users to balance EBS performance and cost.
Another option is to combine multiple EBS volumes in a RAID 0 (striped volume) configuration. Multiple EBS instances share the I/O load in this approach, improving storage performance above levels that might be possible for single EBS volumes. RAID 0 configurations can be applied to all four EBS volume types.
Finally, consider various other factors that affect storage performance. For example, small, random I/O activity can degrade HDD performance. Applications that use such I/O patterns can benefit from a solid-state GP2 EBS instance. Conversely, read-heavy workloads that rely on large, sequential I/O might benefit from configuring a larger read-ahead buffer for the EBS instance. Inconsistent I/O requests might upset HDD storage performance, so monitoring tools can determine how variable the wait is for storage access. Latency can also be a problem when accessing data from an EBS volume restored from a snapshot, so initialize the restored volume to avoid this. This can be done by accessing each block before using the volume in production.
What are the different types of EBS volumes?
Save an EBS snapshot to Amazon S3
Increased volume capacities allow users to resize
Dig Deeper on AWS database management
Related Q&A from Stephen J. Bigelow
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading
Just because software passes functional tests doesn't mean it works. Dig into stress, load, endurance and other performance tests, and their ... Continue Reading