In the wake of Google’s Next ’17 event, and a slew of recent Reserved Instance changes by Amazon Web Services (AWS), it seemed appropriate to compare to see if anything in the public cloud VM pricing has changed, or perhaps more importantly, who is ultimately cheaper?
First things first, Google Cloud Platform (GCP) announced at Google Next ’17 the ability to reserve capacity in the form of Committed Use Discounts. One significant difference between these and AWS Reserved Instances is the fact that GCP does not require any upfront payment for the best discount. Where as with AWS you would need to pay an upfront fee and a 3 year commitment to receive up to 60% off on demand pricing, with GCP committed use you receive up to 57% with no up front fee. The GCP discount most closely aligns with AWS’ new Convertible Reserved Instances. They are regional, not tied to any specific zone within a region (in both GCP and AWS cases). In the case of AWS, these discounts can be modified for instance type, family, OS, and tenancy. In the case of GCP, the discount is on your aggregate core count for the region. What makes GCP’s discount better, and keeping in line with their Sustained Use Discounts, you don’t have to modify anything to get your discount. It applies to whatever you have running, no need to make the discount fit the infrastructure.
AWS has made a few recent changes in Reserved Instances to help make them more useful to customers. These are welcome changes that offer increased flexibility for customers to tailer their discounts. A few changes in how your AWS RI’s can be put to work. Scheduled Reserved Instances allows customers to get the RI discount and capacity reservation for periodic workloads. For customers who are willing to waive capacity reservation in exchange for more RI discount flexibility, they can now opt for regional RI’s. Lastly, as mentioned previously, AWS customers can now modify the RI to meet changing needs through instance size flexibility.
What about those people who just want to use On Demand? GCP has a clear advantage with Sustained Use Discounts provided your instances are running for more than 25% of the month (not an uncommon occurrence). AWS does not provide a comparative feature.
So let’s take some actual compute based pricing scenarios to see how all these options play out. To keep things as easy as possible to compare, we will assume these instances are running 24 hours a day for the entire month. So all costs are monthly. All prices and discounts are as of March 20th, 2017:
Description | Resources | Discounts | Approx Monthly Total |
---|---|---|---|
4 vCPU 15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge GCP = n1.standard-4 |
AWS = N/A GCP = Sustained Use 30% |
AWS = $1,585
GCP = $988 |
4 vCPU
15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge
GCP = n1.standard-4 |
AWS = 1 year No Upfront RI
GCP = Sustained Use 30% |
AWS = $1,086
GCP = $988 |
4 vCPU
15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge
GCP = n1.standard-4 |
AWS = 3 year No Upfront Convertible RI
GCP = Sustained Use 30% |
AWS = $974
GCP = $988 |
4 vCPU
15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge
GCP = n1.standard-4 |
AWS = 3 year No Upfront Convertible RI
GCP = Committed Use Discount 1 year |
AWS = $974
GCP = $874 |
4 vCPU
15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge
GCP = n1.standard-4 |
AWS = 3 year No Upfront Convertible RI
GCP = Committed Use Discount 3 year |
AWS = $974
GCP = $624 |
All that said, AWS does offer something GCP does not, and that is up front reserved instance discounts. To continue the above workload, let’s add one more pricing scenario. In this case, we will use the 3 year All Upfront Convertible RI discount from AWS.
Description
|
Resources
|
Discount(s)
|
3 Year Total
|
---|---|---|---|
4 vCPU
15 GB memory 10 GB SSD storage Quantity: 10 |
AWS = m4.xlarge
GCP = n1.standard-4 |
AWS = 3 year All Upfront Convertible RI
GCP = Committed Use Discount 3 year |
AWS = $29,472
GCP = $22,464 |
Monthly Amortized | AWS = $819
GCP = $624 |
Speaking of flexibility, one critical difference between GCP and AWS compute resources is the ability to use a custom machine type on GCP. This allows the customer to select a blend of compute and memory that better suits their needs. Furthermore, this custom VM is in many cases cheaper than you would need to pay on AWS for the closest match. The following chart shows some examples of how this would play out in an on demand manor:
Description
|
Resources
|
Cores
|
Memory
|
Approximate Monthly Total
|
---|---|---|---|---|
Compute Workload Option 1
Maximum Cores, Minimum Memory 10GB SSD storage Quantity: 100 12 hours a day / 5 days a week |
AWS = c4.8xlarge
GCP = Custom |
AWS = 36
GCP = 36 |
AWS = 60
GCP = 32 |
AWS = $41,148
GCP = $32,798 |
Compute Workload Option 2
Maximum Cores, Minimum Memory 10GB SSD storage Quantity: 100 12 hours a day / 5 days a week |
AWS = m4.16xlarge
GCP = Custom |
AWS = 64
GCP = 64 |
AWS = 256
GCP = 58 |
AWS = $89,033
GCP = $58,478 |
Perhaps most notable though in pricing for elastic workloads, on GCP you pay per minute, not per hour.
One closing thought around core compute performance. The boot times for linux inside GCP is faster than on AWS. This foundational difference has a lot of follow on benefits. Faster auto-scaling as one example. In the case of PaaS, it even means on request instances for non production environments (no traffic, no compute running). More on scaling, performance and PaaS in my next post.