It’s important for cloud customers to understand cloud economics. Cloud costs are dynamic – and hopefully, optimized. However, that’s not always the case. Since optimizing cloud infrastructure is a “technological problem”, there are a number of human biases at play that are not always accounted for.
What is Cloud Economics?
Some articles you’ll find jump directly to the idea that “cloud economics” is a synonym for “saving money”. And while the economies of scale and infrastructure on demand mean that public cloud can save you money over traditional infrastructure, the two terms are not interchangeable.
Shmuel Kliger (founder of our parent company, Turbonomic) explains in this video that cloud economics “is the ability to deliver IT in a scalable way with speed, agility, new consumption models, and most importantly, with a high level of elasticity.”
He further explains this idea in another video – that it’s microservices architecture taking the place of monolithic applications that allows this elasticity and rewrites the way cloud economics works.
Rational vs. Behavioral Economics in the Cloud
The concepts described above are exciting – but before assuming these benefits of speed, agility, etc. will be gained naturally upon adopting any type of cloud technology, we need to remember the human context. Taken from the perspective of rational economics, cloud users should always choose the most optimized cloud infrastructure options. If you’ve ever seen a whiteboard diagram of the cloud infrastructure your company uses, or taken a peek at your organization’s cloud bill, you’ll know this is not the case.
To understand why, it’s beneficial to take a behavioral economics perspective. Through this lens, we can see that individuals and businesses are often not behaving in their own best interests, for a variety of reasons that will vary by the individual and the organization… and perhaps by the day.
Economics of Cloud Costs
Cost is particularly dependent on where you sit within an organization and the particular lens you look through. For example, the CFO might have a very different view from the engineering team. Here’s a great talk and Twitter thread on the cultural issues at play from cloud economist Corey Quinn.
Examples of cognitive biases impacting cloud cost decision making include:
Blind spots – there are always going to be higher priorities than costs – including but not limited to speed of development and performance. Additionally, many engineering and development teams don’t believe it’s their job to care about costs. Or at least, engineering departments are seen less as cost centers and more as profit centers by generating value. Cost optimization is tacked on at the end of a project and doesn’t receive much attention until it spirals out of control.
Choice Overload – the major cloud providers now offer an enormous number of services – AWS had 190 at our last count – more than any one person can easily evaluate to determine if they’re using the best option. Similarly, most users have a poor understanding of the total cost of ownership of their cloud environment and don’t actually know what cloud infrastructure exists.
The IKEA Effect – people place a disproportionately high value on products they partially created. Developers may hang on to unoptimized infrastructure, because they created it, and it would hurt to let it go, even if it’s unnecessary to keep.
(There are plenty more, but perhaps we’re falling prey to the bias and some of these decisions are perfectly rational.)
The point is that despite the automated buzz of AI and robotic process automation, the cloud doesn’t inherently manage itself to optimize costs. You need to do that.
Cloud providers’ management environments are confusing, and do not always encourage users to make good decisions. Luckily, the wind has started to blow the other way on this front, as cloud providers realize that providing cost optimization options provides a better user experience and keeps them more customers in the long run. We’ve started to see more options like Google’s Sustained Use discounts and AWS’s new Savings Plans that make it easier to reduce costs without impacting operations. However, it’s up to the customer to find, master, and implement these solutions – and to know when cloud native tools don’t do enough.
How to Set Yourself Up for Success & Start Saving
The good news is that being aware of natural tendencies that impact cost optimization is the first step to reducing costs.
Determine Your Priorities
First, determine what your goals are. What does “cost saving” mean to you? Does it mean reducing the overall bill by 20%? Does it mean being able to allocate every instance in your AWS account to a team or project so you can budget appropriately? Does it mean eliminating unused infrastructure?
Understand Your Bill
No matter what your goal, you need to understand your cloud bill before you can take action to reduce costs. The best way to do this is with a thorough tagging strategy. All resources need to be tagged. Ideally, you will create a set of tags that is applied to every resource, such as team, environment, application, and expiration date. To enforce this, some organizations have policies to terminate non-compliant instances, effectively forcing users to add these essential tags.
Then, you can start to slice and dice by tag to understand what your resources are being used for, and where your money is going.
Review Cost Saving Options
Once you have a better picture of the resources in your cloud environment, you can start to review opportunities to use pricing options such as Reserved Instances or Savings Plans; places to eliminate unneeded resources such as orphaned volumes and snapshots; schedule non-production resources to turn off outside of working hours; upgrade and resize instances; etc.
Designate a Cost-Responsible Party
While engineering teams can do these reviews as part of their normal processes, many organizations choose to create a “cloud center of excellence” or a similar department, solely focused on cloud expertise and cost management. Sysco shared a great example of how this worked for them, with gamification and a healthy dose of bagels as motivating factors for users throughout the organization to get on board with the team’s mission.
Automate Where You Can
On the flip side, there’s only so far food bribery can go. Since, as we’ve outlined in our cloud economics model, changing user behavior and habits is difficult, the best way to ensure change is by sidestepping the human element altogether. Those on/off schedules for dev and test environments? Automate them. Governance? Automate it. Resizing? Automate.
We chatted with JP Bourget, founder and CSO of Syncurity, about how his cybersecurity orchestration company uses ParkMyCloud.
Hi JP. Can you start off by telling us about Syncurity, what you do, and how big your team is?
Sure. We’re a cybersecurity orchestration vendor. We are in the cybersecurity product space of SOAR which is security, orchestration, automation, and response. What we do is we facilitate the security alert handling, sometimes called triage, and then use automation to help decide if the alert is concerning, and if necessary kick off a response process for the security operations center or incident response team. We usually launch these processes with alert polling as well as run our automated analysis/enrichment with alert ingesting via security product APIs.
I’m the founder and CSO. There’s about 25 of us on the team.
What clouds do you use, and how are you using those clouds?
We use Amazon, Azure, Google, Oracle, and Digital Ocean. We do a lot of CI using CircleCI, Travis, and some others.
The reason that we use all those clouds is because we ship images on the different cloud providers for consumption by customers. Our product is subscription-based and we share a private image with our customers, they can then go deploy our product in their environment.
Most of our work is done on Azure VMs and Amazon EC2. We also have another cloud environment which is hosted on bare metal servers that we use for VMware – I don’t get billed per VMguest in that scenario. It’s a per bare metal server cost model. We also now use spot instances quite often based on ParkMyCloud helping us understand the benefit of them, even for longer running instances.
As for how we’re using them, most of our QA and Proof of Concepts are done in Amazon. Because we do all this automation, we have a huge integration lab up in Amazon. We also do POCs in all the other vendors based on customer requirements.
How did you decide to start using ParkMyCloud?
We’ve been using ParkMyCloud right from the beginning – we know the team that helped build the product.
The key benefit of ParkMyCloud for me is that I have about 75 instances at any one time that don’t need to be running all the time because it’s the lab. In some cases, I need to turn on a lab in a fashion that gives me a stack of tools, or I need to run a lab in a fashion where the machines run a schedule.
There’s certain stuff that is dummy infrastructure or lab infrastructure like windows servers and domains that we want running most of the time, but we turn them off on the weekend. But there are other things that only ever need to be turned on when we’re using them. So what ParkMyCloud gives me is the ability to essentially have an interface that’s multi-cloud for anybody to go in and turn a box on as needed and then automatically turn them off.
How would you describe your experience using ParkMyCloud?
I like being able to see my projected savings right on the platform. The other thing that I really like is the fact that I can see how much a box costs a month instead of hourly. It’s one of those small things that provides huge value. Amazon provides that hourly information but you have to calculate the monthly cost.
We use ParkMyCloud as an alternative to some users logging directly into the AWS console, which is a lot easier.
The AWS reserved instance (AWS RI) offerings got a recent upgrade with the release of a “queue” function. This means that you can now purchase reserved instances that, rather than going into effect immediately, are scheduled for future purchase. (Yes – despite the fact that RI’s have been available for a decade, this is a new feature!)
Back up – what was released?
If you haven’t used AWS RIs before, it’s worth a brief primer. When you purchase a reservation, you’re not buying a specific instance or even capacity: it’s a billing function. In exchange for a commitment over 1 or 3 years, you get an attractive discount. These discounts are applied on the back end of the billing process, and are allocated against specific instances on an hour-by-hour basis over the course of the month.
There are a few variations within the AWS RI purchasing options, such as the term; how much you pay upfront vs. monthly; the option for them to be scheduled; whether the scope of the discount covers instances in a single region or in a particular availability zone; etc.
More on those options and whether you should actually be using Reserved Instances, in this post. (TL;DR: RIs are the right choice when you have 24×7 long-term production workloads; otherwise they’re usually not.)
So, the new feature is the option to purchase these reservation discounts to begin on a future date rather than immediately. This is designed to make it easier for users to have uninterrupted reserved instance coverage. Previously, at the end of a 1- or 3-year term, many users would be unaware that their reservation expired and would have a spike in cost…which they may or may not notice.
How does queuing work?
Now, when planned correctly, you can avoid the lapse of Reserved Instance coverage for your workloads by scheduling a new reservation purchase to go into effect as soon as the previous one expires. The furthest in advance you can schedule a purchase is three years, which is also the longest RI term available.
Before queueing was available, customers had the option to either just go ahead and purchase a new reservation a few days/hours/weeks before the previous RI was due to expire, or set a reminder to go in and buy a new reservation after the previous one had lapsed. Either way, there was an extra cost – either a time window with too many RIs, or one with too few. So it is easy to see that RI queueing can save you money. Queueing can also save you some hassle, as you no longer have to set reminders and build your daily/weekly schedule around going in to buy a new RI. (Reminiscent of some late-night eBay sessions, waiting for the end of an auction to roll around.)
There are a few limitations. AWS RI purchases can be queued for regional Reserved Instances, but not zonal Reserved Instances. Regional RIs are the broader option as they cover any availability zone in a region, while zonal RIs are for a specific availability zone and actually reserve capacity as well.
Cancellation is an option: since payment is processed only at the scheduled purchase time in the queue, you can cancel a purchase at any time before it is processed.
We find it interesting that these are designed as new purchases rather than a “renewable” RIs – likely due to an idea that users may queue an evolving RI type or purchase profile, instead of the same instance type/duration/payment terms over time.
Beware the AWS RI Black Hole
Of course, the downside to queuing a purchase in advance is that you now have a new commitment to track – and one that may not meet your needs by the time the purchase goes into effect.
It’s already difficult to shine light on your existing reservations, especially with options in place such as instance size flexibility and the broad applicability of regional RIs.
That’s why ParkMyCloud has released our first support for Reserved Instances this week. You told us that RIs are the next biggest thing that need optimization help on your cloud bills, and we listened. Now, you can see all your AWS RIs – past, present, and queued future purchases – in one place in ParkMyCloud. Next, we’ll be working on more recommendations and optimization – stay tuned!
Are you looking for the cheapest cloud computing available? Depending on your current situation, there are a few ways you might find the least expensive cloud offering that fits your needs.
If you don’t currently use the public cloud, or if you’re willing to have infrastructure in multiple clouds, you’re probably looking for the cheapest cloud provider. If you have existing infrastructure, there are a few approaches you can take to minimize costs and ensure they don’t spiral out of control.
Find the Cloud Provider that Offers the Cheapest Cloud Computing for Your Needs
There are a variety of small cloud providers that attempt to compete by dropping their prices. If you work for a small business and prefer a no-frills experience, perhaps one of these is right for you.
However, there’s a reason that the “big three” cloud providers – Amazon Web Services (AWS), Microsoft Azure, and Google Cloud – dominate the market. They offer a wide range of product lines, and are continually innovating. They have a low frequency of outages, and their scale requires a straightforward onboarding process and plenty of documentation.
Whatever provider you decide on, ensure that you’ll have access to all the services you need – is there a computing product, storage, databases? If you want to use containers or have the option for serverless, how do those products fit in? How good is the customer support? Does your company directly compete with the provider – for example, with Amazon’s retail arm? (You may not care, but some companies definitely do.)
While there is no one “cheapest” cloud provider among the major options, you should still compare to ensure you’re getting the best cloud prices for the services you’ll use most. For more information about the three major providers’ pricing, please see the following cloud computing cost comparisons:
A note on the idea of vendor lock-in: if you are already purchasing cloud services from a cloud service provider, you may be worried that you’re “locked in” to that provider. What we see in practice is a little different: with on-demand flexibility and more opportunity than ever to practice multi-cloud, companies shouldn’t really worry about vendor lock-in when it comes to public cloud.
How to Get the Cheapest Cloud Computing from Your Current Provider
Of course, whether or not you’re concerned about vendor lock-in, you should ensure that you’re getting the most efficient cloud computing cost available to you. That means optimizing your options for the products you use most.
Here’s a brief rundown of things you should do to ensure you’re getting the cheapest cloud computing possible from your current provider.
Use Reserved Instances for Production Environments
All of the major cloud providers offer a pricing option for Reserved Instances – that is, if you commit to use capacity over time, you can pay a discounted price. Reserved instances can save money – as long as you use them the right way. It’s important to focus on workloads with 24×7 demand – i.e., production workloads – for Reserved Instances. You will get the best price for the longest commitment. Of course, each cloud provider structures this option differently. Here are our guides to each:
There are a few common ways that users inadvertently waste money and throw away the option for the cheapest public cloud bill, such as using larger instances than they need, and running development/testing instances 24/7 rather than only when they’re needed. To pay for what you need, ensure that all of your instances are “rightsized” to the size that best matches the workload. You should also use on/off schedules so your non-production resources used for development, testing, and staging are turned off nights and weekends.
ParkMyCloud makes it easy to automated both of those things and reduce wasted cloud spend – try it out.
Take Advantage of Other Discounted Pricing Options
There are a number of other discounted pricing and purchasing options offered by the major cloud providers to help you get the cheapest cloud services.
AWS Spot Instances – the best way to get the cheapest EC2 instance. This option offers heavy discounts for excess infrastructure, which can be reclaimed for other workloads at any time.
Azure Low Priority VMs – similar to AWS’s spot instances, although there is a fixed discount for Azure’s offering, and a few other operational differences.
While finding the cheapest cloud computing is, of course, beneficial to your organization’s common good, there’s no need to let your work in spending reduction go unnoticed. Make sure that you track your organization’s spending and show your team where you are reducing spend.
ParkMyCloud users have a straightforward way to do this. You can not only create and customize reports of your cloud spending and savings, but you can also schedule these reports to be emailed out. Users are already putting this to work by having savings reports automatically emailed to their bosses and department heads, to ensure that leadership is aware of the cost savings gained… and so users can get credit for their efforts.
Azure Reserved Instances are a way to reduce Azure costs by committing to a one- or three-year term for a virtual machine, in exchange for a discount of up to 72% compared to pay-as-you-go. Of course, before you lock in such a commitment, there are a few things you should know about this purchasing option – here are 10.
1. Azure Reserved Instances are a purchasing option.
First, you should understand that what you’re “reserving” is the pricing and purchasing option – the virtual machines are the same that you can pay for through pay-as-you-go pricing. (If this seems counterintuitive to the idea of “that virtual machine I reserved,” recall that a reservation works more like a credit against your bill in retrospect rather than a specific VM with your name on it.)
2. Reservations are “use it or lose it”.
Important: reservation discounts are “use it or lose it”. If no resources match your reservation for any hour, you lose the reservation for that hour. This is why you should always ensure that you have predictable, full-time usage planned before reserving capacity.
3. They’re not available for everything… but perhaps more than you’d guess.
Reservations are available for virtual machines, SQL database compute capacity, Azure Cosmos DB throughput.
Keep in mind what services are covered by your reservation:
Reserved Virtual Machine Instance – the reservation covers compute costs, but not software, networking, or storage costs.
Azure Cosmos DB reserved capacity – reservations are for the provisioned throughput – not storage or networking charges.
SQL Database reserved vCore – the reservation covers the compute costs, but not licenses.
SQL Data Warehouse – reservations cover “compute Data Warehouse Units” (cDWU), or units of CPU, memory, and IO – but not storage or networking charges.
App Service stamp fee – reservations cover stamp usage, but not workers and therefore other resources associated with the stamp.
There are some limitations to availability. You cannot purchase reservations for A-series, Av2-series, or G-series VMs; any VM-series or size in preview; Germany or China regions; or in some cases, reservations may be limited due to low capacity in a region.
4. You need to set a “scope” for the Reserved Instance to apply.
Another concept to be familiar with is the concept of “scope” for reservations – in other words, what subscription or resource groups are eligible for the discount you are purchasing. Scope can be limited to a single resource group, a single subscription, or shared scope across multiple eligible subscriptions as long as billing is tied together.
5. Instance sizes are flexible, automatically.
When you purchase Azure Reserved Instances, there is an option to “optimize for instance size flexibility” that will be selected by default. This means the reservation can apply to the VM sizes in the same VM group, which makes each reservation a bit more broadly applicable.
6. Whether you pay upfront or monthly, the cost is the same.
Payment options: Azure just released in September 2019 the ability to pay for reservations through monthly payments – at the same cost that you would pay up front, with no extra fees. There is no “partial upfront” option. This is in contrast to, say, AWS’s Reserved Instance options, which have a variable discount depending on how much you pay upfront. The difference in approach may vary due to the cancellation options – AWS users can resell unused capacity on the Reserved Instance marketplace, while Azure users pay a cancellation fee. Google Cloud offers only a billed-monthly option – with no option to cancel.
7. Azure recommends Reserved Instances based on your usage history.
Reservation Recommendations and quantity are shown when you purchase a VM reserved instance in the Azure portal, based on the last 30 days of usage and your savings potential. You can see recommendations in Azure Advisor, at least, for individual subscriptions. For shared scope, you can use the API to get purchase recommendations.
8. Azure Reserved Instance purchases are used immediately, and don’t renew.
There are two important things to understand regarding terms and renewal. First, the term for your reservation starts immediately: you can’t schedule them for a future date. Second, Azure Reserved Instances do not automatically renew, and when the billing term expires, you’ll pay the pay-as-you-go rate. (We’ll be blogging next week on an option AWS has recently released to queue new reservations in advance.)
9. There are two solid options if you no longer need a reservation you already purchased.
What happens if you determine that you no longer need an Azure Reserved Instance you’ve purchased? There are two main options:
Exchange – you can exchange a reservation for another of the same type– that is, you can’t return a VM reservation to purchase an SQL reservation. This is only allowed if the total lifetime cost of the new purchase is greater than the leftover payments that are canceled for the returned reservation.
Cancel – instead, you can choose to cancel the reservation contract and request a refund. However, you are subject to an early termination fee of 12%. Note also that there’s a total refund limit of $50,000 in a rolling 12-month window.
10. Azure Reserved Instances make sense… in some situations.
For predictable production workloads, where you know you’ll have VMs running 24×7, Azure Reserved Instances can make sense. However, for your non-production workloads, this is likely not the case. You’ll save far more by using pay-as-you-go pricing, and scheduling those VMs to turn off when they’re not needed (ParkMyCloud can help with that.)