Amazon EBS (Storage) Performance Limitation
I have mentioned before that standard EBS storage in AWS runs on a credit system. Credits build up while a volume sits idle and are spent whenever the requested I/O rate rises above a predefined baseline. The details are covered in the AWS documentation. This limitation caught me off guard during the failed project I had worked on 18 months ago.
A few days ago I got the same problem while syncing data between 2 volumes, so I decided to capture what happened and share it here for anyone following this blog.
The CloudWatch read throughput graph (metric name: VolumeReadOps) looked like this during the sync:

I have marked the three areas that need explaining:
-
Credit consumption. The volume was in “Credit Consumption” mode here. While credits lasted, performance stayed close to the maximum Amazon allows for this instance and volume type.
-
Credits exhausted. Once credits ran out, this volume dropped back to its low baseline of 3 IOPS per GB, which works out to 150 for this 50GB volume.
-
Short idle period. A brief pause let some credits accrue, which allowed a small burst before performance fell back to the low baseline again. Here it is in more detail:

Conclusion? Plan your AWS workloads carefully. Always monitor your CloudWatch metrics, and be ready to move to Provisioned IOPS volumes if needed.
Note: This post was written by an AWS Certified Solutions Architect (Associate). Please always work with an expert when setting up production environments.