AWS offers five different ways to pay for Amazon EC2 instances. Four of these are available in their public cloud:
- Savings Plans.
- Reserved Instances.
- Spot Instances.
…and the fifth is Dedicated Hosts, which provide you with EC2 instance capacity on physical servers dedicated for your use.
Out of all these options, Spot Instances have the most unique pricing model. Leveraging Spot Instances can save significantly more than any other pricing model, for a short time — depending on market demand.
AWS has implemented some changes to the Spot Instances pricing model since they released it. In this blog, we are going to discuss the history of Spot prices and how they work now.
Spot Instances in the Past
Most AWS compute is consumed through On-demand Instances: it is the default, pay-as-you-go choice, available at a fixed hourly rate. However, on-demand is pricier than the other Instance types.
With Reserved Instances, you can significantly reduce your EC2 cost by as much as 40 per cent. The catch: you get stuck in an upfront commitment for one to three years, regardless of whether the price changes in that period. If you do not stick with Reserved Instances during the time you paid for them, you end up losing money.
Savings Plans are a fantastic option for long-term AWS customers with predictable spend; unfortunately, they only suit a long-term, multi-year commitment.
This is where Spot Instances come in. Spot Instances help you reduce costs and maintain efficiency because they work on a supply and demand model. They can reduce your AWS costs by up to 90% compared to On-demand pricing because they take advantage of unused Instance capacity.
Previously, if you leveraged Spot Instances, the Spot pricing model was determined by real-time bids and available Spot Instances.
It worked like this:
1. When you wanted to use a Spot Instance, you submitted a request in the EC2 console specifying all parameters of the Instance, such as OS, type, size, and availability.
2. You submitted your bid price — the maximum amount you wanted to pay for a specified EC2 Instance.
3. If your bid price surpassed the current market price and the Instance was available, then you could use it at the market price. If your bid price was less than the market price, you would not be able to use the Spot Instance.
If you were using a Spot Instance, and the market price exceeded your bid price, AWS would give you a two-minute warning before terminating the Spot Instance. These sudden interruptions resulted in data loss and service degradation, thus, making Spot Instances a challenge for mission-critical, production workloads. If AWS stopped your Instance, you still paid for EBS volumes, but you could terminate your Instance at any time.
The pricing model did not allow you to forecast your costs and accurately budget. It required individuals to invest time and energy into analysing the previous process and determining the bidding strategy and maximum bid price. It was imperative that you were knowledgeable of Spot markets and bidding.
Changes to Spot Instances
Now, AWS sets the price by determining the long-term supply and demand trends, with the On-demand rate the maximum amount that you can pay for a Spot Instance. So, you will not lose your Instance when outbid. However, you should consider that AWS randomly selects the Spot Instances they will terminate when there is a surge of market demand for On-demand and Reserved Instances.
There is no chance of you losing your Instance by being outbid. However, AWS randomly selects the Spot Instances to terminate (again, with a two-minute warning) when they encounter surges in market need, for On-demand or Reserved capacity. So, there is still no protection against Spot Instance disruption.
However, because AWS bases Spot Instance markets on the Instance type, size, OS and availability zone, you have a large number of potential Spot Instance markets to run your workload.
You will not benefit from bidding higher than the default On-demand price because AWS determines the actual price, which they base on overall market trends. Also, AWS does not determine Spot Instance terminations based on your bid price. So, you can leave the maximum amount at the default AWS has set.
However, if you want to spend a specific amount, you can look at historical Spot Instance prices, and specify your price. Then, your EC2 Spot Instance will only run when the actual market price is lower or matches your bid.
New AWS Spot Instances pricing
A user’s Spot Instances experience is secure and simplified because it is now possible to pay the Spot price that is in place while your Instances are running.
Amazon EC2 sets the Spot Instance prices and alters them slowly over days and weeks per long-term Spot Instance capacity supply and demand trends, and not bid prices. Therefore, you reduce your risk of paying too much, even over the On-Demand price. The new pricing model gives you predictable costs that do not update as frequently, resulting in an average saving of 70-90% when compared with On-Demand.
Spot Instances can run for a specified hourly increments duration, with the maximum time limit being six hours. A discount between 30-50%, also in comparison with the On-Demand pricing, is available. If numerous customers request Spot Instances simultaneously, AWS meets the requests on a first-come, first-served basis.
It is also possible to now run Linux based RHEL and SUSE AMIs on Spot Instances.
AWS Cost Optimisation with PolarSeven
Our experience in Cloud solutions tells us most AWS customers attribute 65% of expenditure to EC2, 20% to RDS and the next biggest being 5% on S3, with the remaining 10% divided into much smaller costs.
In general, most savings will come from reducing cost for EC2 and RDS. How these costs are reduced will vary based on your applications, your users, and predictability of demand.
Download our eBook on AWS Cost Optimisation to explore the top 10 practices we have found most effective in reducing your AWS spend.