title: What does IOPS (in Amazon EBS) mean in practice?
body: <p>I have some images needed for an app. There are many images (50,000+) but the overall size is small (40 Mb). Initially, I thought I would simply use S3 but it is painfully slow to upload. As a temporary solution, I wanted to attach an EBS containing the images and that would be fine. However, reading a bit about EBS General Purpose (gp2) I noticed the following description:</p>
  
  <blockquote>
    <p>GP2 is the default EBS volume type for Amazon EC2 instances. These
    volumes are backed by solid-state drives (SSDs) and are suitable for a
    broad range of transactional workloads, including dev/test
    environments, low-latency interactive applications, and boot volumes.
    GP2 is designed to offer single-digit millisecond latencies, <strong>deliver a
    consistent baseline performance of 3 IOPS/GB</strong> to a maximum of 10,000
    IOPS, and provide up to 160 MB/s of throughput per volume.</p>
  </blockquote>
  
  <p>It is that 3 IOPS/GB quantity that is worrying me. What does this mean in practical terms? Suppose that you need an e-commerce site for a small amount of users (e.g. &lt; 10,000 requests per minute) and these images need to be retrieved. Amazon <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html">describes</a> how IOPS are measured: </p>
  
  <blockquote>
    <p>When small I/O operations are physically contiguous, Amazon EBS
    attempts to merge them into a single I/O up to the maximum size. For
    example, for SSD volumes, a single 1,024 KiB I/O operation would count
    as 4 operations, while 256 I/O operations at 4 KiB each would count as
    256 operations.</p>
  </blockquote>
  
  <p>Does this actually mean that if I want to retrieve 50 images of 10kB each in under a second, I would require 50 IOPS and easily exceed the baseline of 3 IOPS? </p>
  
  <p><strong>UPDATE</strong>:</p>
  
  <p>Thanks to Mark B's suggestion, I was able to use S3 to upload my files. However, I'm still wondering about the amount of IOPS needed to perform common tasks such as running a database or serving other files for a web application. I would be glad to hear some reference values regarding the minimal values of IOPS based on your experience.</p>