Amazon RDS (aka MySQL) appears to be more expensive than SQL Azure, but I haven't found a detailed comparison of the two. Why would I choose SQL Azure over RDS? I guess it comes down to SQL Server vs. MySQL.
Tricky question... let me take a shot at it... :) There is a little more than meets the eye.
It seems that the Amazon RDS offering is closer to a server hosting model; you pick your memory/CPUs... and so on. SQL Azure is a departure from traditional database servers in the sense that you don't really run a "server" in the cloud. You run a database
in the cloud. It might sound a bit like semantics, but it isn't. You are assigned a SQL Azure database server, but it's nothing more than a DNS entry. If you create 5 databases on that database server, they will be running on different
physical servers (guaranteed) so that their performance and availability can be managed by SQL Azure independently. So databases can be moved around to spread the load overall (remember, it's a multitenant environment), depending on usage patterns of
individual databases. So you won't have to define a memory footprint, CPU or I/O requirements; you just build and deploy your database through a web interface.
On the flip side, it appears that Amazon RDS provides storage options not available on SQL Azure. The largest database size in SQL Azure is 50GB; which for most applications is plenty. Amazon RDS provides up to 1TB. So the Amazon solution provides
companies with the traditional "scale up" model that comes with its own set of challenges for scalability. SQL Azure limits the size, imposing a scale out by design of cloud applications for applications that need to grow beyond 50GB.
So I would say that at a glance, the Amazon RDS service appears a bit more static, and closer to a traditional database server provisioning model (the one time fee in Amazon RDS feels like you are paying for a server for example). While SQL Azure is
more dynamic in nature, proposes a scale out model, and adapts to your database needs over time. Since the spirit of cloud computing is about flexibility and ubiquity (in the sense that resources could be anywhere), in order to save on maintenance
costs over time, I believe SQL Azure delivers higher value overall. But that's just my opinion.
Hope this helps.
Herve Roggero, Blue Syntax MVP SQL Azure Co-Author: Pro SQL Azure
Both platforms are being developed fairly quickly, so you will need to keep an eye on them, but here are some difference today:
(As you point out) SQL Azure is SQL Server only while RDS is MySQL only with Oracle in the pipeline
SQL Azure is not a direct equivalent of the on premise SQL Server, RDS is supposed to be a full MySQL instance so you might have better portability between on-premise applications with RDS, especially if your application makes heavy use of stored procedures.
SQL Azure comes with SQL reporting services (albeit a slightly limited version compared to on-premise), RDS has no equivalent
RDS has built in backup and point-in-time restore, SQL Azure does not - although both have built in replication to give high availability through hardware/media failure. Backup/restore is supposed to be in the pipeline for SQL Azure, but with no firm date.
RDS is priced based on compute units and storage, SQL Azure is based on storage only. This means that if your application is heavy on stored procedures, SQL Azure will almost certainly be better cost-wise as you do not pay for the computation associated
with the stored procedures.