Amazon Web Services offers a flexible, scalable and, if properly calculated, affordable option for organizations who wish to take advantage of a large and experience cloud provider. The Elastic Compute Cloud (EC2) runs on virtual servers known as instances, which come with different combinations of computing and storage capacity to suit different needs.
Choosing the right instance is a major factor in determining the ultimate cost of your EC2 usage. You can refer to an AWS Total Cost of Ownership Calculator to help compare your cloud computing expenses to the equivalent operations on-premise.
EC2 pricing options are based on a combination of instance types and time commitments, with options for a virtual private cloud deployment and the use of elastic IPs. If you are planning to move to the cloud, or simply want to adjust your current cloud computing strategy, this guide will help you understand the costs of EC2.
Amazon EC2 was one of the first cloud services Amazon offered, and is still the core of the AWS ecosystem. If you look at Amazon’s EC2 pricing pages, you’ll see that EC2’s pricing is almost as complex as the technology being offered. Let’s take it step by step and try to understand how much it really costs to rent a machine instance on Amazon EC2.
Important notes about prices:
Amazon offers, at the time of this writing, 61 types of machine instances divided into five categories - General Purpose, Compute Optimized, Memory Optimized, Accelerated Computing and Storage Optimized.
It would be difficult to discuss all 61 machine instances, but to illustrate the range of options, the table below shows the lowest-power, cheapest instance vs. the highest-power and most expensive, across the five instance categories.
| Instance Category | Lowest Instance Specs | Highest Instance Specs |
|---|---|---|
| General Purpose Instances | t2.nano * 1 Xeon vCPU @ 3.3GHz * 0.5 GiB memory | m4.16xlarge * 64 Xeon E5 vCPU @ 2.3 GHz * 32 GiB memory |
| Compute Optimized Instances | c5.large * 2 Xeon Platinum vCPU @ 3.0 GHz * 4 GiB memoryNetwork < 10 Gbps | c4.8xlarge * 36 Xeon E5 vCPU @ 2.9 GHz * 60 GiB memoryNetwork 10 Gigabit |
| Memory Optimized Instances | r4.large * 2 Xeon E5 vCPU @ 3.3GHz * 15.25 GiB memory * Network < 10 Gigabit | x1e.32xlarge * 128 Xeon E7 vCPU @ 2.3 GHz * 3,904 GiB memory * Network 25 Gigabit * 2 X 1,920 GB SSD |
| Accelerated Computing | p2.xlarge * 1 Xeon E5 vCPU @ 2.3 / 2.7 GHz (turbo) * 61 GiB memory | p3.16xlarge * 64 Xeon E5 vCPU @ 2.3 / 2.7 GHz (turbo) * 488 GiB memory * Network 25 Gigabit |
| Storage Optimized | i3.large * 2 Xeon E5 vCPU @ 2.3 GHz * 15.25 GiB memory * 1 X 475 GB VNMe SSD | i3.16xlarge * 64 Xeon E5 vCPU @ 2.3 GHz * 488 GiB memory * 8 x 1,900 GB NVMe SSD |
Actual pricing of EC2 instances is determined by your time commitment. You can request instances on-demand, get spot instances based on availability in Amazon’s data center, or get a reserved instance by committing to a 1-3 year period in advance. A fourth option I won’t discuss here is dedicated instances, which are physical hosts pre-configured by Amazon for your workloads. This variety of pricing options allows newcomers to EC2 plan a flexible cloud migration strategy.
The spot instances options is an interesting one. Would you be willing to take the trouble of bidding for spot instances, moving your workloads there, and then moving workloads off the instances when they are no longer available? This could work in some use cases, with an appropriate redundancy and replication strategy. If the answer is yes, Amazon is prepared to give you a discount of around 60% on its hourly price for almost all machine instances.
The following table shows pricing for the lowest and highest spec instance in each category, vs. the three commitment tiers. This should give you a good idea of the range you can pay per hour for instances on EC2.
The table shows prices for Linux instances - you’ll pay a premium for RHEL, SLES, Windows, or Windows with SQL Server.
| Instance / Commitment | On-Demand Per Hour Cost* | Spot Instance Per Hour Cost* | Reserved Instance Per Hour Cost* ** |
|---|---|---|---|
| General Purpose - t2.nano | $0.0058 | $0.0035 | $0.003 |
| General Purpose - m4.16xlarge | $3.2 | $0.6052 | $1.888 |
| Compute Optimized - c5.large | $0.085 | $0.0173 | $0.052 |
| Compute Optimized - c4.8xlarge | $1.591 | $0.292 | $0.966 |
| Memory Optimized - r4.large | $0.133 | $0.0186 | $0.080 |
| Memory Optimized - x1.32xlarge | $13.338 | N/A | $7.828 |
| Accelerated Computing - p2.xlarge | $0.9 | $0.3012 | $0.585 |
| Accelerated Computing - p3.16xlarge | $24.48 | $9.6477 | $15.912 |
| Storage Optimized - i3.large | $0.156 | $0.0468 | $0.102 |
| Storage Optimized - i3.16xlarge | $4.992 | $1.4976 | $3.244 |
(*) All prices were sourced from the AWS website in April 2018, and relate to the US East (Idaho) data center and plain Linux operating system. They are intended as ballpark figures. For actual current pricing, always consult the AWS pricing pages.
(**) Reserved Instance pricing is taken for a Standard 1 Year Term, Partial Upfront option - it’s possible to pay nothing upfront, only part of the sum, or everything, and prices are reduced accordingly. Of course, increasing the commitment period increases the discount.
As you can see, instance prices range from under one US cent per hour for a Nano instance, to $24.48 per hour for a mega machine with 64 Xeon E5 processors, 488 GiB of RAM and a 25 Gigabit network connection.
Spot instances (which, as mentioned, are not for everyone), take 60% of the price. Reserving an instance for a year with partial upfront payment will grant you a discount of 35-45%.
Regular Amazon machine instances are limited in performance, and allow a performance burst when there is a special need. If you want to work with unlimited machines that provide 100% of their compute power, you can use T2 Unlimited Instances.
There are special rates for this type of instance:
Amazon’s Virtual Private Cloud provides a segmented network within the AWS cloud which is just yours. It provides complete control over the networking environment and important security benefits.
In this post I provided the information necessary to calculate your use of the Amazon Compute Cloud. I covered the various Amazon EC2 instance types and how they are billed per hour, depending on their usage model, as well as the pricing options for your very own, segmented VPC network.
Depending on your needs, you can plan your budget for on-demand instances or opt for cheaper, spot instances. If you have more room in your budget, you can choose a higher level of control and computing power. There are plenty of options for every project or pocket.