Yesterday, Amazon released Spot Prices for their EC2 instances. Really, it is quite ingenious; like Mechanical Turk, they've taken a task they normally would have to spend costly internal resources on and outsourced it to thousands of people that now externally do it for far less. In this case, finding the profit maximizing price for EC2 resources is now done by EC2 customers. While MT pays typically a pittance for each task done, the EC2 consumers are in fact
paying for the privilege of figuring out exactly how to be charged the most for their resources.
Don't get me wrong, providing a spot price and allowing users to make contingent purchases is a brilliant business tactic. It certainly boosts AWS revenues, but more importantly it provides them immensely valuable data. Data you can't buy; data that would make most economists drool uncontrollably. Amazon collects this incredibly valuable data for free, their users clamor to share it, to give it to Amazon to lock up in its databases and mine to their hearts content. They get the demand curve.
The most important element to realize is that Amazon's spot pricing system is not a functional market. There is only one supplier of goods, so none of the standard economic theory applies. Well, at least none of the theory about competitive markets.

The graph above is the classic depiction of a
monopoly market (from wikipedia). The Y-axis is Unit price of an EC2 instance, the X-axis the number of instances supplied/demanded. The line labeled
MC depicts Amazon's unit cost for supplying another EC2 instance (the marginal cost). The line slopes upwards because when Amazon is not running at full capacity, they will start up their least expensive servers first (e.g. the most power efficient, newer ones), and only run their more expensive servers if they have to. The line labeled
demand depicts the number of instances people are willing to buy for a given price. It slopes downward because with each reduction in price, additional folks who were priced out of the market come in and will buy more instances.
In a perfectly competitive market, the price and supply of goods stabilize where the MC and demand curves intersect. At that point, it is more expensive to turn on the next instance than the next buyer is willing to pay, so no more instances are powered up. Because Amazon is the sole supplier of instances, however, they can withhold them from the market; intentionally leave machines powered down to drive up the price. Since everyone pays the same price, instead of supplying Qc instances, they only run Qm instances. That increases the price to Pm. This will increase their total profits (the yellow shaded area). In all cases, the monopoly price will be greater than the natural market price; it never works to the consumer's advantage.
Spot pricing is Amazon's way of getting their users to put this graph together. Spot price bids collectively produce the demand curve. By supplying the data, users help Amazon increase their prices to the optimum limit. And only Amazon gets to do this calculus, their users have tipped their hands regarding prices they'll pay, but Amazon has shared nothing about prices they'll accept. Goods in competitive markets are priced proportional to the cost of producing them. Goods sold by a monopoly power are priced at a higher level, proportional to the value they provide to the customer.
Furthermore, by being setting the spot price Amazon can engage in lucrative
price discrimination. Right now, any user can get a small EC2 instance for $0.085/hr. This is a terribly crude way to sell instances. If I'm a (hypothetical) Tech Crunched startup desperate for more capacity on opening day, I might be willing to pay $1/hr while if I'm still eating ramen in my garage (somewhat not hypothetical), I'm only willing to pay the published $0.085/hr. EC2 pricing is uniform so Amazon can't charge the TC rockstars a different rate than they charge me. Our counterparts in other industries have figured out some workarounds.
Sometimes I think Zoolander might be something of a documentary, but actually fashion folks know how to sell, they know how to sell
well, and we can learn from them. They figured out how to bucketize their customers charging them each a different price and in doing so increase their profits. They get a shipment of hot trendy clothes and put them out at a steep markup. Wealthy, price insensitive customers rush to the store to buy the latest outfits and pay exorbitant prices. Then once all of the wealthy folks have filtered through and sales start to drop off, they lower the price, advertise a holiday blowout, and a new wave of slightly more price sensitive folks come to gobble up inventory. Then, anything that's left is marked "clearance" and sold at a meager profit to those deal-seekers that patronize The Rack. Each group pays price tailored to their disposable income rather than the uniform and lower price predicted by a perfectly competitive marketplace. The tradeoff is that the lower on the price scale the consumer, the less reliable their supply of goods. Now Amazon naturally wants to do the same thing with their EC2 instances. They want to sell to all their price-insensitive customers at high markup, published prices, while still having something to offer at a lower price to all the cheapskates.
In an actual, functional market this would not be possible. The spot bids by consumers and spot asks by suppliers would be public knowledge. Everyone could see that Amazon is willing to sell an effectively unlimited supply of small instances at $0.085/hr, so as the sophisticated buyer, I realize I can also set my bid to $0.085. Then, in the worst case, I'll only pay the full retail price, and most of the time I'll pay the lower market rate. This, of course, will never work with Amazon's spot price system.
Amazon sees all the bids and is the only "ask". They know exactly how many folks are willing to pay the retail price for an instance and once that number is high enough, they will withhold all inventory from the spot market. They'll have the servers; they'll just turn them off for an hour. It will ensure that the folks for whom an instance is truly worth that $0.085 experience an avoidable, unexpected outage that incents them cough up the full price 24x7 and not get identical service at the cheaper price offered to the low end customers. Because everyone communicates all their bids to Amazon, they know exactly when to pull the trigger to maximize their own profits. Meanwhile, the bargain basement folks will already be taking frequent outages as the price fluctuates, so they'll be prepared for an hour of downtime anyways. Thus, the EC2 community is segmented into two groups and Amazon gets to charge each of them at the limit of what they're willing to pay.
The important thing to remember (and this is where most journalists get it wrong) is that spot pricing does not constitute a (functional) market. Amazon has simply launched a tool to help them extract more profits from you. Compared to only paying full on-demand prices, yes, this is better as computing resources will sometimes be available for less. Compared to an actual competitive market for compute resources, EC2 spot pricing is in fact terrible. You are at a significant information disadvantage, availability is necessarily unreliable, and you subject to higher monopoly pricing. Your participation only helps to stack the deck against you.
As a business, Amazon is being incredibly innovative. They're figuring out exactly how to squeeze every last dollar of profit out of their platform. As the consumer, that means they're squeezing every last dollar out of you. That's good for Amazon, but probably not good for you. Eventually, there will be many VM providers and there will be a real spot market that has all the positive characteristics we'd expect. This is a step in the right direction, but just for Amazon.