Learn how the Platform uses AWS EC2 Spot Instances and how this strategy could help you reduce the cost of running your tasks.
The Platform uses two types of Amazon EC2 pricing for instances: On-Demand and Spot. On-Demand instances are purchased at a fixed rate, while the price of Spot Instances varies according to supply and demand.
Spot Instances allow bidding on spare AWS EC2 computing capacity, meaning you can use the instance as long as your bidding price is higher than the market price.
Because the user always pays the current market price for the Spot Instance and Spot Instances cost a fraction of the price for On-Demand instances, using Spot Instances can significantly lower the cost of running your analysis.
The Platform uses Spot instances by default, meaning you pay a fixed hourly price (charged on a per second basis) for using the compute resources.
Types of AWS EC2 instances used on the Platform
When using Spot Instances, you pay the market price of the Spot Instance, as long as this is lower than your bid price. The Platform strategy is to bid the On-Demand instance price for Spot Instances. This ensures you are never charged more than the On-Demand instance price for using a Spot Instance.
Using Spot Instances can significantly reduce the cost of your analysis. Running an app using Spot Instances can cost as little as a quarter of the On-Demand price.
The AWS Spot Instance bid advisor allows you to see projected savings and a history of outbidding frequency for specific Spot Instances to help you in your decision. Some instances get outbid more frequently than others and the longer a job runs for, the more likely it is to be terminated.
AWS EC2 will terminate your Spot Instance if the bid price becomes lower than the market price for that instance. In this case interrupted jobs need to be restarted, so your analysis will taken longer to complete and the analysis cost might increase as well. See the section on Spot Instance termination to learn how this could impact the cost of your analysis
Because there is a limited number of Spot Instances, the market price of Spot Instances also increases when demand increases. If the market price becomes higher than what we bid for the Spot Instance, the Spot Instance gets terminated and the the task will continue running on an On-Demand instance(s). If spot instance termination occurs during the first hour of running the task on the instance, you will not be charged for using the Spot Instance. However, if the Spot Instance is terminated at any point after the first 60 minutes, you will be charged for the entire number of seconds the instance was running.
The job(s) running on the instance at the time of termination will be interrupted and have to be run again from the beginning. The jobs will be restarted on an equivalent On-Demand instance to minimize time wasted in completing your task.
Restarting jobs on another instance will inevitably prolong task execution time and add to the cost of running that job. The cost of re-running is greatest for long jobs (in the order of hours) that get interrupted close to completion. The possibility that a Spot Instance is terminated is why they are not recommended for running long, time-critical jobs.