Microsoft’s Azure just got a little more competition from Amazon. The cloud giant announced yesterday that it was adding support for SQL Server to its Relational Database Service (RDS) and added .Net support to the Elastic Beanstalk cloud app deployment and management service.
The addition of .Net to Beanstalk follows PHP support added in March. (Beanstalk’s first language was Java.) Amazon is letting developers use Elastic Beanstalk for .Net applications, using Windows Server 2008 R2 and IIS 7.5. Amazon says that Beanstalk will support “any Visual Studio Web project… including ASP.NET MVC projects and ASP.NET Web Forms.” This makes it simpler to deploy .Net apps across Amazon Web Services (AWS), and (as with PHP and Java) developers pay nothing for Elastic Beanstalk itself – just for the metered services they use running the applications.
Speaking of Visual Studio, Amazon provides a toolkit for Visual Studio that has been updated to allow developers to publish straight to AWS.
Naturally, if you’re deploying .Net apps, you probably want to have Microsoft’s SQL Server as well. Amazon has added support for multiple editions of SQL Server 2008 R2. Support for SQL Server 2012 should be coming later this year.
Microsoft’s version of cloud SQL is “based on SQL Server,” but does not require users to pick a specific version of SQL Server. Whether that’s a good or bad thing depends on whether developers are looking for features specific to, say, SQL Server 2008 versus SQL Server 2012.
Whether or not Beanstalk constitutes a Platform as a Service, or PaaS (and I still say it does), Amazon continues to branch out at an impressive pace.
This expansion puts AWS even more squarely in competition with Microsoft’s Azure and SQL Azure services, though there’s some notable differences in how they’re set up.
Amazon’s pricing is a lot more complex than Microsoft’s for SQL Azure. The SQL Azure pricing is based on size of the database. Microsoft offers two types of databases, Web and Business. The price is based on the size of the database, and starts at a flat $4.95 (just call it $5, Microsoft!) per month up to 100MB. After databases reach 1GB in size, it’s billed by size, per day. Microsoft does make it a bit complicated by doing a per-day variable calculation. Azure also has bandwidth costs, but they’re not specific to SQL Azure. See Microsoft’s pricing page for all the details.
Amazon, on the other hand, charges by the size of the database and the size of the SQL Server instance in use, plus data storage, plus I/O rate, plus data transfer out. Amazon’s storage rate is much lower ($0.10/GB per month), but you’re also paying for the SQL Server instance and more.
If your shop already has SQL Server licenses, Amazon offers Bring Your Own License (BYOL) pricing, too. There’s also the option of backup storage, and developers can choose reserved instances at lower prices if the services they’re using will run long-term.
Playing with the pricing calculators for both services, it looks like Amazon does well if you’re using Express or Web but gets pricey if you add the Standard SQL Server license. A large DB instance runs $0.59 per hour with the Web license but $1.07 per hour using the Standard license.
For developers interested only in Microsoft services, Azure is probably the way to go. But for organizations using .Net and SQL Server as just a portion of their stack, AWS is now the obvious choice.