Perhaps your CFO or CTO came to you and gave a directive to save money on Azure. Perhaps you received the bill on your own, and realize that this needs to be reduced. Or maybe you’re just migrating to the cloud and want to make sure you’re set up for cost control in advance (if so, props to you for being proactive!)
Whatever the reason you want to reduce your bill, there are a lot of little tips and tricks out there. But to get started, here are the top 3 ways to save money on Azure.
1. Set a spending limit on your Azure account
Our first recommendation to save money on Azure is to set a spending limit on your Azure account. We especially recommend this if you are using your Azure account for non-production. This is because once your limit is reached, your VMs will be stopped and deallocated. You will get an email alert and an alert in the Azure portal, and you do have the ability to turn these back on, but this is of course not ideal for any production systems.
Additionally, keep in mind that there are still services you will be charged for, even if your spending limit has been reached, including Visual studio licenses, Azure Active Directory premium, and support plans.
One easy way to spend too much on your Azure compute resources is to use VMs that are not properly sized for the workload you are running on them. Use Azure’s Advisor to ensure that you’re not overpaying for processor cores, memory, disk storage, disk I/O, or network bandwidth. More on right-sizing from TechTarget.
While you’re at it, check to see if there’s a less-expensive region you could choose for the VM for additional cost savings.
3. Turn non-production VMs off when they’re not being used
Our third recommendation to save money on Azure is to turn non-production VMs off when they’re not being used – otherwise, you’re paying for time you don’t need. It’s a quick fix, and one that can save 65% of the cost of the VM – if, for example, it was running 24×7 but is only needed 12 hours per day, Monday through Friday.
One basic approach is to ask developers and testers to turn their VMs off when they are done using them — if you do this, ensure that your users are using the Azure portal to put these VMs in the “stopped deallocated” state. If you stop from within a VM, it will be put in a “stopped” state and you will continue to be charged.
However, relying on human memory is not best, so you’ll want to schedule your non-production VMs to shut down on a schedule. You could attempt to script this, but this is counter productive and wastes valuable development resources to write and maintain.
Instead, it’s best to use software like ParkMyCloud’s to automate on/off schedules – including automating schedule and team assignment for access control – and keep your Azure non-production costs in check.
These three methods should get you started on your goal to reduce costs. Have any other preferred methods to save money on Azure? Leave a comment below to let us know.
Before I try to break down the AWS and Azure cloud pricing jargon, let me give you some context. I am a crusty, old CTO who has been working in advanced technology since the 1980’s. (That’s more than 18 Moore’s Law cycles for processor and chipset fans, and I have lost count of how many technology hype cycles that has been.)
I have grown accustomed to the “deal of a lifetime” on the “technology of the decade” coming around about once every week. So, you can believe me, when I tell you have a very low BS threshold for dishonest sales folks and bogus technology claims. Yes, I am jaded.
My latest venture is a platform, ParkMyCloud, that brings together multiple public cloud providers. And I can tell you first hand that it is not for the faint-of-heart. It’s like being dropped off in the middle of the jungle in Papua, New Guinea. Each cloud provider has its own culture, its own philosophy, its own language and customers, its own maturity level and, worst of all — its own pricing strategy — which makes it tough for buyers to manage costs. I am convinced that the lowest circles of hell are reserved for people who develop cloud service pricing models. AWS and Azure cloud pricing gurus, beware. And reader, to you: caveat emptor.
AWS and Azure Terminology Differences
Case in point: You have probably read the comparisons of various services across the top cloud providers, as people try to wrap their minds around all the varying jargon used to describe pretty much the same thing. For example, let’s just look at one service: Cloud Computing.
In AWS, servers are called Elastic Compute Cloud (EC2) “Instances”. In Azure they are called “Virtual Machines” or “VMs”. Flocks of these spun up from a snapshot according scaling rules are called “auto scaling groups” in AWS. The same things are called “scale sets” in Azure.
Of course cloud providers had to start somewhere, then they learned from their mistakes and improved. When AWS started with EC2, they had not yet released virtual private clouds (VPCs), so their instances ran outside of VPCs. Now all the latest stuff runs inside of VPCs. The older ones are called, “classic” and have a number of limitations. The same thing is true of Azure. When they first released, their VMs were not set up to use what is now their Resource Manager or be managed in Resource Groups (the moral equivalent of CloudFormation Stacks in AWS). Now, all of their latest VMs are compatible with Resource Manager. The older ones are called, you guessed it … “classic”. (What genius came up with the idea to call the older versions of these, the ones you’re probably stranded with and no longer want, “classic”?)
Both AWS and Azure have a dizzying array of instances/VMs to choose from, and doing an apples-to-apples comparison between them can be quite daunting. They have different categories: General purpose, compute optimized, storage optimized, disk optimized, etc.
Then within each one of those, there are types or sizes. For example, in AWS the tiny, cheap ones are currently the “t2” family. In Azure, they are the “A” series. On top of that there are different generations of processors. In AWS, they use an integer after the family type, like t2, m3, m4 and there are sizes, t2.small, m3.medium, m4.large, r16.ginormus (OK, I made that one up).
In Azure, they use a number after the family letter to connote size, like A0, A1, A2, D1, etc. and “v1”, “v2” after that to tell what generation it is, like D1v1, D2v2.
The bottom line: this is very confusing for folks moving their workloads to public cloud from on-premise data centers (yet another Wonderland of jargon and confusion in its own right). How does one decide which cloud provider to use? How does one even begin to compare prices with all of this mess? Cheer up … it gets worse!
AWS and Azure Cloud Pricing – Examining Differences in Charging
To add to that confusion, they charge you differently for the compute time you use. What do I mean? AWS prices their compute time by the hour. And by hour, they mean any fraction of an hour: If you start an instance and run it for 61 minutes then shut it down, you get charged for 2 hours of compute time. Microsoft Azure cloud pricing is listed by the hour for each VM, but they charge you by the minute. So, if you run for 61 minutes, you get charged for 61 minutes. On the surface, this sounds very appealing (and makes me want to wag my finger at AWS and say, “shame on you, AWS”).
However, you really have to pay attention to the use case and the comparable instance prices. Let me give you a concrete example. I mentioned my latest venture, ParkMyCloud, earlier. We park (schedule on/off times) for cloud computing resources in non-production environments (without scripting by the way). So, here is a graph of 6 months worth of data from an m4.large instance somewhere in Asia Pac. The m4 processor family is based on the Xeon Broadwell or Haswell processor and it is one of the most commonly used instance types.
This instance is on a ParkMyCloud parking schedule, where it is RUNNING from 8:00 a.m. to 7:00 p.m. on weekdays and PARKED evenings and weekends. This instance, assuming Linux pricing, costs $0.125 per hour in AWS. From November 6, 2016 until May 9, 2017, this instance ran for 111,690 minutes. This is actually about 1,862 hours, but AWS charged for 1,922 hours and it cost $240.25 in compute time.
Why the difference? ParkMyCloud has a very fast and accurate orchestration engine, but when you start and stop instances, the cloud provider and network response can vary from hour-to-hour and day-to-day, depending on their load, so occasionally things will run that extra minute. And, even though this instance is on a parking schedule, when you look at the graph, you can see that the user took manual control a few times. Stuff happens!
What would the cost have been if AWS charged the same way as Azure? It would have only cost $232.69. Well, that’s not too bad over the course of six months, unless you have 1,000 of these. Then it becomes material.
However, I wouldn’t rush to judgment on AWS. If you look at the comparable Azure VM, the standard pricing DS2 V2, also running Linux, costs $0.152/hour. So, this same instance running in Azure would have cost $290.39. Yikes!
Therefore, in my particular use case, unless the Azure cloud pricing drops to make their CPU pricing more competitive, their per minute pricing really doesn’t save money.
The ironic thing about all of this, is that once you get past all the confusing jargon and the ridiculous approaches to pricing and charging for usage, the actual cloud services themselves are much easier to use than legacy on-premise services. The public cloud services do provide much better flexibility and faster time-to-value. The cloud providers simply need to get out of their own way. Pricing is but one example where AWS and Azure need to make things a lot simpler, so that newcomers can make informed decisions.
From a pricing standpoint, AWS on-demand pricing is still more competitive than Azure cloud pricing for comparable compute engine’s, despite Azure’s more enlightened approach to charging for CPU/Hr time. That said, AWS really needs to get in-line with both Azure and Google, who charge by the minute. Nobody likes being charged extra for something they don’t use.
In the meantime, ParkMyCloud will continue to help you turn off non-production cloud resources, when you don’t need them and help save you a lot of money on your monthly cloud bills. If we make anything sound more complex than it needs to, call us out. No hiding behind jargon here.
Azure vs. AWS 2017: what’s the deal? There’s been a lot of speculation lately that Microsoft Azure may be outpacing Amazon Web Services (AWS). We think that’s interesting and therefore worth taking a look at these claims. After all, AWS has been dominating the public cloud market for so long, maybe the media is just bored of that story, and ready for an underdog to jump ahead. So let’s take a look.
Is Azure catching up to AWS?
You may have seen some of the recent reports on both Microsoft and Amazon’s recent quarterly earnings. There have certainly been some provocative headlines:
With Amazon and Microsoft reporting their quarterly earnings at the same time, this is a good time to analyze the numbers and see where they stand in relation to one another. Upon closer inspection, here’s what the recent quarterly earnings reports showed:
AWS revenue grew 43% in the quarter, with quarterly earnings of $3.66 billion, annualized to $14.6 billion. Sales and earnings exceeded expectations given by analyst estimates. In the immediate wake of Amazon’s report, the stock went up.
Microsoft reported that its Intelligent Cloud division grew 11% to $6.8 billion, and that the Commercial Cloud division has a annualized run rate of $15.2 billion. These reported earnings only met analyst expectations, and therefore the stock fell by nearly 2 percent within hours.
We think it’s important to note when it comes to Microsoft’s reported earnings the Commercial Cloud business includes Office 365, not just Azure. We have never fully understood why the Office 365 business has been bundled in with Commercial Cloud, given that it’s a very different business than the IAAS services of Amazon and Google to which it is often compared.
Microsoft stated that Azure’s growth rate was 93%, without providing an actual revenue number. Once again, we find this lack of lack of earnings clarity somewhat problematic.
So is Azure bigger than AWS?
Well, currently no. There is little evidence of Azure surpassing AWS, aside from a small research study which pales in comparison to a clear majority of data stating otherwise.
But is Azure growing quickly?
Yes. In this regard, it’s important to consider what factors are at play in Azure’s growth, and whether they hold any weight as far as surpassing Azure outpacing AWS in the future.
Where is Azure actually gaining ground?
Now let’s take a look at what is driving Azure’s growth, and where Azure is gaining ground.
First of all, as companies grow beyond dipping their toes in the water of public cloud, they become more interested in secondary options for diversity and different business cases. Just from our own conversations, we’re finding that more and more AWS users are using Azure as a secondary option. While users might be interested to see what Azure can offer them in comparison, this doesn’t necessarily indicate that it will ultimately surpass AWS.
Take, for example, the results of aresearch survey released by data analytics providerSumo Logic and conducted by UBM Research. According to the survey of 230 IT professionals from 500+ employees, Azure actually beat AWS as the preferred primary cloud provider, taking the lead by a 10 percent margin, with 66 percent of participants preferring Azure as opposed to the 55 percent who relied in AWS.
This research is significant because it’s the first time that survey data on customer preferences has reported Azure taking a lead over AWS. However, the data also revealed that a significant number of enterprises are using more than one cloud provider. While Azure and AWS both take the lead, there is certainly an overlap in participants who use both, in addition to other up-and-coming providers.
Second, enterprises have been committed to a variety of Microsoft products for years. According to UBM Research survey data, over 50 percent of participants who preferred Azure as their primary cloud provider were coming from large enterprises with 10,000+ employees. This makes sense considering that Microsoft has a foothold in terms of relationships and enterprise agreements with these larger organizations and are able to cross-sell Azure.
Third, Azure has a strong base in Europe, where more users report using Azure rather than AWS as their primary provider. In a 451 Research Survey with 700 participants considered to be “IT decision makers,” AWS topped the list among all participants as the preferred provider among 39 percent of participants. While Azure saw an increase in users, it still landed in second place overall at 35 percent. However, among the European participants only, Azure took the top spot, with 43.7 percent naming Azure as their provider, and 32 percent sticking with AWS.
Why does the Azure vs. AWS debate matter?
Why does the Azure vs. AWS 2017 debate matter to, when choosing a new or secondary cloud provider? Well… in terms of market performance, it probably doesn’t. As always, the specific needs of your business are going to be what’s important.
One thing is for certain: the public cloud is growing and it’s here to stay. Let’s not forget that both Google and IBM both have growing public cloud offerings too (and Google is looking to expand their enterprise market this year.) All of this competition drives innovation, and therefore IaaS and PaaS offerings – and perhaps, better pricing.
For the customer, the basic questions remain the same when evaluating public cloud providers:
How understandable are the public cloud offerings to new customers?
How much do the products cost?
Are there adequate customer support and growth options?
As more and more companies adopt Microsoft Azure as their public cloud, the need to control Azure costs becomes ever more important. As IT, Development and Operations grow their usage of Azure cloud assets, Finance is catching up. Your CFO has seen the bill, and says, “I thought cloud was supposed to be cheaper. So why is this so high?”
Azure Spend Growing
It’s no secret that overall Azure spend is rising rapidly. Azure is the fastest-growing cloud provider, both from adoption by new customers, and growth within accounts of existing customers. Many users of other clouds, such as AWS, are also adopting Azure as a secondary option for diversity.
Here’s the thing: as this spend grows, so too does wasted spend. And customers know this. But as one ParkMyCloud user told us, “As we started to dive into it, we found that a large part of our spend is simply on waste. We didn’t have visibility and policies in place. Our developers aren’t properly cleaning up after themselves, and resources aren’t being tracked, so it’s easy for them to be left running. It’s something we want to change, but it takes time and energy to do that.”
So it’s no wonder that IT, Development, and Operations teams are being tapped by CFOs left and right to reduce costs, as the Azure bill becomes a growing line item in the budget.
Control Azure Costs Before Your CFO Makes You
There are a few things you can do to be proactive and control Azure costs before your CFO comes bursting through your office door. Here are some starting points:
Control your view – the first step toward change is awareness, so use an Azure dashboard to view all of your resources in one, consolidated place. We’ve heard from ParkMyCloud users, upon getting a single view of all of their resources in the ParkMyCloud dashboard, that they found VMs they didn’t even know were running.
Control your processes – talk with your team and set clear guidelines around provisioning appropriately sized VMs, stopping non-production VMs when they are not needed, and governing existing VMs (for example, whose responsibility is it to make sure each team is only running the resources they actually need?)
Control Azure costs – there are a few simple actions you can take to get your actual Azure costs in control. Here are some starting points:
“Right size” your VMs – make sure you aren’t choosing larger capacity/memory/CPU than you need
Set automatic schedules so your non-production VMs don’t run when you don’t need them (free with ParkMyCloud’s core version – try it out)
Set a spending limit on your Azure account. You can do a hard cutoff that will turn off your VMs once you hit the limit, or simply sign up to receive email alerts when you approach or hit the spending limit.
So, automate your operations today and make your CFO happy. Bring your Azure spend down before it becomes a problem!
If you read any cloud or tech blogs, you’ve probably seen the latest financials that show that Microsoft Azure is growing – and that it’s currently the fastest-growing cloud provider. However, this growth means an ever-increasing amount of wasted spend on Microsoft Azure resources.
Overall, Azure’s growth is exciting for customers who have bought into the Microsoft stack — more momentum means quickly evolving product lines, balanced prices, and improving cloud services.
However, dominant competitor Amazon Web Services (AWS) has had more time to feel and subsequently address growing pains. That means that AWS users have more options available to them to address certain concerns that come with using public cloud. For example, managing costs.
Managing Costs: a Major Concern Among Cloud Users
How much are Azure users worrying about managing their cloud costs? According to RightScale’s 2017 State of the Cloud report, managing costs is a huge, top-of-mind challenge. While it’s a top-3 concern for all cloud users, for mature cloud users, managing costs is the number one concern.
The primary goal of cost management efforts is to optimize costs – in other words, to eliminate wasted spend. Most cloud customers would agree that they have some amount of spend wasted, whether that’s from leaving resources on when not needed, oversized resources, orphaned storage volumes, etc. However, estimating the amount of wasted spend is a problem.
RightScale found that customers consistently underestimate how much they are wasting:
So when we’re looking at Microsoft Azure specifically – how much spend is wasted?
Wasted Spend on Microsoft Azure
We’ve talked about overall cloud waste before. So let’s apply those numbers to Azure specifically.
Non-production resources are only needed for an average of 24% of the work week, which means up to $900,000,000 of this spend is completely wasted
And that’s only a portion of the waste – it doesn’t even address oversized resources, orphaned volume storage, etc. Many of these problems are well-addressed in AWS, but the Azure support market is still catching up.
The good news is, this $0.9 billion portion of wasted spend is easy enough to solve. All Microsoft Azure users need to do is schedule the “lights to turn off” when they’re not home – in other words, schedule non-production resources to turn off when no one is using them. Try it now with ParkMyCloud!
Last week, we held a web session introducing ParkMyCloud for Microsoft Azure. We’re excited to open up the ParkMyCloud platform to Azure customers, so you can get the same savings that AWS customers have been enjoying for the past year and a half.
Watch the video here, and use the guide below to skip ahead to the parts of the session that interest you:
00:28What is ParkMyCloud?
WHAT: Simple, single-purpose SaaS tool.
HOW: Automatically schedule on/off times for idle servers.
WHY: Optimize cloud services spending.
ROI: Save 60% or more; 6 week payback.
01:13How ParkMyCloud Works
•Discover & Manage cloud computing resources
•Analyze & Recommend resources to ‘Park’
•Policies automatically schedule resources for off/on
01:48ParkMyCloud vs. AWS cost savings options
02:15How much has ParkMyCloud saved our customers?
02:39The Azure World
Your Azure Account (Active Directory Tenant ID)
Your Azure Subscription (Subscription ID)
Your Application (Application ID)
Service Principal for Your Application
Limited Active Directory Role for Service Principal
Your Azure Cloud Resource Groups and Resources
Azure limited access role credential is analogous to an AWS IAM Role + policies
Requires a lot more information:
Subscription ID ~ analogous to an AWS account
Tenant ID ~ the ID of our Azure AD instance
App ID ~ the ID of the ParkMyCloud App in AD
Password (a.k.a., Client Secret) ~ You set this
04:39Four Azure CLI Approaches to creating Azure credentials
Windows Powershell – manual or scripted
Unix azure-cli – manual or scripted
05:42 ParkMyCloud Demo
05:51 PMC Dashboard
06:05 Adding an Azure credential to ParkMyCloud
07:29 Walkthrough of the ParkMyCloud dashboard
08:27 How to attach a schedule to an instance
09:18 How to create a custom schedule
10:51 Your savings projections in ParkMyCloud
11:51 How to see information about your individual instances
12:34 Teams and Roles in ParkMyCloud – containers for organizing users and resources with role-based access control (RBAC)
14:22 Logical Groups – the ParkMyCloud construct for organizing resources for group scheduling and sequencing
16:51 Policy engine – apply schedules in an automated fashion
17:02 Never Park policy – protect production instances from parking
17:26 Creating a new policy for scheduling
19:44 Always Off Schedule – use to park for the maximum amount of time. Useful when users are across time zones.
22:09 Audience Question – using the policy engine for sorting to teams, “snooze only” for schedule enforcement, and others.
23:37 Actual Savings number
24:04 Quick filters for viewing the dashboard
24:32 Recommendations – how to edit and add recommendations, and parking resources that are recommended to park.
25:00 How to download reports in ParkMyCloud
25:12 Audit Log
25:33 Pricing – by instance count
26:45 Is there any functionality for AWS that doesn’t translate to Azure?
28:59 Do you plan to support other clouds besides AWS and Azure?
29:42 How are the projected savings and actual savings numbers calculated?