We’ve answered and raised a lot of questions (keep ‘em coming) with our cloud pricing posts (Compute, Local SSDs, Data Warehouses, NoSQL) and have seen growing interest in our TCO tools (Compute Engine and Nearline so far…) but today we want to share some news about the TCO tool we used to make our pricing comparisons: it passed the accuracy test!





It’s one thing to have Google engineers review in painstaking detail the minutiae of our TCO comparison versus AWS to ensure that our comparison is fair and unbiased, founded on correct mathematics and built on reasonable assumptions about the behavior of these types of systems. But to help validate our approach and assess our tool with the most objectivity, we retained an independent third party, with a different background and context, to review this same body of work.





Nucleus Research a technology research firm that has published numerous ROI technology case studies and is registered with the National Association of State Boards of Accountancy (NASBA) took a comprehensive pass through our application, modelling and code base to ensure that our tool correctly computes the TCO of both Google Cloud Platform (GCP) and AWS systems. Nucleus’ depth of experience in TCO and ROI research provided significant benefit in this analysis, which evaluated not just our math, but the foundational assumptions that underpin our model.






Here’s how Ian Campbell, CEO at Nucleus, summed it up:





“Nucleus Research reviewed Google’s internally developed total cost of ownership (TCO) modeling tool for accuracy and completeness and found that the Google Cloud Platform TCO tool is an accurate calculation of the comparative costs of Google Cloud Platform versus Amazon Web Services.”





So our model is legit? “Yup, legit.” he said.





We know customers have lots of questions about this model, which in many cases shows a 40% or greater cost advantage for systems running on GCP versus AWS, and that’s a number that’s hard to ignore.  Try out our TCO tool with your own workload values, with your analysis of the market dynamics; we think you’ll find it a useful way to think about how the cloud can add value to your business.





- Posted by Miles Ward, Global Head of Solutions, Google Cloud Platform










In addition to announcing our new global load balancing locations, we’re also continuing to expand our Carrier Interconnect service provider ecosystem. Carrier Interconnect offers Cloud Platform customers a wide range of providers to satisfy their enterprise workloads wherever they may run around the world. Today we’re extending our partnership to include global communications operator and integrator

From Google’s pioneering data centers to its network edge, we’re continuing to push the boundaries of our global network, enabling our customers to run workloads that reach a global audience from the very start. Google continues to lead with its global coverage of 70+ points of presence across 33 countries, allowing our enterprise customers to connect to Google privately for latency and reliability gains compared to going over the open Internet.





In April of this year we announced the expansion of our load balancing solutions to 12 additional locations globally. This expansion minimizes the distance users' traffic must travel over the public Internet, maximizing the distance traveled on Google's private network backbone instead critically important to achieving low latency in today’s media-rich web and mobile applications. Today we’re pleased to announce the extension of our load balancing locations to 20 additional cities, reaching a total of 32 distinct points globally. Our broad coverage ensures users get the lightning-fast, responsive experience they expect from Google Cloud Platform. Here is our full list of cities:










Berlin, Budapest, Chennai, Chicago, Dallas, Denver, Dublin, Hong Kong, Johannesburg, Kuala Lumpur, Lisbon, London,


Los Angeles, Madrid, Marseille, Miami, Milan, Mumbai, Munich, New York City, Osaka, Paris, São Paulo, San Francisco, Seattle, Singapore, Sofia, Stockholm, Sydney, Tokyo, Warsaw, Washington D.C.


In addition to announcing our new global load balancing locations, we’re also continuing to expand our Carrier Interconnect service provider ecosystem. Carrier Interconnect offers Cloud Platform customers a wide range of providers to satisfy their enterprise workloads wherever they may run around the world. Today we’re extending our partnership to include global communications operator and integrator Orange Business Services. For many Orange Business Services customers, which include leading multinational corporations, this collaboration with Google allows them to extend their on-premises operations via a private link to Google Cloud Platform. Existing customers using Business VPN can take advantage of a direct link to Google’s network to run mission critical workloads that blend on-premises and cloud seamlessly based on business demands. We are pleased to announce immediate availability in North America, Europe, and Asia.





To get started, contact Orange Business Services or get in touch with Google Cloud Platform directly. We’d love to learn about your most important business processes and how cloud might help you better serve your users.





- Posted by Morgan Dollard, Cloud Networking Product Management Lead

I’ll come right out and say it: Google Cloud Platform is a better cloud. Cloud Platform has clear, specific, technical differentiators, core advantages at the network, storage, compute ...
I’ll come right out and say it: Google Cloud Platform is a better cloud. Cloud Platform has clear, specific, technical differentiators, core advantages at the network, storage, compute and distributed software tiers which deliver incredible features and capabilities to our customers. This is important for two reasons:














  1. Cloud Platform offers features that are very valuable for customers, and very difficult for competitors to emulate.



  2. The underlying technologies, created and honed by Google over the last 15 years, enable us to offer our services at a much lower price point.















First, a few examples of these differentiated, valuable features:






1. Live Migration






Google Compute Engine’s instances can be moved to nearby hosts while active, even while under extreme load, complete with up to 1.5TB of Local SSD. As a result, since your instances don’t need to be rebooted for host software updates or other standard operational tasks, and even some classes of detectable hardware failure, average instance up times are superb. This improves the performance of our customer’s applications by increasing the consistency of performance for distributed systems and dramatically improving availability for applications that depend on an instance as a single point of failure (we all can’t have perfect software).








2. 0-1m+ scaling load balancers


Our load balancer service, a builtin feature of Google Compute Engine, Google Container Engine and Google App Engine, is itself a core component of the Google Frontend, an enormous, worldwide distributed system for delivering customers to infrastructure. This system powers the vast majority of Google applications, like Maps, Apps, Gmail, and Search. This system is designed to tolerate extreme spikes in traffic, easily scaling from no traffic to millions of requests per second, in seconds. This improves the performance of our customer’s applications; every user, no matter how many of them show up at once, will make it through to your stack.





3. 45 second instance boot times


What happens once they make it through the load balancer to your instances? Even with automation in place like our Autoscaler, as traffic mounts, you need to be able to scale up quickly. Google Compute Engine instances boot very consistently in the range of 40-50 seconds, roughly 1/5 of the time required by competing clouds.  This means you can grow your application’s hosting framework very rapidly in response to incoming traffic, just like Google does for it’s own applications.





4. 680,000 IOPS sustained Local SSD read rate


Each instance within Google Compute Engine, excepting micro and small shared-core instances, can mount up to 1.5TB of Local SSD capable of 680k of sustained read performance. This is radically faster than competing systems, which max out at less than half of that, at nearly four times the cost, all while tying SSD size/performance to specific instance sizes, meaning that in many cases you pay for compute and memory you don’t need.  This means caches, databases, NoSql systems, file systems and more operate at crazy fast speed to respond to user requests quickly, and to handle more users per instance.





5. 3 seconds to archive restore


Our “archival” data storage service, Google Cloud Storage Nearline, delivers data availability within 3 seconds, and provides high throughput for prompt restoration of data. In fact, it’s fast enough that many customers simply use it as their only storage tier. Competing systems take 4-5 hours to do the same task, and offer substantially lower throughput, not to mention a confusing, potentially extremely expensive restore fee structure.  Ours is simple: 1 penny per GB/month to store, 1 penny per GB to restore. New competitive offers like Standard-IA storage cost more, add weird minimum size restrictions, and fail to deliver a global service. Close, but no cigar!





How does Google Cloud Platform deliver on these features, and why are they so difficult for our competitors to match? Google has built some of the most amazing technology, custom to our specific needs and design, which fills some of the most sophisticated data centers in the world. We have powerful software-defined networks, faster storage components and better storage software, a more nimble hypervisor and some of the finest operations engineers and distributed software developers in the world.





You can’t fake these features, or simply buy the most expensive parts; you have to invest, heavily, in core componentry and skills development to deliver best in class capabilities.





The advantage doesn’t stop there; as it turns out, in most cases and for most products, Google Cloud Platform has a substantial cost advantage, typically on the order of 40% cheaper than competing clouds.





How can a cloud platform be both Better AND Cheaper?





Easy: it turns out that the same technology that you need to create incredible services for your customers, is the same as what we need to deliver incredible services to you. We consume these same resources to deliver not only the basic components of our offering, but importantly the managed services like App Engine, BigQuery, Cloud Bigtable, Cloud Dataflow, Cloud Pub/Sub and more.  How do we build a faster cheaper data warehouse like BigQuery? For starters; have container technology which boots quicker, SSD that serves data faster, and a load balancer designed to more efficiently distribute traffic. How do we build an efficient ETL engine like Cloud Dataflow? Well; have an long history in developing distributed processing software like MapReduce, Dremel, and Spanner, deliver it with the most powerful software defined network (Google Cloud Networking) in the world and back it with rock solid storage.





Similarly, our internal operational tools, the monitoring, logging, metering, billing, auditing and forensics infrastructure that allows us to deliver a scaled cloud infrastructure to hundreds of thousands of customers and billions of users all operate dramatically more efficiently because of this foundation. Remember, it’s only a tiny fraction of the cloud which you have access to directly as products and services; the real measure of a cloud is its capacity for efficient scale, and Google has built efficiently at planet scale.





So, it works out that across the board, from instance prices to warehouses, from storage tools to automation engines, we’re able to deliver a really substantial price advantage to all of our customers, even while giving you the best tools in the world to deliver for yours.





But don’t rely on me, the English language makes it easy to say “it’s cheaper!” but math is what proves it.  We’ve built several tools to help you make your own analysis of the cost comparison between different clouds, public and private, as well as running a static infrastructure in colocation facilities or your own data centers.





Total Cost of Ownership and Google Cloud Platform





First of those tools is the GCP vs. AWS TCO Tool, a simple web UI for observing how some factors which many customers don’t anticipate in their modeling can have a big impact in real TCO over time.  Cost of capital, the consistent downwards trend in infrastructure costs over time, the likelihood of system design change, as well as the value of per-minute versus per-hour billing can often deliver a huge difference in what you’d expect a system to cost. Our model correctly captures these factors (as verified by Independent Analyst firm ESG) and provides an easy to understand comparison.





We’ve even included some pre-configured examples which capture some of the patterns we see play out every day on our infrastructure, which might look similar to the types of systems you’d design.  The first, which we call a “mature app”, is designed to reflect a production system, still under development, but already in the hands of customers. It has some development resources, systems which run dev and test workloads which demand bursty, short-lived infrastructure.  It also has a production system with a 6:1 day to night diurnal utilization swing (so, if your system needs to run 2 computers at night to serve traffic, in this example you’d run 12 during the day to handle peak load), which is typical of many applications, and has relatively conservative measures for the likelihood of system change, cost of capital, and expected downwards price trajectory. Given these settings, even when using the most efficient combination of AWS Reserved instances, yields a Google Cloud Platform price advantage of 40%.





Some customers are looking to build the next Snapchat, so we’ve included an even more flexible, nimble example of a smaller system called “startup app”.  Using this example, the advantages of per-minute billing, and ability to tolerate huge day/night swings drive a Google Cloud Platform price advantage of nearly 60%.





We talk to many customers in enterprise who argue that their systems don’t work like this; that they don’t develop software, they buy it. That they run static infrastructure systems to minimize operational overhead, and that they license software in a fixed way which demands that they avoid this kind of variability in implementation. Surely paying up front to achieve a fixed discount, like AWS Reserved Instances, must save customers following this usage pattern quite a bit over Cloud Platform?  We’ve captured this workload as “Static enterprise app” in our TCO tool, and if you take a look, it turns out it doesn’t matter: our lower basic rates, combined with automatic sustained usage discounts erase the price advantage of Reserved Instances.  Even in this example, Google Cloud Platform still enjoys a 36% price advantage.





These views are a bit of a summary, but we know folks are eager to dive into additional detail. Linked to the TCO tool is our Google Cloud Platform Pricing Calculator, a simple UI to help you accurately estimate the price you should expect to pay for running applications on our cloud.





If you already know what you’re running somewhere else, and have a good idea of what your fully loaded costs are, try entering those same infrastructure requirements into our Pricing Calculator, I suspect that you’ll come away quite surprised about what your monthly costs would be. (And if you don’t, we sure want to know about it - leave us a comment!)





So, how can you optimize?





Customers often ask me how they can best optimize their systems for cost, how they can save using Google Cloud Platform. In reality, simply implementing applications following basic best practices on Cloud Platform can deliver really substantial cost advantages over more static data center deployments, but often folks expect that there are special tricks to getting a good deal on cloud.





It turns out, most of the time, the real trick is “un-learning” the inefficient behaviors that data centers require to deliver on the needs of business.  These inefficient behaviors typically go along the lines of …



  • Planning on growth? Buy infrastructure months in advance and pre-test it.  



  • Planning on software changes? Radically overprovision hardware and memory “just in case”.



  • Planning on robust testing? Duplicate the production infrastructure for your test setup.



  • Planning, at all? Spend cycles in complex estimation rather than improving your product.







For most cloud customers, all of this planning simply gets eliminated; you pay only for what you use, only when you need it, so the work effort is re-oriented around ensuring that your systems accommodate scalability easily enough to nimbly adjust according to real demand. A few examples:



  • Put work into queues, and autoscale processors against queue depth = never have a machine on that’s not doing productive work!



  • If your software can’t run in an autoscaler group, it’s a bug!



  • For internal tool systems, consider a static “holding” page which calls a deployment manager script to start the dynamic hosting system for an app when users visit; if nobody is online, it turns off!  



  • Don’t over-provision instances for projected future demand, pick exactly the size you need now, and scale up or out as your demands grow.



  • Most DB systems are deeply IO bound; don’t get huge computers when what you really need is huge storage.







While the above might take a bit of tweaking for your software if it’s running in Google Compute Engine, it turns out that lots of Google Cloud Platform services work this way by default.  App Engine, BigQuery, Cloud Bigtable, Cloud Dataflow, CloudSQL Part-time instances, and more all do their best to minimize unnecessary resource consumption automatically.





We’re excited about the advantages we’re sharing with customers, the way that they’re building amazing products on top of us, and how those products are challenging and disrupting the status quo for the better.  What a great time to build!  We can’t wait to see what you build next on Google Cloud Platform.




- Posted by Miles Ward, Global Head of Solutions












  • They store data along columns, rather than rows.



  • They use super-column families, which are groupings of columns. These groupings are usually defined when the schema is created, and they provide some structure to the schema.



Our goal in this series is to help clarify and provide understanding about how workloads are priced in the cloud for our customers. We’ve previously written about Virtual Machines, Local SSD, and Data Warehouses. In this post, we'll expand on what we've written about running NoSQL databases on Google Compute Engine by covering pricing of managed NoSQL databases in the cloud.





For some background on what we mean when we say "NoSQL," have a look at our first post. NoSQL databases are defined more by what they aren’t than what they are. They aren't traditional, relational databases. They each have different features that solve different problems, so discussing them as if they're interchangeable doesn't quite work. However, there are broader categories that we can use to group NoSQL databases.





There are three groups that represent the most popular applications: wide-column databases, key-value stores, and document databases. For example, MongoDB is a document database and Cassandra is a wide-column database. In this post, we will examine two managed databases that fall into two of the three categories: Google Cloud Bigtable and Amazon DynamoDB.





Overview of the Databases


Google Cloud Bigtable was introduced in 2015 as a new, managed NoSQL database on Google Cloud Platform. Bigtable started out as an internal tool, much like BigQuery began life as the internal tool, Dremel. Internally, Google has used Bigtable for years, and we released a white paper describing it in 2006. Bigtable is one of the databases that started the NoSQL database market. Commonly referred to as a type of wide-column-store database, the two generally defining features of this class are:






  • They store data along columns, rather than rows.



  • They use super-column families, which are groupings of columns. These groupings are usually defined when the schema is created, and they provide some structure to the schema.







Otherwise, wide-column databases, and Cloud Bigtable specifically, are similar in function to other key-value stores. Cloud Bigtable’s focus is to provide a fast, massively scalable database that is fully managed for our customers.





Amazon DynamoDB was introduced in 2012 as Amazon’s second, managed NoSQL service. The first, named SimpleDB, had been around since 2007. DynamoDB is a key-value store, which allows for schemaless data storage, with all the data being stored as a value and an indexed key. DynamoDB is based on the principles of Dynamo, a system created and used internally at Amazon, and described in a paper published in 2007.





Pricing The Databases


Cloud Bigtable has two pricing parameters: price per node and price for amount of data stored. The number of nodes is straightforward and the price for storage only depends on the type of storage you chose: solid-state drive (SSD) or hard-disk drive (HDD). Since Cloud Bigtable is currently in beta, the only choice is SSD, so we must use that for our comparison.





DynamoDB sets pricing based on the amount of data stored. It doesn’t have a concept of nodes for pricing, though it does store data across multiple partitions on the backend, so it also prices on both read- and write-operations-per-second. However, there are three ways that AWS charges for reads and writes:






  • DynamoDB allows you to read data that is either consistent or eventually consistent, the difference being the cost—you pay half for eventually consistent reads.



  • You can pay the on-demand rate for reads and writes.



  • You can pay for DynamoDB Reserved Capacity (RC).







With RC pricing, you pay a certain amount of money up front and get a lower rate for the amount of capacity that you use. Like Reserved Instances for EC2 and Redshift, you have the choice of locking in the RC pricing for one year or three years.





Sizing The Databases


Because we are comparing these databases, we should establish the parameters for how we are comparing them.





The minimum-size cluster for Cloud Bigtable is three nodes. Each node provides 10,000 queries per second (QPS), which gives a total of 30,000 QPS for a three node cluster. Since this pricing is scalar, meaning three times the number of nodes will be three times the cost, a cluster of this size and performance is a reasonable comparison point.





Because any of the 30,000 queries could be a read or a write for Cloud Bigtable, we need to decide how the queries will be split up on DynamoDB; we need to specify those numbers in order to price them. For the sake of simplicity, we will simply split them in half into 15,000 reads and 15,000 writes.





Finally, we need to consider the amount of data we’re storing. Neither of the services have any kind of tiered pricing for data storage, so, for the sake of this example, let’s just use 10 TB of data stored for each.





Pricing Comparison


We completed these calculations on September 4, 2015, and have included the output prices in this post. It's possible that pricing or the calculator changed following the publishing of this post.





Additionally, while AWS does provide a calculator for DynamoDB, it does not include RC pricing. We have calculated these prices and included them when necessary.





All prices below, unless otherwise stated, are monthly costs.





Cloud Bigtable


Estimate: $3,164.30


This amount represents $1,423.50 for the nodes and $1,740.80 for storage.





DynamoDB, on-demand


Estimate: $11,353.88


This amount represents $8,550.13 for provisioned capacity and $2,803.75 for storage.





Just running on demand, Cloud Bigtable clearly is far more cost effective. It’s more than $1000 cheaper for storage and DynamoDB is 6 times the cost for operations! When making these kind of comparisons, it can be hard to draw performance conclusions because workloads can vary significantly. In this case, the performance characteristics of these services are built into the pricing. So we can say that for similarly performing databases, Cloud Bigtable is less than a third the cost of DynamoDB. We say "similarly" because they’re not exactly the same. With Cloud Bigtable, you have the flexibility to run any kind of operation you want and it’s the same price. So whether or not your application is read-heavy or write-heavy, it will cost that amount. DynamoDB, on the other hand, has different prices for the different operations. Writes are more expensive than reads, and consistent reads are more expensive than eventually consistent reads.





Let’s see how much of a difference it would make to change all the reads to eventually consistent. This would certainly change the performance of your DynamoDB usage, but let’s see if it drops the price enough to be competitive.





DynamoDB, on-demand, with eventually consistent reads


Estimate: $10,641.37


This amount represents $7837.62 for provisioned capacity and again $2803.75 for storage.





Using only eventually consistent reads doesn’t make an appreciable difference to the overall cost as compared to Cloud Bigtable. We also looked at doing 100% reads and even 100% eventually consistent reads. While both those scenarios are still cheaper, they are not cheaper than Cloud Bigtable and are also unrealistic use cases, so we don't list them here.





However, DynamoDB does offer RC pricing. So let’s take a look at that too.





DynamoDB, 1-year Reserved Capacity


Estimate:


Monthly: $4,480.89*


Upfront: $26,955.00**


Effective monthly: $6,727.14***





The effective monthly cost is $3,923.39 for provisioned capacity and, again, $2803.75 for storage. This lowers your DynamoDB costs by nearly half and the actual provisioned capacity cost to less than half. However, this is still more expensive than the monthly cost of of Cloud Bigtable, and you have to pay more than $25,000 up front for the privilege of locking in your capacity.





Finally, let’s take a look at the 3-year RC Pricing.





DynamoDB, 3-year Reserved Capacity


Estimate:


Monthly: $3,867.03****


Upfront: $32,346.00*****


Effective Monthly: $4,765.53******





The effective monthly cost includes $1,961.78 for provisioned capacity and, again, $2,803.75 for storage costs. So even after you pay over $32,000 up front and lock your usage pattern in for the next three years, you are still paying over $500 more for the performance and over $1,000 more for the storage.





If you look back to our first post in this series on understanding cloud pricing, we wrote about how there’s a cost of capital investment. Most businesses pay about 7% per year cost of capital. That would add nearly $7,000 ($6,792) to the overall cost of running DynamoDB.





Summary


We hope you’ve found this useful. Pricing services across different cloud platforms can be challenging, and our goal here is to help clarify how to do that. You can see that Cloud Bigtable is a cost-effective option for running NoSQL workloads, without any upfront investment or long-term commitments. Beyond just the value that Cloud Bigtable provides, it also delivers high performance and can scale to whatever your needs are. If you want to learn more, check out our documentation, read up on understanding Cloud Bigtable performance, or read through our in depth guide to schema design for time series data.





If you have any comments, ideas, or questions, send them our way. We’re happy to talk.




- Posted by Peter-Mark Verwoerd and Sandeep Parikh, Google Solutions Architects






* DynamoDB gives the first 25 Read Capacity Unit (RCU) and Write Capacity Units (WCU) for free.


Amazon uses 732 hours for a standard month. For these purposes, we will too throughout.


RC hourly for 1 year reads = $0.0025/100 RCU. ((15000 - 25)/100) * 0.0025 * 732 = 274.04


RC hourly for 1 year writes = $0.0128/100 WCU. ((15000 - 25)/100) * 0.0128 = 1403.1

1403.1 + 274.04 + 2803.75 = 4480.89



** RC upfront for 1 year Reads = $30/100 RCU. ((15000 - 25)/100) * 30 = 4492.5




RC upfront for 1 year Writes = $150/100 WCU. ((15000 - 25)/100) * 150 = 22462.5


4492.5 + 22462.50 = 26955




*** (26955 / 12) + 4480.89 = 6727.14



**** RC hourly for 3 year reads = $0.0016/100 RCU. ((15000 - 25)/100) * 0.0016 * 732 = 175.39




RC hourly for 3 year writes = $0.0081/100 WCU. ((15000 - 25/100) * 0.0081 * 732 = 887.9


175.39 + 887.9 + 2803.75 = 3867.03



***** RC upfront for 3 year Reads = $36/100 RCU. ((15000 - 25)/100) * 36 = 5391




RC upfront for 3 year Writes = $180/100 WCU. ((15000 - 25)/100) * 180 = 26955


5391 + 26955 = 32346



****** (32346 / 36) + 3867.03 = 4765.53