Expanding the Cloud - Amazon EC2 Spot Instances

| | Comments (11) | TrackBacks (1)

Today we launched a new option for acquiring Amazon EC2 Compute resources: Spot Instances. Using this option, customers bid any price they like on unused Amazon EC2 capacity and run those instances for as long their bid exceeds the current "Spot Price." Spot Instances are ideal for tasks that can be flexible as to when they start and stop. This gives our customers an exciting new approach to IT cost management.

The central concept in this new option is that of the Spot Price, which we determine based on current supply and demand and will fluctuate periodically. If the maximum price a customer has bid exceeds the current Spot Price then their instances will be run, priced at the current Spot Price. If the Spot Price rises above the customer's bid, their instances will be terminated and restarted (if the customer wants it restarted at all) when the Spot Price falls below the customer's bid. This gives customers exact control over the maximum cost they are incurring for their workloads, and often will provide them with substantial savings. It is important to note that customers will pay only the existing Spot Price; the maximum price just specifies how much a customer is willing to pay for capacity as the Spot Price changes.

Spot Instances are ideal for Amazon EC2 customers who have workloads that are flexible as to when its tasks are run. These can be incidental tasks, such as the analysis of a particular dataset, or tasks where the amount of work to be done is almost never finished, such as media conversion from a Hollywood's studio's movie vault, or web crawling for a search indexing company. For most of these tasks their completion is not time critical and as such they are ideal targets for additional cost savings.

Economies of scale

Spot Instances are an innovation that is made possible by the unparalleled economies of scale created by the tremendous growth of the AWS Infrastructure Services. The broad Amazon EC2 customer base brings such diversity in workload and utilization patterns that it allows us to operate Amazon EC2 with extreme efficiency. True to the Amazon philosophy, we let our customers benefit from the economies of scale they help us create by lowering our prices when we achieve lower cost structures. Consistently we have lowered compute, storage and bandwidth prices based on such cost savings.

This massive scale also enables new innovative purchasing models such as Spot Instances that empower our customers to gain even more control over the cost-effectiveness of their IT infrastructure. A highly efficient purchasing model such as Spot Instances is another way in which Amazon EC2 customers benefit from the unique economies of scale found in AWS Infrastructure Services.

Different Purchasing Models

The three different purchasing models Amazon EC2 offers give customers maximum flexibility in managing their IT costs; On-Demand Instances are charged by the hour at a fixed rate with no commitment; with Reserved Instances you pay a low, one-time fee and in turn receive a significant discount on the hourly usage charge for that instance; and Spot Instances provide the ability to assign the maximum price you want for capacity with flexible start and end times.

    pencil-calc.jpg
  • On-Demand Instances - On-Demand Instances let you pay for compute capacity by the hour with no long-term commitments or upfront payments. You can increase or decrease your compute capacity depending on the demands of your application and only pay the specified hourly rate for the instances you use. These instances are used mostly for short term workloads and for workloads with unpredictable resource demand characteristics.
  • Reserved Instances - Reserved Instances let you make a low, one-time, upfront payment for an instance, reserve it for a one or three year term, and pay a significantly lower rate for each hour you run that instance. You are assured that your Reserved Instance will always be available in the Availability Zone in which you purchased it. These instances are used for longer running workloads with predictable resource demands.
  • Spot Instances - Spot Instances allow you to specify the maximum hourly price that you are willing to pay to run a particular instance type. We set a Spot Price for each instance type in each region, which is the price all customers will pay to run a Spot Instance for that given hour. The Spot Price fluctuates based on supply and demand for instances, but customers will never pay more than the maximum price they have specified. These instances are used for workloads with flexible completion times.

Managing Spot Instance Applications

There is one technological requirement for the applications that run as Spot Instances: they need to be able to handle that their computation can be stopped and restarted based on the Spot Price in relation to the customer's pricing limit. Ideally these applications will periodically save their state into, for example, EBS or Amazon S3 and upon restart read the last saved state and continue their work. This snapshot-restart technique is a well known methodology already available to many batch oriented applications.

There are three features that help customers manage their Spot Instances and the pricing.

  • Persistent Requests: Spot Instance requests can be one-time or persistent. A one-time request will only be satisfied once; a persistent request will remain in consideration after each instance termination. A persistent request is useful when you have a large amount of computing that you want to get done but only below a certain price. By using a persistent request, customers can launch instances any time the Spot Price is below the target price and steadily work through the tasks.
  • Launch Groups and specifying Availability Zones: Customers can request a cluster of instances to always launch and terminate simultaneously by specifying a Launch Group. They can also specify the Availability Zone these Instances should be launched in.
  • Price History: Amazon EC2 provides a history of the Spot Price for each instance type in each Region via the AWS Management Console and the APIs. Spot Price history is a valuable tool in helping customers use what-if scenarios to determine right pricing level for a particular workload.

Spot instances are a great innovation that, as far as I know, has no equivalent in the IT industry. It brings our customers a powerful new way of managing the cost for those workloads that are flexible in their execution and completion times. This new customer-managed pricing approach holds the power to make new areas of computing feasible for which the economics were previously unfavorable.

For more details and background information visit the Amazon EC2 Spot Instance detail page, the AWS developer blog and the good folks at RightScale.

1 TrackBacks

Listed below are links to blogs that reference this entry: Expanding the Cloud - Amazon EC2 Spot Instances.

TrackBack URL for this entry: http://mt.vogels.net/mt-tb.cgi/147

» Thoughts on Amazon EC2 Spot Instances from Thinking Out Cloud

The innovation just keeps on coming from the good folks at Amazon Web Services. This week they announced a new pricing model for Amazon EC2 instances: spot pricing. Spot pricing is the third pricing model Amazon is offering for EC2... Read More

11 Comments

Adam Evers said:

This is awesome. Market pricing for computer power. People have dreamed of this and now Amazon is making it happen!

Now the real question is when will AWS start charging for half hours or quarter hours?

I have projects I need to run every hour for only 15 to 20 minutes ... but they need to run every hour.

:-D

Can AWS provide any guarantee that in the event of instances being terminated due to the spot price rising, the instances with the lowest bid price will be terminated first? (Obviously if the price varied continuously, this would be guaranteed, but auction prices don't vary continuously.)

This would be useful in a master-plus-workers scenario where it's useless to have a master without any workers, since a user could bid $X/hour for the workers and $X + epsilon/hour for the master, with the results that (a) if he had any workers, he would have a master, and (b) unless the spot price fell into the range (X, X + epsilon] he would never have a master sans workers.

This is really amazing. We'll start playing around with it right away. One question though: what's the frequency the spot price changes? If it changes every minute for example, this can cause a problem where the instance will got on and off again every couple of minutes as the price goes up and down around the bidding price.

I think it changes every hour, but I'm still not sure. Even though, a spot price for the next 3, 6, 12 hours will also be very helpful if the instance is needed to run for a minimum period of time.

David Orban said:

Congratulations for this great new feature!

The key is really in your last sentence: "make new areas of computing feasible for which the economics were previously unfavorable".

As we explore the space of possible applications we are guaranteed to keep bumping up against new barriers. Amazon Web Services will be of great service to us all as keep innovating, technically, and in its economics.

Greg Linden said:

Excellent! Great to see it!

Jamie Lin said:

Based on supply-demand, shouldn't people just bid the price of on-demand instances and they'll end up paying equal or less than what they're paying so far, which eliminates the need for on-demand instances as an option?

Wes Felter said:

Is the auction first-price or second-price?

This is great news! So when can we expect a futures market?

M M M said:

Market demand pricing gives us $2,000 coach seats if you buy the day of the flight, or $200 if you buy 21 days in advance. Yet the plane still costs the same per seat to fly it. This prevents any price stability to build predictable needs into a financial model for those who buy the seats. And the airlines are broke and bankrupt anyway. Why is this a good idea again?

Rani Martier said:

This is very much like the gas station model, were we can count on having the price stay static until the next day when the market’s opens. Such model will help users map out their processing needs according to the daily price. Now, like gas, it would be great if they can break the cost down by minutes.

Tom Hughes said:

M M M's analogy to the airlines is fair: pricing that responds to load is becoming the norm for capital-intensive businesses with assets that are time-sensitive. Airlines fly with seats full or empty; unused EC2 cycles once lost are gone forever. AWS is providing the "Priceline" offer: name your price.

The reason airlines go broke, I think, is because of the structural rigidities in their business: the unionized workforce and the monopoly-controlled airline gates. Those prices don't move with demand so the airlines take all the market stress onto their income statements until they declare bankruptcy. (You wonder if the airline unions, at least, would be better served if they could set their prices in line with demand, but doing so might obsolete the union negotiators, so that isn't likely.) Anyway, those rigidities don't operate in the market for computing services, so this model shouldn't lead to the same sharp price fluctuations.

About this Entry

This page contains a single entry by Werner Vogels published on December 13, 2009 11:00 PM.

Powerful New Amazon EC2 Boot Features was the previous entry in this blog.

Choosing Consistency is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.