Amazon Web Services, on 21st December, 2021 reduced the prices for their S3 storage services by 31%. This is one of the latest price reductions by the company. Over the years, the top 3 Cloud service providers – Amazon Web Services(AWS), Microsoft Azure and Google Cloud (GCP) have continuously reduced their prices to stay competitive. For example, AWS, since 2006 has reduced its prices more than a 100 times. Before we enter the Price warzone, to get a perspective on how a small difference in price can benefit an organization, let us take the example of Gitlab.
Gitlab Customers Achieve 23% Cost Savings
Gitlab, is an open-core company providing a DevOps software package (Gitlab) that can be used to develop, secure, and operate software in a single application. It has an estimated 30 million registered users, of which 1 million are active licensed users.
In a recent blog, Gitlab has said that their customers have achieved 23% cost savings and 36% performance gains by developing Gitlab on AWS Graviton 2 instances. The price difference in instances are:
Though the price difference is $0.038, in terms of percentage it comes to around 20%. In other words, its 80 cents as opposed to a dollar. This could have a huge impact on their customer’s cloud bill.
With the 3 Cloud providers offering almost similar services, price could be the main factor determining your choice! Let’s step into this price warzone and find out who emerges on top.
Entering the Price Warzone – The Battle Plan
Imagine there is a company called “Adventurist Inc”, a sporting goods store, located in North Virginia, US. Let’s assume that they decided to build a website on the Cloud. Their IT manager Mr. John Smith was tasked with finding the right service provider. John did a detailed resource and workload plan where every single resource, application and workload was understood and documented. With this understanding he decided on the following requirements.
They needed a single instance/VM with 4 vCPUs, 32 GP of storage with working hours of 730 hours per month and no upfront cost. They were interested in the following instances:
- General purpose – The most common and popular instance, used for web servers and development environments.
- Compute optimized – Used when intensive computing capabilities are needed like a high performance web servers.
Since they were located in East Coast, John chose the following territories: US East (North Virginia) for AWS, Azure – East US, and Northern Virginia (us-east4) in Google Cloud.
Note: GCP does not provide an 8 GB RAM compute optimized offering with 4 vCPUs.
While there are multiple services that are on offer such as Elastic Load Balancer, Storage etc. the largest component of the cloud bill is the compute instances/VM used by organizations. Hence for the purpose of simplicity we have compared the cloud costs based on the instance cost.
The Battle – AWS Vs Azure Vs GCP
With the plan set, John went to work on the 2 types of pricing models: On – Demand and Commitment plan.
The first pricing model that John looked at was the On-Demand or pay as you go pricing. All three service providers have this model for the instances chosen. Based on the criteria and charges for each instance the monthly bill for each service provider was:
- AWS has the lowest prices in both General purpose and Compute optimized instances.
- GCP comes in second for General purpose instances but has the highest price for Compute optimized instances. This high price can also be attributed to the fact that they offer a 16 GB RAM instance with 4 vCPUs while the others provide 8GB RAM.
- The difference in cost between the lowest (AWS) and the highest (Azure) cost for the general purpose instance is 18%.
- The difference in cost between the lowest (AWS) and the highest (GCP) cost for the Compute purpose instance is 28%.
Per Second Billing – A Method To Further Reduce On-Demand Price
John found that he can further reduce the On-Demand prices if he opts for per second billing.
AWS started this service in 2017 for their EC2 Linux based instances and EBS volumes. They were the first to introduce per second billing and have extended it to other services as well. The per second billing is considered with a minimum 60 second limit. This plan is applicable for all on-demand prices in officially announced regions.
Azure allows per second billing on some instances only. Their per second billing is mainly concentrated on container based instances.
When AWS announced per second billing GCP immediately followed suit. In fact, the per second billing by GCP is considered better as they offer it for all their VM instances. All instances are measured as the number of seconds used and after each minute billed in 1 second increments.
The next pricing model that John looked at was the Discounted pricing or Commitment plan. He found that all the 3 Cloud providers offer discounts to businesses if they commit to 1 or more years. AWS offers them as “Reserved Instances” (RI), for Azure it is “Reserved Savings” and for GCP it is “Commitment Price”. These types of discounts are provided to encourage organizations to commit for a long period in return for discounted pricing on some instances.
One-year plan was what John was willing to commit and found the costs as follows.
- AWS has the lowest prices in both General purpose and Compute optimized instances.
- Azure comes in second for General purpose instances. Again GCP has the highest price for Compute optimized instances which can be attributed to their 16 GB of RAM offering.
- The difference in cost between the lowest (AWS) and the highest (GCP) cost for the general purpose instance is 14%.
- The difference in cost between the lowest (AWS) and the highest (GCP) cost for the Compute purpose instance is 29%.
Another option that John thought would be beneficial for Adventurist was the use of Serverless computing. Here he does not have to choose instances or virtual machines instead concentrate only on the code. The cost is also based on how long the code runs and not for any idle time. All the 3 Cloud platforms offer Serverless computing – AWS Lambda, Azure Functions and Google Cloud Functions.
To find out the cost with each service provider, John used the following test case where he used allocated memory of 512 MB to execute a function, which is executed 40 million times in 1 month and runs for 100 millisecond each time. The costs for this scenario with each service provider was:
How the “Adventurist” Can Leverage The Price Models?
All the three Cloud providers offer competitive prices and discounts when customers are ready to commit. For large accounts, Cloud providers will allocate an account manager, who can can help with further discounts. With the price war, the biggest beneficiary could be the customer such as Adventurist.
After finalizing the Cloud service provider, John has to think internally and look at how to migrate to the Cloud. He can do it with his team or go with a Cloud Implementation Partner.
Using a Cloud Implementation Partner
Cloud Implementation partners are experts who can take over the migration of applications and data to the Cloud. John has 2 options to utilize the implementation partner.
- All implementation partners offer consulting services where they provide a detailed report on current infrastructure, workload analysis, cloud architecture, implementation plan and tools required. John can utilize this report to implement the Cloud migration with his team.
- The second option that he could go for is handing over the entire migration process to the implementation partner. With their expertise, they can quickly and efficiently migrate the workloads to the cloud. As an added advantage, most partners provide Managed Services, which John can leverage. Now, he can focus completely on Adventurist’s business applications and not worry about the cloud infrastructure.
Tools That Can Help Manage Cloud Costs
Once the Cloud vendor has been finalized and the workloads are moved to the Cloud, the next step for John would naturally be cost optimization. All the 3 cloud providers offer tools to control and monitor Cloud spends through their platforms. Some of the tools are:
Cost Optimization Tools
Spending Tracker Analysis
With CloudWatch, John can set up an alert based on the metrics from Amazon Web Services. For example, he can set up an alarm, when resources are underutilized in a Savings’ plan. This is because the savings plan follows economies of scale i.e. the more he uses, the less he pays. He can analyze why it is not used and find solutions to either delete or merge with other workloads.
AWS Cost Explorer
Once Adventurist’s Cloud infrastructure is well established and is in use for more than a year, the Cost Explorer is a tool that John can explore in the future. It will provide data by analyzing usage and cost. It will provide him with the usage of AWS instances and the cost incurred in the last 12 months and predict the trend for the next 12 months. It will also provide recommendations for which reserved instances to purchase.
Cloud cost management Best practices
To cut down on costs further John plans on implementing a set of best practices that his team or the MSP needs to follow:
Choosing the right storage and computing environment for Adventurist’s workloads. John ensures that the team continuously monitors the load to upscale or downscale or move to a different storage class to reduce cost.
Turning instances off when not in use. John is planning on automating this by scheduling the time to turn it on and off, which cuts costs. For example, John will turn on instances during work hours when testing or developing an application, and turn them off when they’re not used.
Delete Zombie Assets
Zombie assets is a term used to describe resources or instances that are not used. It is at times very difficult to locate these assets. Some of the typical zombie assets are unattached EBS volumes, obsolete snapshots, idle elastic load balancers, etc. John has setup a monitoring system to delete such assets thereby cutting down their bill.
Using Reserved Instances
Using Reserved instances, where the larger the upfront payment, the more the discount. These instances can be used for a set period of time and with discounts as much as 50%. John has identified which workloads that will suit this commitment, i.e. workloads that will run for a long period of time and is planning on moving them to the respective instances.
Choose the Right Storage Type
Choosing the right storage option, like the S3 storage from AWS, which is one of the most commonly used. It offers many tiers based on usage and activity frequency. John has planned and decided on the storage tier that will suit Adventurist’s needs. For example, he will move data that is not required frequently to Glacier storage class where the price is $0.004 per GB compared to the standard storage class price of $0.023 reducing the cost.
Continuously Monitor and Correct Anomalies
Monitoring and Correcting of Anomalies continuously. It is common to see small variations or spikes in the cost due to seasonality, but in case there is a sudden and tremendous spike in cost then it needs to be investigated and fixed. John will continuously monitor for such anomalies and must fix them to ensure it does not occur again.
The price war between AWS, Azure and GCP is ongoing and one where AWS is currently offering the lowest price. Azure and GCP are hot on the heels of AWS and the trend might change in the future. This price war will continue till a point where all three companies cannot reduce any further (when it begins to affect their bottom line). Till that time comes, the real winner is you, who can leverage this competition to take advantage of the Cloud without breaking the bank.
You can check the prices with various services by using the cost calculator provided by all 3 service providers.