This morning, Amazon took a step with EC2 that many had long anticipated: They announced spot pricing for cloud compute instances. EC2 customers can now name their own price, and Amazon will bring compute instances up at variable discount prices according to these "bids". This complements their March 2009 move at the other end of the spectrum, extra-cost reserved instances. This evolution of the cloud compute market was predicted by many, but Amazon deserves credit for making it happen.
The obvious next question is whether spot pricing can work for cloud storage. Although there are cases where spot pricing might make sense, the nature of data storage trends against this sort of pricing model. Let's explore the question further.
Cloud compute is obviously different from cloud storage: The former deals with running applications and the latter with storage of data. That the nature of usage of the these services is so different often comes as a surprise. Compute instances tend to be peaky, coming online, spiking, dissipating, and shutting down quickly. One can imagine cloud compute instances matching the graphic below, taken from my own educational slide deck, where cloud compute instances peak daily and fall off each night over the period of a week.
The value of cloud compute is illustrated clearly here: Rather than buying 2/3 the CPU capacity, as in a virtual infrastructure, this workload can be satisfied with just 1/3 the capacity by leveraging a cloud compute platform. Your mileage may vary, of course, but this real-world example shows why so many are perfectly happy to buy compute capacity on demand.
This also illustrates why spot pricing is so attractive to the service provider. The load on their infrastructure undoubtedly matches this pattern, with peaks and valleys over short periods of time. Charging a premium for reserved instances attacks the peaks by scaling up capacity, and offering discount non-reserved spot instances fills the valleys. Although the Priceline-esque "name your own price" concept might turn some off, it makes good sense in cloud compute.
Note that Amazon's spot instance pricing scheme is not quite this straightforward: They compute a spot price based on bids for compute instances in each region. Any bids below this threshold will not be run regardless of available capacity, so it is wise to monitor the current prices and not under-bid!
Cloud storage is different. Most cloud storage use cases involve long-term retention of large amounts of data. Imagine a gallery of images, a document repository, or an archive of voice mail recordings. These examples are drawn from real-world Nirvanix cloud storage customers, and it's hard to see where spot pricing fits in.
The typical cloud storage use case matches the graphic above, with steady growth of capacity over time. It's easy to see why cloud storage is so attractive, since capacity is provisioned and charged on demand rather than in large under-utilized steps. Regardless of whether internal systems are 90% or 10% over-provisioned, waste of storage capacity is a massive ROI opportunity for public cloud storage providers.
Some cloud storage users cap their applications, deleting old content as new data is added, but very few rapidly add and delete data. Cloud or not, storage just doesn't tend to fluctuate. One can imagine corner cases where capacity swings up and down, but these are not the norm.
One reason is the inertia of storage: It's physically difficult to move large amounts of data. Although cloud storage systems are remarkably open, allowing customers to easily migrate between providers, transmitting the data still takes time. The time and cost required to switch from one provider to another would likely wipe out any savings from spot pricing.
Although spot pricing will likely never be widespread in storage, one can still imagine creative pricing strategies for cloud storage. Most providers, for example, now offer tiered pricing, discounting the per-GB cost as customers pass usage thresholds. Another popular concept is bundling expensive bandwidth to simplify the cost structure. Budgeted pricing is also popular, with a flat monthly invoice replacing the charge-as-you-go credit card model used by consumer-oriented services.
What might the future hold? Once can imagine further bundling and simplification, especially as standard APIs and applications are used to access cloud storage providers. Geographic arbitrage could soon become the norm, with remote or inexpensive data centers offering discount capacity. The federation of multiple providers is another exciting frontier to be explored. And some applications might even make use of spot pricing, but those are likely to be rare.