AWS vs Azure vs Google Cloud: Pricing Comparison of Virtual Machines

Cloud

AWS vs Azure vs Google Cloud: Pricing Comparison of Virtual Machines

Comparing Azure vs AWS vs Google cloud pricing has always been difficult due to the frequency with which prices change. However, even though a pricing comparison may only have short-term value in terms of what you will pay today for cloud services, comparisons can reveal price differences you may not have previously identified.

On average, compute resources represent 75-80 percent of an organization’s cloud spend. Because compute instances are the major driver in the price you pay, we are going to compare the pricing of Instances/Virtual machines: AWS EC2 vs Azure VMs and Google cloud VMs. 

While looking through the pricing of the instances you see terms like $0.0XX per instance per hour, etc. You might think how would the pricing comparison be helpful to reduce the cloud bill. Let’s understand it with an example of Netflix. It uses AWS for its video streaming services(see the case study).

In Netflix, Stranger Things season 2 is shot in 8K and has nine episodes. The source files are terabytes and terabytes of data. Each season required 190,000 CPU hours to encode. That’s the equivalent of running 2,965 m4.16xlarge instances for an hour. The pricing of m4.16xlarge id $3.2 per hour so it costs a total of $9488 per hour to Netflix. That’s the per hour cost of Stranger Things season 2. Now, you can imagine the cost of all the instances used by Netflix for its all video streaming services. A minor difference in instance pricing can help organizations reduce thousands of dollars in total cloud bill. 

In this blog, we’ve compared the pricing of:

  • On-demand hourly pricing of Instances of AWS, Azure and Google cloud
  • Discounted pricing of instances with 1-year commitment
  • Serverless computing resources of AWS, Azure and Google cloud.

Assumptions for Compute Pricing Comparison

For apples to apples comparison, we’ve kept the same region, CPUs and operating system for AWS instances, Azure Virtual machines and Google cloud machines.

  • Region: US East- North Virginia
  • Operating System: Linux
  • vCPUs/Cores: 4

Types of Instances/Virtual machines

  • General purpose
  • Compute-optimized
  • Memory-optimized
  • GPU instances/VMs

For our comparison of AWS EC2 vs Azure VMs vs Google VMs, we’ve chosen instances with similar RAM with 4 CPUs for each type of instances. Below are the selected instances/VMs for cloud pricing comparison of computing.

AWS vs Azure vs Google cloud

AWS vs Azure vs Google Cloud: On-Demand Pricing Comparison

For each of the four scenarios below, you can see the hourly on-demand (OD) price for each cloud.

AWS vs Azure vs Google Cloud

Summary:

  • In the above table, red indicates the highest price and green shows the lowest price for the given instance types. 
  • For General purpose virtual servers, Azure VM has the lowest price whereas Google instance has the highest price.
  • For Compute optimized servers, Google instance has the lowest price whereas AWS instance and Azure VM have a similar price. 
  • For Memory optimized servers, Azure VM and AWS VM have the similar price whereas Google instance has the highest price.
  • For GPU instances, AWS instance has the lowest price whereas Google instance has the highest price.

AWS vs Azure vs Google Cloud: Discounted Pricing Comparison

All the Cloud providers offer businesses discount on on-demand instances if they commit to use for 1 or more year. For AWS and Azure, it is known as “Reserved Instances” whereas google cloud called it “Committed use Discounts”. Reserved Instances encourage businesses to commit to a predetermined level of usage for a predetermined period of time in return for a discounted hourly rate on some (but not all) instances and VMs. 

To calculate the Discounted pricing comparison between AWS, Azure and Google Cloud, we’ve considered 1 year commitment period with no upfront cost.

AWS vs Azure vs Google Cloud: Cloud Pricing Comparison

Summary:

  • For General purpose virtual servers, Azure VM has the lowest price whereas Google instance has the highest price.
  • For Compute optimized servers, Google instance has the lowest price whereas AWS instance has the highest price. 
  • For Memory optimized servers, Azure VM has the lowest price whereas AWS instance and Google instance have a similar price.
  • For GPU instances, AWS instance has the lowest price whereas Google instance has the highest price.

Per Second Billing of Azure vs AWS vs Google Pricing

Per second billing of AWS EC2 instances

On September 18th, AWS announced per-second billing on EC2 instances running Linux and EBS volumes. Before this announcement, you would have been billed for every hour an instance was up and running, even if you only used a few seconds of that hour. With this change, the cost of instances will be calculated for total seconds when instances are in “running state”.

Before you start taking advantage of this update, a few things you should note. First, the pricing change will only initially apply to Linux instances launched from “free” AMIs. This will exclude RHEL, SLES, and Windows, as well as any Marketplace AMI.

Hopefully, once vendors have a chance to work with per-second billing, this will change. The change will apply to on-demand, reserved and spot instances. Secondly, while it is granular to the second, there is a minimum instance time of one minute.

Per second billing of Google cloud virtual machine instances

The cloud wars rage on, and this time, the battle is overbilling increments.

Google announced that its cloud service will offer per-second billing. The move comes just days after Amazon Web Service made the same announcement. However, until 26th September, Google Cloud primarily billed by the minute.

Google cloud platform applied its new per-second pricing to many of its core products, including its Compute Engine and App Engine, which allow companies to build software and store data within Google’s servers. Customers who are using servers of Microsoft Windows or Linux will not be able to take this advantage.

Like AWS, Google charges for a minimum of one minute.

What does this mean to you?

If your consumption patterns are largely static and unchanging, you probably don’t have the ability to take advantage of this change and won’t notice a difference. However, if your consumption is at all variable or spiky, you can take advantage of this and may see a reduction in cost.

This can be understood with below example.

Some jobs like running EMR cluster requires less time around 10 minutes to run the job and then terminate or stop the instances.

However, whether the job took 10 minutes or 50 minutes, you paid for the full hour. Now, with the instances being billed at a per second rate, it changes how you might configure your instances. First off, it makes sense to run more instances for a shorter amount of time.

Take, for example, a job that is using m4.2xlarge instances. These instances come in at $0.4 per hour. If my job can be run in an hour with 10 instances, then my cost is $4 for the job.

However, with the removal of the hour minimum, you can now look at doubling the compute power to 20 and paying the same price for a half hour return.

Finally, if you are not already doing so, another change would be to use spot instances for your computing power. If your data processing needs have flexibility in schedule, using a greater amount of spot instances for a short amount of time can greatly reduce your bill.

What about Microsoft Azure?

So far, Microsoft hasn’t made a similar move. “With Azure Container Instances we’ve actually led the way for per-second billing, with a service that spins up in seconds and spins down in seconds, we realized it was incredibly critical to give customers this granularity in costs,” says Corey Sanders, Microsoft’s head of product for Azure Compute

As for regular virtual machines, Sanders stayed on message and noted that Microsoft wanted to focus on containers because it’s there that per-second billing makes the most sense. “We’re always looking to improve billing constructs across our platform and to make it easier and more agile for our customers to use,” he said.

Here is azure container instance pricing with an example.

Serverless Pricing Comparison

The name ‘Serverless Architecture’ misleadingly implies the server’s magical absence. In serverless computing, a third-party service provider takes responsibility for processes, operating systems, and servers. Developers can now focus on just building great software. All they need to do is code. Resource consideration (deploy, configure, manage) is no longer their concern. The cloud service provider takes care of that. The less you are meant to manage the instance, the more serverless it is. Serverless goes well with certain functions. It is for companies to learn to optimize their use and integrate them into broader data systems.

AWS Lambda, Azure Functions, and Google Cloud Functions are the services which provide serverless computing service. Cloud provider charges you for the compute power you use according to 100-millisecond increments. Developers can focus on their code and event triggers and AWS takes care of the rest.

With Consumption Plan hosting, these services completely abstract away the server construct. You no longer pay for reserving CPU Cores and RAM of the underlying EC2 instance or Virtual Machine (VM). You only pay for the time your code runs, and not for the time it remains idle. Here we’ve calculated costs for serverless computing for AWS Lambda, Azure Functions, and Google Cloud Functions.

If you allocated 512MB of memory to your function, executed it 3 million times in one month, and it ran for 1 second each time, your charges would be calculated as follows:

AWS Lambda Pricing

Let’s see how much AWS Lambda charges for the given condition.

Monthly compute charges

The monthly compute price is $0.00001667 per GB-s and the free tier provides 400,000 GB-s.

Total compute (seconds) = 3M * (1s) = 3,000,000 seconds

Total compute (GB-s) = 3,000,000 * 512MB/1024 = 1,500,000 GB-s

Total compute – Free tier compute = Monthly billable compute GB- s

1,500,000 GB-s – 400,000 free tier GB-s = 1,100,000 GB-s

Monthly compute charges = 1,100,000 * $0.00001667 = $18.34

Monthly request charges

The monthly request price is $0.20 per 1 million requests and the free tier provides 1M requests per month.

Total requests – Free tier requests = Monthly billable requests

3M requests – 1M free tier requests = 2M Monthly billable requests

Monthly request charges = 2M * $0.2/M = $0.40

Total monthly charges

Total charges = Compute charges + Request charges = $18.34 + $0.40 = $18.74 per month

Azure Functions Pricing

For Azure Monthly Compute charges would be $17.6 as it’s compute price is $0.00001600.

Total monthly charges for Azure = Compute charges + Request charges = $17.6 + $0.40 = $18 per month.

Google Cloud Functions Pricing

Let’s see how much Google Cloud charges for the given condition.

Monthly compute charges

The monthly compute price is $0.0000025 per GB-s and the free tier provides 400,000 GB-s.

Monthly compute charges = 1,100,000 * $0.0000025 = $ 2.75

Monthly request charges

The monthly request price is $0.40 per 1 million requests and the free tier provides 2M requests per month.

Total requests – Free tier requests = Monthly billable requests

3M requests – 2M free tier requests = 1M Monthly billable requests

Monthly request charges = 1M * $0.4/M = $0.40

Total monthly charges

Total charges = Compute charges + Request charges = $ 2.75 + $0.40 = $ 3.15 per month

Summary:

  • AWS and Azure have almost same pricing due to same free tier offerings and additional pricings.
  • Google Cloud Functions comes out as the cheapest provider for serverless computing due to its very low compute price($0.0000025) compare to AWS and Azure.
  • AWS and Azure have almost 6 times higher pricing than Google.
  • Monthly request charges remain the same for all three providers because Google provides 2 million free requests but on the other hand, it charges $0.40 per million requests which makes its price similar to AWS and Azure.
  • Please note, we have not included Amazon’s API Gateway price, which is $3.50 per million requests and is necessary if you want to have HTTP invocation of the function.

Conclusion

There are multiple factors organizations should consider while choosing the cloud provider and pricing is the important one. If your application is going to be used by millions of users and you are going to use thousands of instances then this comparison will help you save thousands of dollars. 

Also, if you want to build custom software using cloud computing or struggling with existing infrastructure in terms of cost or scalability then we can help. Contact us to talk with our experts about your requirements.

A thought leader, Jignesh leads Simform's Product Engineering team by DevOps Institutionalization, end-to-end product development and consulting led transformation programs.

Leave a comment

Your email address will not be published. Required fields are marked *

Simform blog

Subscribe To Our Cloud Computing Blogs!

We publish well researched blogs about best practices, challenges and solutions on cloud computing. We hate spam, get blogs directly into your inbox!

You have Successfully Subscribed!