There are many Amazon EC2 users like me – those with a handful of micro, small, or medium instances to run various web services, etc. I have a personal account with Amazon with a single EC2 small instance for my aerial photography business website as well as various websites for friends and family. I recently realized that when I set up my instance, I neglected to consider reserved instance pricing that Amazon offers. I’m betting that many of you are like me – lightweight EC2 users who are missing out on the discount, so I thought I would share my analysis.
My personal situation is basically line 2 of the chart below (the small instance). I’ve been paying $0.06/hour for more than a year, so about $43/month. If I had taken the time to look into the reserved pricing advantage, I could have saved about $233 over the year. I would have needed to pay $169 up front, but then I would have received reserved pricing at $0.014/hour instead of $0.06/hour.
Amazon offers three flavors of Reserved instance pricing – Light Utilization, Medium Utilization, and Heavy Utilization (used in the chart above). Basically, it’s three different combinations of upfront pricing vs lower hourly rates. Since I’m running basic web servers, the instance is up 24 hours per day (about 730 hours per month or 8765 hours per year), so the best pricing for me (and most people) is the heavy utilization option.
Amazon is effectively rewarding you for being consistent with your EC2 demands.
When is reserved not a good option?
The upfront cost is non-refundable, so if you only plan to use the instance for three months, you’ll lose money compared to the normal on-demand instance pricing. For example, you might choose a micro instance for the development phase of a project and then upgrade three months later to a medium. If you do a reserved instance on the micro instance, and then you upgrade the instance to a medium, you do not get reserved pricing on the medium instance because you locked into the micro pricing. Only do reserved when you know that you are good to go for enough months to justify the upfront cost.
How do I convert an existing instance to reserved pricing?
One common misconception about reserved instances is that they are a different type of instance. The instance itself is exactly the same so no change is needed. Using reserved instances is all about billing. When Amazon calculates your bill, they check to see if you have reserved any instances of the same criteria (type, zone, etc.), and if you do, they apply the reserved pricing. In order to get the discounted hourly rate of reserved instances, you simply need to buy a reserved instance that matches your existing instance. In my case, I had a m1.small instance running in the us-east-1d availability zone. I simply went to the Reserved Instance page in the EC2 console, clicked “Purchase Reserved Instances” and filled in the following dialog to match my existing image criteria:
After going through the checkout process and paying the upfront cost, I was all set. Any future hours are now billed at the discounted rate.
I could have gone with a 3-year term, but that felt a little long for my situation and the additional savings wasn’t substantial. Also, when you go with a reserved instance, you are locking into the current price, so if the price of EC2 reserved instances goes down, you won’t be able to take advantage of it mid-term. So, a one year term seems best in my opinion.
To see detailed pricing in all zones, all instance types and other terms, go to the Amazon EC2 pricing page.
IMPORTANT: If you are new to Amazon EC2, be sure to check out the Free Tier. Free is always better than discounted pricing! The free tier gives you a year of micro instance usage, 30GB of space, 15GB of bandwidth and more. See the Amazon EC2 pricing page for more details.