May 2008
Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Laurie's Entries

Subscribe!

Subscribe in Yahoo!
Subscribe in Newsgator
Subscribe in Pluck RSS reader
Subscribe with Bloglines
Site Info

Powered by
Movable Type 3.34
Sponsored Links



Search
Google
Web kf6nvr.net

« Apple QuickTime Pro Registration Key Update | Main | iPod Prob »

How Did I Miss Amazon EC2?

Amazon's EC2 (for Ephemeral Content Creation? no. Echo Cho Cho? no. Electronic Comedy Central?  no!  try Elastic Compute Cloud on for size) is a virtual computing environment that is to virtualization that S3 (Simple Storage Service) is to, uh, (this comparison is breaking down fast) dynamically adjustable RAID arrays.

Too many parenthesis to follow?  Basically, for ten US cents and hour, you can load up a virtual computer image with an Amazon Web Service API that can have whatever installed on it that you want.  The virtual system is equivalent to a 1.7GHz machine with 1.75GB of RAM and a 160GB hard disk all sitting on a fat 250Mbps net connection (that bursts to a full Gigabit).  You store your virtual machine image within the S3 storage system. 

Amazon charges for the S3 storage (a separate account from EC2), for the time the virtual computer is on, and for the bandwidth that the virtual computer uses that leaves the EC2/S3 system (they don't say about bandwidth to/from SQS).  Pricing is currently pretty simple.  For each virtual computer you have running, you pay the ten cents an hour, then you pay twenty cents a gigabyte for bandwidth, fifteen cents for each gigabyte of storage used per month.  There really aren't any limits to any of these three items.  So, you could run your machine for 15 minutes each month or you could run dozens of machines continuously. (They do ask that you contact them if you will be trying to use more than 20 virtual machines.)

Effectively, what they're providing is not only the ability to provision and configure your own dedicated servers on a relatively high bandwidth connection but the ability to do so via scripts, too.  A high end system could have a watchdog monitoring server performance and bring up new servers as they are needed then take them down when resources become available.  This could near-perfectly optimize costs.

This could also be used as a test bed for setting up grid servers and other forms of distributed computing devices and servers.  With testing costing only 80 cents for a typical 8 hour work day, that's not bad at all.  This can also be enabled cheaply.  A single virtual machine image can be used for multiple instances of the virtual machine.  So if you make a test environment for your application that can fit in a gigabyte, then you could have as many individual, dedicated servers as you wanted available when you wanted for only fifteen cents a month plus the server time.  That's cheap, in my opinion! 

If you run a service that only needs to be available for weekdays (or weekends) you could also have it shut off during the other times to reduce costs.  Or if you have a seasonal application or service that only needs to run, say, in October, you could set it up and have it only available during October with only the storage fees to have it ready for the next October (although you could store the image offline until the next year, if you chose to).

Now, speaking of costs, if you just wanted to run a basic dedicated web server, is it actually cost effective with Amazon EC2?  I'll compare to a system I have with 1&1 a known system over at The Planet, and running (probably against ToS) a server on a DSL or Cable connection.

The 1&1 system is a 3Ghz P4-HT system with 2GB of RAM, 120GB of storage (with an addition 120GB of offline backup) and 1500GB of transfer.  All of this runs $119 plus 49 cents a gigabyte for overage.  It also includes static IP addresses. The machine has a 100Mbps connection to the external world.  This machine also comes with Plesk, a firewall, control panel, serial access, some various bits of software.

A lower end system over at The Planet includes a 2.0GHz Celeron with 512MB of RAM, 80GB of storage, 750GB of transfer, and a 10Mbps ethernet card.  This all costs $69 per month and also still includes some IP addresses.  I can't find a specific number for overage costs of bandwidth, but going for 3000GB per month to 3500GB per month on a more expensive server costs an additional $125 per month.  This corresponds to 25 cents per gigabyte.

Both of these systems provide dedicated, true hardware.  You can run whatever you want on them, including virtualization software to create as many other virtual machines as you want (and the hardware can handle).  On the first system, though, it has more RAM and probably a faster processor that compared to an EC2 system.  The second system is likely slower and less capable and definitely has a slower connection to the real world.  Both of these systems are a good comparison because neither are high end and both are relatively affordable.  The respective companies can usually get one online within a couple of days after you contact them.  Both of these options are also self-managed.

Now for the fun part... if we assume that a processor is a processor and not worry about the comparative speed of these systems and not worry about the comparative speed of their physical hard disks, we can make a comparison assuming full use of each system.

An Amazon EC2 system that used 1500GB of transfer and 120GB of persistent disk space while being operational 24/7 would cost $73 for the compute time plus $300 for the transfer and another $18 for the storage.  This is a total of $391, which is clearly more expensive than the 1&1 option, yet it does have advantages that I'll get to in a moment.

The other system on Amazon EC2 would cost the same $73 for the compute time please $150 for half the transfer and $12 for two thirds of the storage, bringing the cost down to $235, which is still much more expensive than either system, though you get a lot more RAM with the EC2 system.

Now, here's the thing, though:  You wouldn't want to run either hardware system with a full disk.  Nor are either of these systems likely to keep up with their allotted transfer.  In my case, on the 1&1 system, I only use about 50GB of the storage and maybe 150GB of the transfer.  In this scenario, the cost would be down to $110, which is ever so slightly cheaper.  Yet if the transfer was down one month, the cost would go down.  And if I cleaned up cruft on the disk, the cost would go down.  This brings both benefit (keeping a tight system would be cheaper) and risk (increase in traffic costs more initially).  Now, your base costs is $73, which is slightly more than the cheapest The Planet system and plenty more than a shared host.  You are charged for uptime, not average load.

However, a bigger benefit is easier scaling and provisioning: you can do it yourself.  And you are not tied to physical hardware limitations, so you can use more storage as you need to with S3.  Software upgrades would be made easier, too, since you can bring a second system up to upgrade and test before bringing the first system down.

Now, after some thinking and looking around, there are two large concerns with Amazon EC2.  The first is that the virtual machine's disk is not persistent.  If you want persistent data, you have to either store it in Amazon S3 directly or frequently copy data files to Amazon S3 (which isn't quite as simple as scp).   The other problem is lack of a physical IP address.  This can be solved with some of the dynamic DNS hosts that are around for other reasons.

Now, I said I would compare to a self run machine.  Your initial setup will cost more, since you'll have to buy the hardware.  You might find a good, low end Dell server for $400 or so.  You'll have to figure out how to handle the IP address issue if you don't have a static IP, much like the Amazon EC2.  But that's it, right?  Because you already have your net connection, there are no further charges, right?  Think again.  Here in CA, after our basic electric usage, we end up paying about 33 cents for every KWh used.  A small 300 watt system will end up running that same 10 cents an hour that Amazon EC2 charges, bringing back the base $73.  And your users won't like your slow 600Kbps uplink connection to them.  Nor will your provider be happy about you hosting a server, since it's usually against the Terms of Service for home connections.  And what if you hosted it on your gaming system with it's nice 1 kilowatt power supply?  That'll cost you a cool $330 a month around here (although your heating bill may drop, your AC bill will go up during the summer).

None of these options provide one the experimental flexibility of Amazon EC2, though:  You can't try them out for a few hours and at a few bucks cost.  Most of them require annual commitments.  The ability for just a little money to play with your own farm of a dozen servers is also amazing.  If you've already got scripts that can break data up easily across processes and even machines via network shares, then you can quite easily bring up a number of machines, distribute the data to them, process the data easily on 20 machines, copy the results back down from each, and shut the machines down.  Even with network speeds, this could be much faster than running the same processing on a single machine.

I think, for me and right now, the biggest single problem is that it's a limited beta and they aren't letting new people in right now.  Darn... I was hoping to play with it a little this weekend.  One possible use for me right now would be to clone my current server in to an AMI, use the AMI to test upgrading of the OS, and then either do the upgrade again or transfer back to the physical server I'm on.  But, alas, that's not gonna happen right now...

Posted by Shane on January 29, 2007 7:55 AM |

TrackBacks

TrackBack URL for this entry:
http://www.kf6nvr.net/mt/kf6nvr-tb.cgi/751

Comments

Excellent analysis and discussion. Just what I was looking for, actually. Thank you.

Post a comment

Most comments moderated. I manually approve each. This takes time. Thank you for your patience.