Cloud Machine Manager Blog

How Amazon EC2 Pricing Works

Amazon EC2 PricingAmazon Web Services (AWS) provide many with a service and infrastructure they otherwise couldn’t afford. Being able to spin up servers as needed for a low cost is great, until it gets expensive.

Spinning up new Amazon EC2 servers gets expensive through over-provisioning servers and misunderstanding of costs.

Amazon EC2 provides many different servers to choose from for different platforms. And they cost different amounts. A Windows m4.large server costs more per hour than a Linux m4.large server. To complicate things further, your country and region is taken into account for costs and there are different prices for different parts of the world.

This makes the costs easy to misunderstand, and it’s even easier to misunderstand when you don’t know the full story. If a developer tells you that they are spinning up a new c4.xlarge server to use for around 20 hours a week, how do you calculate the cost?

The missing information is vital. What region has been selected to spin up the server and what platform are they running it for?

Amazon EC2 servers can also be provisioned in different ways through On-Demand Instances, Reserved Instances and Spot Instances. Without extra tools, Spot Instances are likely to be your cheapest option as this is where you bid on spare server capacity. Amazon sets lower prices for the spare capacity, you choose how long you want it for and your maximum hourly price and then hopefully, you get your server.

For longer-term use (1-3 years), Reserved Instances are the easiest way to save some money without the use of extra tools. Reserved Instances involve paying a one off cost for a set amount of hours that are heavily discounted by Amazon.

On-Demand is the most expensive provisioning option but also the most flexible. You can spin up on-demand servers for a few hours or a few months (or for as long as you need), but you pay an hourly cost. This is a common way that developers spin up new servers and it’s a great way to provision servers but cost can become a factor.

When your developer tells you that they are only using the server for 20 hours a week for 12 weeks, the logical thing to do is work out the hourly cost of the server by the 240 hours you have been told it will be on. If they spin up a Windows m4.large server in US East then the cost for those 240 hours will be  around $60 (based on December 2015 prices). Not bad, right?

But imagine the shock when you see the bill after the first month and it’s already over $180. What happened?

The servers have only been used for a month and the cost is already three times the cost that was budgeted for the whole 12 weeks. For some, they might assume the developers are using the servers for longer than originally stated and others might think there has been some sort of misunderstanding.

It’s probably the latter. The dev team might only be using the servers to test for 20 hours a week, as originally pitched, but when you provision Amazon EC2 servers on-demand, you are charged for every hour they are turned on.

It doesn’t matter how much the servers are used, as long as they are turned on, you’re being charged.

It’s an easy way to rack up a large bill, but sadly, there isn’t always an easy way to manage the switching off and on of servers so you are only being charged for the 20 hours a week actually being used. Scheduling is one way of going about it but if your developers test schedule is fairly erratic then scheduling isn’t necessarily the answer.

When a developer next pitches to you for new servers, make sure you’re asking the right questions. How long is the project? What platform? What region? What size server? This way you can put together a realistic cost analysis for a budgetary decision.

If they are only doing a few hours of testing, Spot Instances might be the answer. If it’s a long term project over a year, Reserved Instances are probably the answer. But if it’s somewhere in between, then On-Demand Instances with some proper management is a great way to get the cloud servers your company needs.

Cloud Machine Manager is one way of managing server use by switching the servers on and off based on usage or on-demand so you do only pay for the 20 hours a week.

This software solution can help you to save a significant amount of money, which can even be reinvested in larger and faster servers – effectively a free upgrade!

See how much you can save with CMM by checking out our savings estimator here.