about
framework & approach
knowledge network
news & events
technology council
why join?

Friday, January 25, 2008

Amazon Web Services + Microsoft = My Dream Platform

We're implementing some changes to move our processing and file storage components to Amazon Web Services (more on that later). We're using S3 for file storage, EC2 for report processing and SQS for report queuing. The end result will be a very exciting, cheap, virtualy infinitely scalable platform that will remove a lot of day-to-day maintenance headaches and gives us cost predictability.

But I have to say, the lack of support for Windows OS on EC2 nodes is making the transition very difficult. Sure, there's a hack out there to run a virtual Windows instance on top of your Linux virtual host, but it's really slow and it's still up to you to maintain your windows licenses to match actual use. If you need 50 Windows nodes for 2 days, well, you're out of luck.

We're a .Net shop. Our only option is to convert our heavy processing code to Java and run it on Linux. Sure, we could use Mono, but .Net support is limited, and I'm a little concerned about the future of the Mono platform. Unless they get significant support from MS, I just don't see it keeping up with .Net framework advances. I mean, can you imagine Linq support in Mono anytime soon? I can't.

Since they're using Xen in the backend, it seems to me that the only thing preventing Amazon to support Windows is a licensing issue. I don't understand why MS wouldn't make a deal with them. It doesn't sound that complex. Average # of Windows Server instances / yr * volume price. Amazon has the metrics needed. It would require initial investment in purchasing a large set of licenses though, but I don't see why MS couldn't help them out and charge after the fact rather than up-front. And charge the cost back to the end-user.

Assuming Amazon pays $800 for each Windows Server Standard License. Now let's assume they want to cover that expense within the 1st year. That's $.09 / hour, so let's say $.10 is Amazon's actual cost for the first year, $0 afterwards. Charge end-users $.20/instance/hour extra for windows boxes And make a healthy $.10/hour profit during the 1st year, $.20/hour afterwards.

Pricing now becomes

$0.30 - Small Instance (Default)
$0.60 - Large Instance
$1.00 - Extra Large Instance

So you now pay roughly $720/mo for 15 GB of memory, 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platform Windows server, with EC2 platform flexibility.

Would I pay this much? Heck yeah. Giving me the power of Windows on EC2 is definitely worth the price, and now I don't have to worry about how many Windows licenses I own. And this could be a cash-cow for Amazon, with very low risk.

So why the heck this is not offered today is beyond me.

2 comments:

Toons said...

It's actually even easier than that, as Amazon (like us) could license it under the Microsoft SPLA http://www.microsoft.com/serviceproviders/licensing/ albeit the license isn't perfect for per hour billing, but it's a start.

I suspect one of the other reasons might be that to get Windows working under Xen you need Intel VT (or AMD's equivalant) support in the processor. I would imagine from knowing when Amazon started building their infrastructure they couldn't get that at the time (although I would expect their newer hardware has got it supported).

Tony Lucas
CEO, FlexiScale

Stephane Legay said...

That's really good feedback, thanks Tony. I looked at Flexiscale, it looks very promising. I like your offering, the virtual file storage system makes a lot of sense and seems much easier to use than S3, but there were a couple of reasons why I didn't consider it yet for our application.

- As I mentioned, our audience is primarily US-based. Do you guys have plans to open datacenters in the US?

- Our parallel processing architecture relies on a highly-available, scalable, distributed message queuing service (we're using SQS at the moment). I guess we could keep using SQS in conjunction with your product, but I was wondering if you guys are planning a similar feature.

- Last but not least, for various reasons we're using SQL Server 2005 as a database. Licensing is pretty pricey, so we'd like the database server to perform as close to bare metal as possible without having to deal with purchasing multiple processor licenses - 1 quad-core should get us a long way. How do you guys deal with this kind of issue?

Thanks a lot