By Sean Feeney, Ron Truex
As an IT decision maker, cloud vendors are likely trying to convince you that their services are the most cost effective and are technologically superior to their competitors’ offerings. But your company is unique, and aren’t cloud services a commodity these days? Let’s explore the choices, grounding ourselves in our current on-premises world.
Each of the three major cloud service providers (CSPs) — Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP) — can host a virtual machine, as you are likely doing today, on-premises, in VMware. Most companies will find they have needs ranging from Infrastructure-as-a-Service (IaaS) to Software-as-a-Service (SaaS). Because IaaS is the easiest cloud entry point, is most similar to VMware, and requires minimal, if any, system changes, we’ll begin there and break down the economics.
Let’s take a hypothetical digital product that requires, at a minimum, a MySQL database server and a fleet of two web servers, all running Linux. For the sake of argument, let's say the low end of your on-prem compute on a single vSphere host costs $800/month. This cost, a fraction of your Total Cost of Ownership (TCO), could be more or less depending on your specific setup. How might the cost of this solution compare in each major public cloud?
Amazon Web Services
AWS just released Savings Plans, superseding, but not fully replacing, its Reserved Instance (RI) discounting program. If you commit to three years of running your digital product on AWS — just like you would be committing to at least three years of depreciation had you purchased the equivalent on-prem hardware — you could pay $373/month on the Compute Savings Plan with no upfront costs in the US East region (VA or OH). A major benefit of the new Compute Savings Plan is that, unlike RIs, you are not locked into a specific instance type or region for the duration of the plan.
Now that we’re in the Cloud, even in IaaS, there’s a new type of architecture easily available for our product to use: auto scaling. On-prem we would have to guess what our capacity needs are far in advance, likely underestimating (degrading customer experience) or overestimating (wasting our limited resources). In the Cloud, we can dynamically adjust the size of our web server fleet to meet demand and only pay more during those peak periods. Scaling in either direction can be done automatically with our target minimum of two servers and whatever maximum we, and our database, can technically and fiscally support.
That covers IaaS, but what if you wanted to reduce or eliminate your teams’ systems database administrator (DBA) needs? AWS offers Relational Database Service (RDS), its managed database service (DBaaS). RDS is not yet eligible for Savings Plans, so we’ll model the cost using three-year no-upfront RIs, locking into db.m5.xlarge in the US East region. Offloading the systems DBA to AWS raises our solution cost to $524/month.
Leveraging DBaaS brings us something our on-prem solution lacked: high availability. In the case of a database instance failure, connections are automatically redirected to another instance without any connection string changes required. We can take this even further by having our database span two availability zones (AZ) in the US East region simply by changing a configuration variable. Adding this geographic redundancy and peace of mind would bring the solution cost to $684/month. Imagine the cost of opening a second datacenter, connecting it over high speed fiber to your existing datacenter, and implementing an active-active MySQL configuration on a second rack of VMware — that would have easily doubled on-prem costs.
For the sufficiently sizable customer, AWS can offer further discounts through Private Pricing Term Sheets, formerly known as the Enterprise Discount Program. Just like Savings Plans and RIs, these discounts are in return for guaranteed minimum spend commitments. If RIs and EC2 Instance Savings Plans can net you up to 72% off on-demand prices, you can reason that Private Pricing can come at a >72% discount for the right workloads. If you’re considering a mass migration to AWS, it’s worth discussing whether you qualify for Private Pricing Terms with your AWS sales representative.
Azure also has RIs, and unlike AWS, the discount is the same whether or not you pay anything upfront. With a three-year commitment in the East US region, our as-is solution — or minimum auto scaling group size plus self-managed database — could cost $344/mo.
To offload systems DBA in Azure, we would use Azure Database for MySQL. This service just added support for one-year RIs in December 2019. Unfortunately, there is no multi-AZ option. While the high availability of our solution may be constrained to a single AZ, the total price is only $434/month. We just need to remember to repurchase our MySQL reservation each year or enable automatic renewal.
Microsoft offers Enterprise Agreement (EA) discounts for a minimum spend commitment over three or more years. Even small companies and agencies are eligible for an EA as they start at commitments of only $100/month. The discounts range from 15-45% off SKU price.
Google Cloud Platform
Google has both RIs (“committed use”) and sustained usage discounts. Since GCP has resource-based pricing (configurable CPU and RAM combinations, instead of t-shirt sizing), there are no instance restrictions on either type of discount. However, the committed use discount is locked to a specific region.
The sustained usage discounts are a major differentiator for GCP. They apply automatically once your instance is online for more than 25% of the monthly billing cycle and can net you a discount of up to 30% depending on instance (“machine”) type. You can combine sustained and committed use discounts but not at the same time.
Committed use can get you a discount of up to 57% for most instance types and up to 70% for memory-optimized types. Like Azure, the discount doesn’t change if you pay upfront. If you burst past your commitment — due to auto scaling events, for example — the overage is eligible for the sustained usage discount.
With a three-year commitment in South Carolina (us-east1), our minimum auto scaling group size plus self-managed database could cost $504/mo on GCP. An interesting component of this cost to call out is $250/month/user for production-level support. GCP is the only CSP to charge per user for the ability to open technical support cases. Surely this has led to some “creative” usage by customers.
To offload systems DBA in GCP, we would use Cloud SQL for MySQL. There is no committed use discount for their DBaaS, but 24/7 usage would lead to a 30% sustained usage discount. Like AWS, there is an optional geographically-redundant high availability (HA) option. Our solution cost rises to $639/mo with Cloud SQL, or $838/mo with Cloud SQL and geo HA.
GCP also offers “custom discounts through a commit framework.” If committed use can net you up to 57% off, you can reason that this framework can come at a >57% discount for the right workloads (or >70% for memory-optimized workloads); however, Google does not appear to comment publicly about the framework specifics.
IaaS Is Just the Beginning
As estimating major components of this hypothetical product’s costs through each CSP has shown, an apples to apples comparison between providers is challenging and can really only be done for lowest common denominator IaaS services. Attempting to make your cloud choice on financial models alone — even layering on all of the various discount programs — is not likely to lead to the optimal choice for your unique situation.
You can find more value and efficiencies by moving up the stack to PaaS solutions, where each CSP tends to have broader differentiation, and there is greater impact on your IT operating and architectural models. To fully evaluate these impacts, you’ll need to pull together diverse views from across your IT organization and any independently operating business units to weigh the pros and cons. Consider engaging Nerdery to guide the conversation and show your teams what’s possible as they move to the Cloud.
Published on 01.10.20