AWS EBS Performance Tips
EBS performance is dependent on many factors, including I/O characteristics, the configuration of instances or volumes, and can be improved by using PIOPS and EBS-Optimized Instances, Pre-Warming, and RAIDed configuration
EBS-Optimized and 10 Gigabit Network Instances
EBS-Optimized instances use an optimized configuration stack and provide additional capacity for EBS I/O.
Optimization maximizes the performance of the EBS volumes by minimizing contention among EBS I/O traffic from an instance
EBS-Optimized instances provide dedicated throughput to EBS. There are options between 500 Mbps up to 4,000 Mbps depending on the type of instance.
EBS-Optimization is not supported by all types of instances
EBS-Optimization is enabled by default for some Instance types, but it can be turned on for others.
EBS optimization is enabled for an instance. If the instance is not EBS-Optimized automatically, an additional low hourly fee is charged for the dedicated capacity
Attached to an EBS-optimized instance the General Purpose (SSD), volumes are designed for delivering within 10% of their baseline performance and burst performance 99.9% of time during a given year
Provisioned IOPS volumes (SSD) are designed to deliver within 10% their provisioned performance 99.9 % of the time in any given year.
EBS volumes that are empty do not require initialization (prewarming) and they perform at their best when they are available.
EBS volumes required a pre-warming before they could be used. For volumes that were created from snapshots, you could pre-warm the volume by either writing to the whole volume with 0 or reading it in its entirety.
Before storage blocks can be accessed, volumes that were restored using snapshots must first be initialized. This involves pulling down S3 and writing to the volume.
This preliminary action can take time and can increase the latency of an I/O operations the first time each block has been accessed.
The following options can be used to avoid the initial performance hit in a production environment: Use the dd and fio utilities to immediately initialize the volume.
EBS volumes can be separated if one volume is not performing well and more are needed.
Stripping volumes allows you to push tens of thousands IOPS.
EBS volumes are already replicated across multiple servers within an AZ for availability, durability, and reliability. AWS recommends stripping for performance rather than durability.
RAID 0 can stripe multiple volumes simultaneously to achieve greater I/O performance. RAID 1 can mirror two volumes at a time for redundancy and on-instance redundancy.
RAID 0 allows I/O distribution across all volumes within a stripe, allowing for straight gains with every addition.
RAID 1 can be used to replicate volumes and last longer, but it will require more EC2 bandwidth to EBS bandwidth because data is written to multiple volumes simultaneously. This should be used in conjunction with EBS-optimization.
EBS volume data is replicated across multiple servers within an AZ to prevent data loss due to failure of any one component
AWS does not recommend RAID 5 or 6 because parity write operations can consume the IOPS available to the volumes. This can result in 20-30% fewer IOPS than RAID 0.
A 2-volume RAID 0 configuration can be more efficient than a 4-volume RAID 6, which costs twice as much.
Practice Questions for AWS Certification Exam
Questions are collected via the Internet. The answers are marked according to my knowledge and understanding (which may differ from yours).
AWS services are constantly updated and the answers and questions may be out of date.