Cloud Pricing Comparison 2021: AWS vs Azure vs Google Cloud
Cloud pricing comparison of AWS, Azure, and Google cloud has always been difficult due to the frequency with which prices change. It’s true that such a variation may only have short-term value in terms of what you’ll pay today for cloud services, but it reveals crucial cost differences you may not have previously identified. And most importantly, it helps you to estimate the budget of your software development project.
On average, compute resources represent 75%-80% of an organization’s cloud spend, and this is because a compute instance is what drives the price you pay. In this blog, we’ll compare the pricing of Instances/Virtual machines: AWS EC2 vs. Azure VMs and Google Cloud VMs.
While looking through the cost of instances, you might come across terms like $0.0XX per instance per hour. And you might wonder how comparing price tags would help reduce your cloud bill. Well, let’s understand it with an example of Netflix––it uses AWS for its video streaming services (see the case study):
Netflix uses Amazon EC2 instances and Kinesis data streams to handle the streaming workload for 190 countries effectively. With the new developments promised in AWS reInvent 2020 announcements, Netflix has been leveraging the next-gen AWS Graviton2-based EC2 instances, which has helped them improve their performance by 50%. Unlike the earlier m4.16xlarge, which cost Netflix $3.2/hour, m6g.16xlarge costs $2.464/hour, and m6g.xlarge costs only $0.0154/hour. You could imagine the cost Netflix saves on their cloud billing––which also reduces the billing amount for their subscribers as a result. This shows how a minor difference in instance pricing can save thousands of dollars in total cloud bill.
Cloud Pricing Comparison Criteria
For better understanding of the pricing difference, we’re considering the same region to compare CPUs and operating systems for AWS instances, Azure Virtual machines, and Google Cloud machines.
- Region: US East- North Virginia
- Operating System: Linux and Windows
- vCPUs/Cores: 4
Types of instances/virtual machines
- General purpose
- Compute optimized
- Memory optimized
- Accelerated computing
For our comparison of AWS EC2 vs. Azure VMs vs. Google VMs, we’ve chosen instances with similar RAM with 4vCPUs for each type of instance. However, you should note that the memory-optimized and accelerated-computing instances for Google cloud are an exception. This is because their minimum vCPUs currently does not start at 4vCPUs, unlike AWS and Azure. Instead, they begin at 40vCPUs for memory-optimized systems and 12vCPUs for accelerated computing systems, which indicate highly advanced computation possibilities and might seem over-the-top when looked at from a pricing angle. Yet, it’s vital to keep in mind that the memory-optimized and accelerated instances of Google Cloud offer superior memory. Below are the selected instances/VMs for cloud-pricing comparison of computing.
AWS vs Azure vs Google Cloud: On-Demand Pricing Comparison
For each of the four instance-type scenarios, you can find the hourly on-demand pricing of each service in the table below.
In the above table, red indicates the highest price and green represents the lowest price for the respective instance types.
- Google Cloud and AWS are almost similar in pricing for systems that operate on general-purpose and on instance types of memory-optimized cloud.
- The price difference between AWS and Azure is negligible for their respective compute-optimized cloud instances. On the other hand, Google Cloud is priced the highest in this service thanks to their scalable processors and an all-core turbo performance.
- The price of Google Cloud for memory-optimized and accelerated-computing instances are way higher because they do not have 4vCPUs unlike AWS or Azure. Instead, they provide 40vCPUs and 12vCPUs respectively.
AWS vs Azure vs Google Cloud: Discounted Pricing Comparison
All Cloud providers offer businesses discounts on on-demand instances if they commit to use for 1 or more years. For AWS, it’s known as “Reserved Instances” (RI); for Azure, it’s “Reserved Savings” whereas it’s called “Commitment Price” in Google Cloud. These types of discounts encourage businesses to commit themselves to a preset level of usage for a fixed period in return for a discounted hourly rate on some (but not all) instances and VMs.
To calculate discounted pricing among AWS, Azure, and Google Cloud, we’ve considered a one-year commitment period with no upfront cost.
For your information:
Currently, AWS offers three different reserved instances: Standard RIs, Convertible RIs, and Scheduled RIs. These RIs differ with each type of RI plan. There’s also a three-year commitment plan offered by all three cloud technologies for businesses that are confident they will run longer. While Azure and Google Cloud provide 3-year commitment plans similar to AWS, AWS offers a fixed average discount of 40% for all 1-year commitment plans irrespective of the instance type.
In the above table, red indicates the highest price and green represents the lowest price for the respective instance types.
- For Google Cloud, on-demand pricing of memory-optimized instances was the highest, but its 1-year commitment price is the lowest compared to AWS and Azure. This is because Google Cloud offers a 1-year commitment to memory-optimized instances on two divisions––vCPUs/hour and GBs/hour used separately as per requirement.
- Google Cloud is much cheaper than AWS and Azure for computing optimized cloud-based instances. On the other hand, it’s more expensive than others when it comes to the instance types of accelerated computing.
- Once again, the general-purpose instances for AWS and Azure are almost similar for 1-year committed/reserved plans.
Thinking to migrate your application to Serverless?
Cloud Pricing Comparison: Per Second Billing
Per second billing- AWS
In 2017, AWS announced the possibility of per-second charges on EC2 Linux based instances and EBS volumes. Today, per-second billing still applies to them and has been extended to other services as well to some extent. Though there’s no official mention of second-wise charges for Windows, RHEL, or SLES, you can find countless users in developer forums sharing how their AWS Services are billed per the second for Windows. Some speculate that it could be a bug while some believe it might be a trial run by AWS, but an official announcement confirming either theory is yet to be made. However, AWS has officially announced that each partial instance consumed in an hour by a user will be invoiced per second for all Linux instances. It’s worth noting that per-second billing is considered with a minimum 60-second limit.
This per-second billing applies to on-demand pricing plans for businesses in all officially announced regions with AWS instances zones.
Per second billing- Azure
While Azure has started allowing second-wise charges with no long-term commitment since late 2019, they haven’t still made it available for all instances. They’re still identified to be billed by the minute, and this is because their per-second billing still focuses largely on container-based instances.
As for regular virtual machines, Sanders stated that Microsoft wanted to focus on containers because they believe that it’s containers where 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.
Per second billing- Google Cloud
Earlier, Google Cloud billed per hour, followed by per minute much like AWS. But when AWS announced the possibility of per-second billing, Google Cloud followed suit. The second-wise billing offered by Google Cloud is considered better than that of AWS because the latter offers this service only for Linux-based instances. Whereas with Google Cloud, per-second charges apply to all VM-based instances. They have improved their invoicing capacities to reduce user burden by focusing on the granularity of seconds.
All instances are measured in the number of seconds, and after each minute, instances are billed in 1-second increments. It’s also essential to keep in mind if the virtual machine runs for anywhere between 30 seconds and 1 minute, then the instance is considered terminated and is still billed for 1 minute of usage.
Serverless Pricing Comparison
AWS Lambda, Azure Functions, and Google Cloud Functions are some serverless services available in the market. For the computing power you use, these cloud providers charge you in 100-millisecond increments. This way, you developers are free to focus on their code and event triggers. Serverless service providers will take care of the rest.
As far as cost is concerned, you no longer need to pay for reserving CPU Cores and RAM of the underlying EC2 instances or virtual machines. You only pay for the time your code runs––and not for the time it remains idle. Here we’ve calculated the cost of serverless computing for AWS Lambda, Azure Functions, and Google Cloud Functions.
For better understanding, we’ll consider the following hypothetical scenario for all three services:
You allocated 512MB of memory to your function, executed it 3 million times in one month, and ran it for 1 second each time.
Amazon’s API Gateway price per million requests and HTTP invocation cost have not been considered in the aforementioned scenario.
So your charges would be calculated as follows:
AWS Lambda Pricing
Monthly compute charges:
- The monthly compute price is $0.00001667 per GB-second (GB-s), and the free tier provides 400,000 GB-second (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 price per month for AWS Lambda = Compute charges + Request charges = $18.34 + $0.40 = $18.74 per month.
AWS Lambda Pricing: How Much it Costs to Run a Serverless Application?
Azure Functions Pricing
Resource consumption (seconds):
- Execution number = 3 million executions
- Execution duration = 1 second
- Total resource consumption = 3 million executions * 1 second = 3,000,000 seconds
Resource consumption GigaByte Second (GBs):
- Resource consumption in GBs = 512 MB / 1,024 MB = 0.5 GB
- Execution time (seconds) = 3 million seconds
- Total consumed GBs = 3 million seconds * 0.5 GB = 1.5 million GBs
- Resource consumption = 1.5 million GBs
- Monthly free grant = 4,00,00 GBs
- Total billable consumption = 1.5 million GBs – 4,00,000 GBs = 1.1 million GBs
Monthly resource-consumption price:
- Billable resource consumption = 1.1 million GBs
- Resource-consumption price = $0.000016/GB
- Total monthly resource-consumption cost = 1.1 million GBs * 0.000016/GB = $17.60
- Total monthly execution = 3 million executions
- Monthly free executions = 1 million executions
- Total monthly billable executions = 3 million executions – 1 million executions = 2 million executions
Monthly execution price:
- Monthly billable execution = 2 million executions
- Price per million execution = $0.20
- Monthly execution cost = 2 million executions * 0.20 = $0.40
Final total monthly bill:
- Monthly resource-consumption cost = $17.60
- Monthly executions cost = $0.40
Total monthly cost for Azure Functions = $17.60 + $0.40 = $18
Google Cloud Functions Pricing
(512 MB / 1024 MB) * 1 second = 0.5 GB-s per invocation
For 512 MB, Google cloud offers an 800MHz CPU. So, GB-seconds would be:
(800 / 1000) * 1 seconds = 0.8 GHz-second per invocation
Per second usage:
- 3,000,000 million executions * 0.5 GB-s = 1,500,000 GB-s per month
- 3,000,000 million execution * 0.8 GB-s = 2,400,000 GHz-s per month
Google Cloud offers a free tier of 2,000,000 invocations, 400,000 GB-seconds, and 200,000 GHz-seconds per month. Hence, the billing would be as follows:
- 3,000,000 – 2,000,000 = 1,000,000 million execution * $0.0000004 = $0.4
- 1,500,000 – 400,000 = 1,100,000 * $0.0000025 = $2.75
- 2,400,000 – 200,000 = 2,200,000 * $0.0000100 = $22
Total price per month for Google Cloud Functions = $0.4 + $2.75 + $22 = $25.15
- AWS and Azure almost have a similar monthly price, and this is a result of the high free-tier offerings they provide.
- Google Cloud Functions have the lowest unit price for GBs consumed per second along with free-tier offerings. They seem to have the highest price/month due to the additional cost incurred from the MHz CPU performance.
Still struggling with cost and scalability? We’re here to help!
As an organization, you would have to consider multiple factors while choosing a cloud-service provider, and pricing just cannot be left unchecked. If your application will be used by millions of users, and you’re going to use thousands of instances, this comparison will surely help you save thousands of dollars.
In addition to that, if you’re looking to build a customized application with cloud capabilities, or migrating to cloud services, or struggling with existing infrastructure in terms of cost and scalability, we’re here to help. Explore our Serverless services and step toward creating a next-gen cloud-centric application today.