How to Benefit from the Inefficient Pricing of Public Cloud Markets
Much like espionage, the word arbitrage is sometimes overused, perhaps just because it has a nice ring of mystique to it. While financial theorists use a very precise definition of arbitrage in pricing theory, historical usage as well as colloquial use by practitioners, cast a much wider net. This blog is squarely focused on the latter, and includes the following:
- Using an historical example, I’ll illustrate the concept, and the economic conditions under which arbitrage opportunities occur.
- Turning to the present, I’ll show that those economic conditions exist today, in the public cloud market, and provide a real-world example.
- I’ll also show a nice demo of the technologies enabling cloud arbitrage
As has been my practice in previous blogs, if you’re just here for the demo, I’ll link you to it immediately here. If you’re interested in the rest, read on!
The Origins of Arbitrage Operations
While arbitrage has a long history, let’s dive in directly to the competing coin markets of 17th century Europe. We join at an exciting juncture in which the separately regulated coin markets in Amsterdam and London produced a different price for gold coins when exchanged for silver coins. To simplify the math in the example, we’ll say that in Amsterdam a gold coin was worth 11 silver coins, while in London a gold coin was worth 10 silver coins1.
As a result of this difference, agile London traders are quickly becoming rich by getting on boats and travelling back and forth between the two markets. To do this, they use a simple scheme.
Say that I live in London and have 1,000 coins of silver in my pocket (Yes, I listened to my mom and sold my cows for coins, not beans). I would go to the London market and exchange the 1,000 silver coins, for 100 gold coins. Now I get on a ship and travel to Amsterdam. I run from the dock to the Amsterdam market and trade my 100 gold coins. Here they are worth 1,100 silver coins. I take the 1,100 coins back to dock in time to take the same ship back to London. Eureka! I started the day in London with 1,000 silver coins, and I am back in London with 1,100 silver coins in my pocket.
Where do I go from here? Straight back to the London market. In London, my newly earned 1,100 silver coins get me 110 gold coins. Take the gold to Amsterdam and receive 1,210 silver coins. Go back to London and exchange for 121 gold coins, etc., etc.
What is going on here? An inefficiency of market pricing creates the opportunity to make 10% on each round trip. By the 8th trip you have more than doubled your money, and every 8 additional trips doubles it again. As the pauper with a chess set proved to the king, continuously doubling your money makes you very rich very quickly. (https://en.wikipedia.org/wiki/Wheat_and_chessboard_problem)
One would think that the Amsterdam traders would realize they are paying too much for the gold coins, and Londoners are making a profit off their backs. So how could this imbalance survive for so long?
It did, because there is a catch. For the method above to work you need to constantly ship gold coins on your boat across the channel to Amsterdam, and ship silver coins across the channel London. As modern treasure hunting divers can testify, the shipping by sea of lots of coins was a risky business back in the 17th century. While prices would remain close, it was this inability to easily ship goods between the two markets that created the unbalanced pricing and the opportunity for arbitrage gains.
The key for the arbitrage opportunity to exist was a pricing inefficiency created by a difficulty in transferring goods between the markets.
The key to benefiting from an arbitrage opportunity, is two-fold. First you need to have the knowledge that the opportunity exists. Second you need to be able to efficiently ship between the two markets.
As a prize for your patience, I will now proceed to giving you both keys.
A Modern Opportunity for Gain in the Public Cloud Market
Public clouds such as Google Cloud Platform (GCP), Microsoft Azure, and Amazon Web Services (AWS) offer many products. Some are quite unique to the specific providers, but others are basically commodity offerings available across the clouds.
While not entirely identical, the following table shows an example of two very similar offerings for general purpose compute instances from Google Cloud and AWS:
In this blog, we will focus on the opportunity that exists in the spot market for these general-purpose offerings. The spot market is a separate market on each of the clouds where users can purchase compute nodes at considerable price discounts, with the caveat that the purchased VMs are preemptible. Preemptible, in this case, means that the cloud vendor has the option to stop those VMs when they can benefit from selling the resources to someone else.
While the two clouds2 have similar offerings of preemptive spot markets, they differ in two respects:
- The name
On AWS, they call these VMs “Spot Instances” (https://aws.amazon.com/ec2/spot/), while on Google they are called “Preemptible VMs” (https://cloud.google.com/preemptible-vms/)
- The pricing mechanism
On Google, the price for a preemptible VM is fixed at an 80% discount of the on-demand price. In contrast, AWS has a dynamic market bid process, which creates a fluctuating price that can either go as low as a 90% discount of the on-demand price, or to any higher price.
The above difference in pricing methods, creates a dynamic opportunity for significant cost reduction across the two clouds.
On Google, prices are fixed at 20% of on-demand, while on AWS prices can go as low as 10% of on-demand, but can often fluctuate at higher prices. Since on-demand prices are fairly similar across the offerings, when AWS prices are at 10% they are essentially at half price of the Google prices. However, when AWS spot prices near on-demand prices, AWS can become up to 4 times higher than Google prices.
A Recent Example
As shown in the example below, this is not a theoretical exercise.
The below graph tracks the spot price of AWS m4.large windows instances in the us-west-2c region between Nov 20th and Dec 10th. As expected, the AWS bidding mechanism produces a fluctuation in pricing. In this case, the prices mostly fluctuate between a low price of about $0.03/hour and a high range of $0.13-$0.16/hour3. Also depicted in the graph, is the fixed price of the comparable Google Cloud n1-standard-2 offering. Though AWS prices were lower than Google Cloud prices for days at a time, the price fluctuations caused the relationship between the two to flip every few days. For example, around Nov 21st, AWS prices were trading at a discount of about 25% to Google prices, but switch to Nov 25th, and you can see that AWS spot prices are about 4 times the price of the comparable Google offering.
How can essentially the same product cost 4 times as much in one market versus another?
As surprisingly as it may sound, this modern inefficiency is caused by the same exact issue that caused gold prices to differ in the 17th century markets: namely a shipping issue.
As we discussed in our historical example, the key to benefiting from the price difference is the ability to easily transfer between the markets. Ideally, you would like to run your applications on GCP when the price is lower there, and on AWS when the pricing difference flips. Doing so, you would immediately benefit from the best price available at each point in time and save considerable sums on your IT expenditures4.
But applications only create value when they have data to process. And herein lies the shipping challenge creating this price discrepancy. To benefit from the best price available, you need your data to be readily available in the right place at the right time.
This is the where technologies such as Elastifile’s cross-cloud data fabric step in, delivering data agility for the modern enterprise.
As demonstrated in this demo, the cross-cloud data fabric sets your data free, and enables you to use the most economical resources at any given time.
Well, what are you waiting for? You now have the two keys. Go unlock some profit for your organization!
1 The actual price difference was more minute, and is quoted in [http://www.sfu.ca/~poitras/EQF_ARB%24%24.pdf], but the math works out the same.
2 It is worth noting that Azure has a similar offering in beta called low priority VMs: https://docs.microsoft.com/en-us/azure/batch/batch-low-pri-vms
3 I would like to extend my thanks to Guy Rinkevich and Andrew Renz for their invaluable assistance in obtaining and processing the data.
4 While technically you cannot “resell” the higher compute costs, you are creating an abnormal profit by selling your services, using a compute cost that is much lower than the cost incurred by less agile competitors.