Friday, October 24, 2008

Amazon EC2 for Windows is out

I was pretty excited when I received the email this morning (here's a link to the announcement). After looking at the details though - not so much.

The good news is their pricing is cheaper than I originally planned, with basic offering starting at $.125/hour (without authentication). The SQL Server instances are pretty pricey though, starting at $1.10/hr. That's roughly $750/mo. But for a large app you'll probably want to run a high-cpu instance, which will cost you twice as much.

Considering we own a license of SQL Server Standard, I'm guessing we should be able to create our own AMI on top of a base 64-bit AMI and run a high-cpu medium instance for $0.30/hr. That's not too bad.

There are still a few kinks to work out. The C: drive is still limited to 10GB, which can be problematic when installing large applications like Visual Studio. SQL Server itself requires 1.6GB available for temp files on the system drive. I don't know yet if that'll be a problem.

My only real grief is... right now Windows Server 2003 is the only supported OS. I had not planned for that, and it's a real bummer. We built our new app to run on IIS 7, and one of our new audio conversion features requires Windows Server 2008. Our ASP.NET mvc routes won't work on IIS 6, and a couple other custom http modules won't work either.

Windows Server 2008 requires minimum of 10GB available on the system drive (40GB recommended), which is the maximum available on EC2. Could this be the problem? Is this an AMI bundling limitation that will be difficult to circumvent? I really don't know. But considering EC2 is the front-runner in cloud computing platforms, limiting our options to a 5 year-old OS is pretty disappointing.

For now, I guess I'll need to give GoGrid another look.

----------------------------------------------------------

EDIT - this was posted yesterday (Oct 26th) on EC2 forums:

Thanks for all of your feedback.  Our intention is to support the widest variety of options for our customers that we can.  We are already working to support Windows 2008 in EC2, and anticipate being able to offer it publicly in the early part of next year.

Friday, October 03, 2008

Windows Cloud

Back in January I wrote about our serious need for EC2 to run Windows OSes, and since I couldn't get more info from Amazon (although Flexiscale's CEO was kind enough to post more info in a comment) I pretty much gave up and started looking elsewhere for a pay-as-you-go clustering platform to run our .Net code and SQL Server database. We built our architecture to run certain conversions on Linux using EC2, using S3 for file storage, and gluing it all with SQS. I looked closely at GoGrid to run our asynchronous processes running on .Net, IIS web servers and SQL Server database. I wasn't too excited about having to architect a solution that would run on 2 separate networks with a need to potentially transfer files back and forth between S3 and GoGrid, but our only other options were to either

  • Re-write the whole app to run on Linux (php/java/RoR + mysql) - not gonna happen
  • Use Mono. We seriously looked into it and wrote a bunch of code to run our .Net conversion service on Mono, but in the end we encountered weird errors in System.Drawing - it looks like some image formats are not properly supported. So we gave up on that - nice idea, just not stable enough yet.

GoGrid looks nice, pretty UI, easy setup, included load-balancer, and cheap SDL Server licensing. I don't like the fact that you can't create your own images - deploying more nodes in your web cluster would require installing your app on each node. They're working on it though.

Then lo and behold, on Oct 1st I received an email from Amazon announcing upcoming support for Windows and SQL Server on EC2. What a relief! This removes the need for a file transfer queue between both networks and will simplify our app quite a bit. We can still use GoGrid for failover database and web server, but the core app should be able to run 100% on EC2. Yay!

In the web 2.0 storm, where's Microsoft's cloud?

Amazon (AWS), SalesForce (Force.com), Google (app engine) and Yahoo (upcoming) are all big players in the cloud computing space. I have a hard time believe Microsoft is just focusing on upgrading their OS and doesn't see the value of hosting services. Windows Live, Office Live, SharePoint Live, Exchange Live and the new SQL Server Data Services show their commitment.

Back in March I referred to Microsoft "top-secret" cloud computing project. When I asked Steve Ballmer about an Amazon EC2 windows equivalent, he mentioned that something was in the works, and we'd know more over the next 3 months.

Well, it's been over 6 months, and I haven't heard much. Until Amazon made their announcement a couple days ago. Today it looks like Steve Ballmer decided to react to Amazon's new offering by telling the world about a new Windows OS, temporarily named "Windows Cloud". The official announcement should come in 4 weeks.

I expect the service to be pricier than Amazon's and targeted primarily to enterprise customers looking for reliability and a decent SLA, 2 things that AWS is currently sorely missing. We've see S3 and SQS outages, and the S3 SLA is nothing to write home about.

But it's good to know MS is keeping up. I love .Net 3.5, Linq, C#, ASP.Net MVC, IIS 7, SQL Server and Visual Studio 2008. These are great modern developer products and platforms, they make me very productive. I have nothing against LAMP and Linux in general, we do use those platforms for Java and C/C++ applications. But VS and .Net offer so much out of the box they pay for themselves after 2 months of work.