

Amazon EC2 Now More Ready for Application Hosting 149
For months now, I've been geeked about Amazon's EC2 as a web hosting service. But until today, in my opinion, it wasn't ready for prime time. Now it is, for two reasons. One, you can get static IPs, so if an outward-facing VM goes down you can quickly start another one and point your site's traffic to it without waiting for DNS propagation. And two, you can now separate your VMs into "physically distinct, independent infrastructure" zones, so you can plan to keep your site up if a tornado takes out one NOC. If I were developing a new website I'd host it there; buying or leasing real hardware for a startup seems silly. If you have questions, or especially if you know something about other companies' virtual hosting options, post comments -- let's compare notes.
NOC (Score:2, Informative)
Some more about EC2 (Score:5, Informative)
So here's a little about what EC2 actually is, for those of you who don't know. You don't have to reply here, start your own comments ;)
The Elastic Compute Cloud was originally designed as a way to host applications that needed lots of CPUs, and the option to expand by adding more CPUs. It's a hosting service that lets you start up virtual machines to run any software you want: they have a wide variety of pre-packaged open-source operating systems you can pick to start up your VMs with.
Starting up a VM takes just a minute or two, and it's point-and-click thanks to the Firefox extension [amazonwebservices.com]. Each VM comes in one of three sizes [amazon.com]: small (webhead), large (database), and extra large (bigass database). They cost respectively $72, $288, and $576 a month (billed by the hour), plus bandwidth ($0.18/GB out, somewhat cheaper for data going in and there's a price break at 10 TB).
One of the concerns everyone raises with hosting on virtual machines is that if a VM instance goes down, you lose everything on it. It comes with hard drive storage (160 GB on the small size), but if something goes wrong, that data's gone.
I think the rejoinder here is that, on real hardware, if something goes wrong, your data's gone. You never set up an enterprise-level website on the assumption that any particular hardware has to survive. Single points of failure are always a mistake, and backups are always a necessity. When any machine explodes - real or virtual - the question is how fast your system recovers to "working well enough" (seconds, hopefully) and then how long it takes you to get it "back to normal" behind the scenes (hours, hopefully). Those answers shouldn't depend on whether there's a physical drive to yank out of a dead physical machine that may or may not retain valid data.
Which brings up what I think is one of the selling points of EC2: free fast bandwidth to S3 [amazonwebservices.com], Amazon's near-infinite-size, redundantly-replicated data storage platform. That's a nice backup option to have available. That's part of why, if I were starting a new web service, I wouldn't host it on real hardware. I'd like not having to worry about backups, tapes, offsite copies... bleah, let someone else worry about it.
Slashdot hasn't run many stories on EC2 (none that I know of) because until now it's been a niche service. Without a way to guarantee that you can have a static IP, there had been a single point of failure: if your outward-facing VMs all went down, your only recourse was to start up more VMs on new, dynamically-assigned IPs, point your DNS to them, and wait hours for your users' DNS caches to expire. That meant that while it may have been a good service for sites that needed to do massive private computation, it was an unacceptable hosting service.
Now with static IPs, you basically set up your service to have several VMs which provide the outward-facing service (maybe running a webserver, or a reverse proxy for your internal webservers), and you point your public, static IPs at those. If one or more of them goes down, you start up new copies of those VMs and repoint the IPs to them. No DNS changes required.
I know there are other companies offering web hosting through virtual servers. Please share information about them, the more we all know the better.
Re:Bandwidth Limits/Costs? (Score:3, Informative)
looks pretty reasonable to me, but i dont really have anything to compare it to. no minimum fee. it's completely based on bandwidth, resources, and usage.
Re:It's too proprietary (Score:3, Informative)
I do think that another host using an automated provisioning system that is compatable with EC2 would be a good thing- If I wasn't absolutely swamped by my dayjob, I'd try to implement such a thing.
Re:IPv6 (Score:3, Informative)
Re:Some more about EC2 (Score:1, Informative)
No persistent storage; not great value (Score:5, Informative)
And it's still not a great value. It seems cheap. $72/mo for a 1.7GB RAM server. Well, look at Slicehost and you can get a 2GB RAM Xen instance (same virtualization software as EC2) for $140 WITH persistent storage and 800GB of bandwidth. That doesn't sound like a great deal UNTIL you calculate what EC2 bandwidth costs. 800GB would cost you $144 at $0.18 per GB bringing the total cost to $216 ($76 more than Slicehost). That 18 cents doesn't sound like much, but it adds up. The same situation happens with Joyent. For $250 you get a 2GB RAM server from them (running under Solaris' Zones) with 10TB of bandwidth. That would cost you $1,872 with EC2. Even if you assume that you'll only use 10% of what Joyent is giving you, EC2 still comes in at a cost of $252 - and without persistent storage!
EC2 really got the ball rolling, but it just isn't such a leader. Other operations have critical features (persistent storage) that EC2 is lacking along with pricing that just isn't more expensive. I want to like EC2, but their competitors are simply better.
Re:No (Score:4, Informative)
Re:It's too proprietary (Score:4, Informative)
My company uses EC2 (plus a few other amazon services, which I find to be spectacular) for hosting our application. If we wanted to move to another server or company or datacenter, it's just a matter of setting up the new server and repointing the DNS. Also what is nonstandard about their servers? You basically set them up however you want. You want to run linux? cool. FreeBSD? awesome. Basically you can run any *NIX clone you please. Fortunately lots of people provide excellent templates, so rolling your own is not really necessary.
Re:No persistent storage; not great value (Score:5, Informative)
You get database backup by replicating to another VM, presumably one in a different "zone" for physical separation. Then that backup VM every n hours stops its replication, dumps to S3, and starts replication back up (exactly like a physical machine would stop, dump to tape or to a remote disk, and restart).
Database high-availability is similar. In the extreme case, you replicate your live master to the master database in another zone that entirely duplicates your live zone's setup (same number of webheads, same databases in same replication configuration, etc)... then if the live zone falls into the ocean you point your IPs to the webheads in the HA zone and resume activity within seconds, having lost only a fraction of a second of data stream.
Having dealt with Slashdot's webheads and databases losing disk, and in some cases having to be entirely replaced, I don't see how persistent storage is a big selling point. I mean it's nice I guess, but not something that I'd sacrifice any functionality for. Applications have to be designed to run on unreliable hardware.
Re:check out Mosso (Score:4, Informative)
Re:I have a question: (Score:5, Informative)
Re:A Few Basic Questions (Score:4, Informative)
2) Yes, very nervous. Especially with the privacy laws in the States. I'm Canadian, and I would be talking to lawyers about data storage issues before having sending customers' data down South.
3) EC2 is useless without S3, since your images are stored on S3. S3 is useful without EC2, as you can use it for static storage and BitTorrent hosting.
4) See my response to #2.
5) I don't work for Amazon.
Re:No persistent storage; not great value (Score:3, Informative)
Re:Anyone Use 3Tera's AppLogic? (Score:2, Informative)
Re:No persistent storage; not great value (Score:3, Informative)
S3 has been working well for us. While the semantics are different than typical storage, I would argue that they are far from useless. Since files on S3 can be made publicly accessible via a web address, we use S3 to host our assets for our website (css, javascript, images), as well as db backups and other backups.
We have not had to design our app for EC2. We do make use of S3 for storing user data, so we have S3 libraries in our app, but I fail to see where the "designing our app for EC2" comes into play.
Re:It's too proprietary (Score:2, Informative)
No you don't. You have to run Linux. And they pick the kernel. It runs on Xen after all.
Also, why does everyone seems to ignore the fact that the virtual machines are automatically wiped/reset to base image state whenever they terminate?
While inconvenient, their API is simply fantastic. My EC2 machines boot, add-remove certain components, and then deploy data from S3 on boot.
You just have to build your thing with one thing in mind: EC2 Virtual machines are one shot, disposable machines.
Cloud Services Comparison (Score:2, Informative)
Some days ago I posted an article [caravana.to] on my blog in which I try to compare different cloud services and also give my 2 cents opinion about the technology itself (disclaimer: I directly tested only two services, EC2 and GoGrid.)
Beyond the comparison, in my post I say that I was wrong trying to use a utility computing platform as EC2 like a web hosting platform; also, there other very interesting uses of the technology behind the clouds (e.g. creating disposable environments for application testing.)
EC2 is great but check out Joyent (Score:2, Informative)