The public cloud, so goes the conventional wisdom, is the least expensive option for deploying cloud computing environments. While perhaps true in some cases, the claim carries a major caveat—namely, it depends entirely on how those resources are provisioned.
The question of provisioning is critical because, unfortunately, designing public cloud environments at major providers can be tortuously complex to laypersons and IT pros alike. Regardless of provider, users will navigate countless service options and multiple ways to pay for them, which too often results in deployments that inflate costs and render the conventional wisdom obsolete.
Simply put, there’s still much about “the cloud” and how people pay for it that needs demystifying. So let’s start that process by comparing the basic economics of two popular pricing models — one most commonly used in major public clouds and one typically associated with custom-built private clouds.
The Instance-Based Pricing Model and Public Cloud
A common way companies provision public cloud computing resources follows what I like to call the Instance-Based Pricing Model. In this model, you spin up a public cloud instance for an application, pay up-front for a discounted rate and reserve the instance’s computing capacity for a specified period of time. You choose among a list of fixed, pre-configured instances defined by resource parameters — typically CPU, RAM, and storage. It’s the opposite of pay-as-you-go models, where you’re only charged for the resources you use at a higher hourly rate.
The Instance-Based model (Reserved offers several benefits to public cloud customers, including the ability to scale workloads rapidly and flexibly (in case of sudden spikes in app usage), business continuity in case of a major data center failure, and predictable, discounted monthly rates.
However, the intersection of scale and predictable billing can lead to major inefficiencies if you’re not paying attention.
By default, the big public cloud providers require a new server instance for each additional application. It’s an ideal system for apps with unpredictable usage; those resources will be critical in the event of a spike.
But here’s what many public cloud users don’t realize: the vast majority of applications will never need flexible workload scaling. In other words, most apps are what we call steady-state — their workloads are relatively predictable. A steady-state app running at 20 percent resource utilization every month for 12 months isn’t in the right environment.
Underutilization, it turns out, is a way bigger problem than you might suspect. In fact, every year applications use less and less of the total capacity of a single server. Analysts at Gartner, Accenture and McKinsey estimate that anywhere from 88 percent to 94 percent of public cloud capacity is wasted.
Companies end up paying for all of that waste, which is essentially the equivalent of renting a box truck every time you make a trip to the grocery store. You may think 1,000 cubic feet of storage is warranted – just in case – but an SUV or hatchback will invariably get the job done, with room to spare for the occasional overspend in the frozen pizza aisle.
Whether they know it or not, public cloud users in Instance-Based models are nudged toward the box truck. Underutilization isn’t a bug; it’s a feature. In some cases users don’t take the time to find the right-sized vehicle or overestimate their resource requirements, or more likely, their requirements leave them stuck between two suboptimal options, forcing them to choose the larger, more expensive model.
Say you have a high performance web server requiring 4 vCPUs and 9 GiB memory. AWS’s c4.xlarge instance (4 vCPUs and 7.5 GiB) is too small, but the next size up, the c4.2xlarge gives you 8 vCPUs and 15 GiB memory. You end up settling on the latter, but it is double the cost of the smaller-sized option.
Now multiply that scenario across an entire organization and imagine what happens to the company’s monthly cloud bill!
As illustrated in the figure below, pre-configured instance sizes in public clouds recreate the problem of over-allocation we saw with physical servers 15 years ago. A marginal increase in resources today requires jumping from one instance size to the next, much like upgrading from one server model to another in days past.
This phenomena marks a major step back in efficiency. Virtualization was supposed to eradicate this problem, and fortunately, it still can. It just takes a different model.
The Resource Pool Pricing Model and Private Cloud
Hosted private cloud environments typically follow a Resource Pool Pricing Model. In this system, applications and workloads run across a server cluster or pool created by a series of virtual machines (VMs). It differs from the Instance-Based Model in that new servers are added only when available capacity across resources is consumed.
While the cost is still tied to the amount of capacity reserved, the environments are custom-sized to workload resource requirements and do away with the 1:1 app-to-server instance logic that leads to rampant underutilization. It’s sort of like always having the right car in the garage for the task at hand.
In short, Resource Pool models, if approached deliberately via a rigid assessment, can considerably lower costs and improve infrastructure manageability by limiting the number of machines required to run steady-state apps. At INAP we’ve found that converting customers from the Instance-Based to the Resource Pool model can result in savings of up to 70 percent. If that figure sounds lofty, remember what the analysts found: Public cloud over-provisioning is getting out of hand. Major savings are easily discoverable when the average public cloud server uses 6 to 12 percent of its resources.
That’s not to say selecting the model that best fits your business is an either-or decision. There are plenty of valid use cases for the public cloud and the Instance-Based Pricing Model, and everyday we help customers manage such deployments. After all, in the era of hybrid IT, it’s unlikely you’ll ever have a single home for your servers and critical applications.
In future posts, I’ll highlight a few real-world examples to help you select the right cloud solution and pricing model for your computing needs, and our solutions architecture team will walk through INAP’s Resource Pool sizing assessment in more detail. Or, if you’d rather not wait, contact us now to get started with a free assessment.
Updated: January 2019