Last Monday evening, while I was en route from Las Vegas to Seattle, Amazon unwrapped its latest Web Services effort: Amazon RDS – The Amazon Relational Database Service. The addition of a relational offering is no real surprise, to be honest; as much as non-relational persistence mechnanisms and the so-called NoSQL catalog may be a better fit, architecturally, for scale out clouds, there are an order of magnitude more applications that require a relational database than don’t.
What was very interesting, however, was the selection of MySQL as the database. Granted, it is the most popular open source database, and potentially the most popular relational database period. But with the project’s future open to question – the EU has stalled Oracle’s planned takeover of MySQL parent Sun – the timing is interesting. Amazon is effectively launching a product with no certainty of who the future owner of the MySQL assets may be. Which may, in fact, be the point. But let’s come back to that.
Reactions to RDS have been fairly mixed. For some, there’s little that’s new about the service. Reuven Cohen of Enomaly, for example, had this reaction on the Cloud Computing Interoperability Forum:
Let me get this straight. Amazon basically created a Restful Meta API for deploying mySQL clusters for people not smart enough to figure out how to do it themselves using one of the dozens of mySQL cluster AMI’s available at 8.5cent / hour.
Instead of a Web service, what they need is a giant red button labeled DummyDB.
Others, like Lonely Code, are far more appreciative:
Traditionally one would have to set up a block storage device, mount it, hack the mySQL configuration to use the mounted EBS volume for storage (not to mention messing around with XFS locking and snapshotting the DB when the instance goes down). All in all a pain to implement and maintain.
Now with Amazon’s Relational Database Service, you get a MySQL database, hosted in the cloud – auto backed-up, patched and running on a scalable infrastructure (you can re-size it to your hearts content) and at the same time independent of your instances – meaning no more messing around with block storage for your database.
From here, it seems fairly clear that while RDS will not be the best option for every MySQL user, it will find a more than adequate market of customers who are willing to trade money for time, as Mårten Mickos might put it. Assuming that Amazon can realize its typical economies of scale by amortizing the management and administration costs of the service over a wide array of machines, the product should more than pay for itself simply by widening the addressable market.
How much wider will it make the addressable market? At a minimum, it will lower the barriers to entry for customers with relational needs (read: most customers) and a lack of cloud expertise. It will be fascinating to see, however, if Amazon has far grander ambitions in mind.
We’ll need to remember, when we look back at this time, that MySQL is at an interesting crossroads in its existence. Its overwhelming popularity earned it a billion dollar valuation from Sun, but the competitive pressure from technically differentiated forks – made possible by the MySQL licensing model – was mounting even prior to Sun’s decision to sell. As Mårten says:
Indeed, in the MySQL ecosystem, there are already a number of forks. Each one of those forks may perhaps currently be individually weak and unpromising. But the reality remains that if the main steward of an open-source product fails to live up to reasonable expectations, the forces of open source will take over.
MySQL, by virtue of its copyright and trademark ownership among other things, has clear advantages in the marketplace. But it is far from correct to assert that they are insurmountable. Mostly ignored, for example, have been the opportunity for hosting versions of the database. Hosted versions of the database just like RDS, actually.
It’s also worth mentioning that forked vendors are not at all prohibited from leveraging – and exclusively licensing and differentiating – hosted versions of the database, because hosting does not trigger the protections of the GPL. That’s a business model and an additional revenue option that is as viable for them as it is for MySQL.
When I first read about Amazon’s new relational service after touching down in Seattle last Monday, I noticed something interesting. The first three paragraphs of the release talked about MySQL, but didn’t say that it was MySQL. It talked about how it had the capabilities of MySQL, and would work with your existing MySQL databases, but it stopped short of saying that it was MySQL, instantiated in the cloud.
Amazon Relational Database Service (Amazon RDS) is a web service that makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while managing time-consuming database administration tasks, freeing you up to focus on your applications and business.
Amazon RDS gives you access to the full capabilities of a familiar MySQL database. This means the code, applications, and tools you already use today with your existing MySQL databases work seamlessly with Amazon RDS. Amazon RDS automatically patches the database software and backs up your database, storing the backups for a user-defined retention period. You also benefit from the flexibility of being able to scale the compute resources or storage capacity associated with your relational database instance via a single API call.
As with all Amazon Web Services, there are no up-front investments required, and you pay only for the resources you use.
Amazon RDS Functionality
Amazon RDS is designed for developers or businesses who require the full features and capabilities of a relational database, or who wish to migrate existing applications and tools that utilize a relational database. It gives you access to the full capabilities of a MySQL 5.1 database running on your own Amazon RDS database instance.
A subtle distinction, to be sure, but potentially an important one. Reading further, it quickly became apparent that Amazon did not, in fact, have any issues declaring its offering MySQL. But the potential, to me, is still there.
Consider that the available forks of MySQL are, for reasons that have been apparent for some time, not only technically differentiated, but regarded by many in the community as superior to the builds available from MySQL itself. In spite of this, they are, as Mårten argues above, individually weak. Forks cannot use the MySQL brand, and they cannot hope to match MySQL’s distribution in the near term through conventional distribution mechanism. But Amazon wouldn’t necessarily need the brand (in the context of EC2, which is stronger – Linux or EC2?), and its cloud offers massive advantages over conventional distribution. What if, compelled by market conditions and Oracle pricing, Amazon eventually stopped talking about its MySQL databases in favor of a compatibility story that would permit it host your MySQL databases. And what if, for whatever the reason, MySQL developers were unhappy with the state of affairs and chose to leave, making them available to Amazon? Or Amazon shifted its partnership to the Open Database Alliance?
Are we looking at MySQL’s successor, then, in RDS? Maybe, maybe not. Compatibility issues would be a major concern, and the feature deltas that Mark discusses could throttle interest. But that’s the wrong question. The right question is could we be looking at the next MySQL in RDS, and the answer to that, I think, is yes.