Amazon EC2 Now More Ready for Application Hosting
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.
I think you are confused ... all the NOCs of Amazon could go down and your servers (which are in a Data Centre) will continue to operate.
http://en.wikipedia.org/wiki/Network_operations_center
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. Each VM comes in one of three sizes: 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, 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.
pricing and bandwidth is oulined here about halfway down the page. and a nifty pricing calculator here.
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.
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.
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
There's still one glaring problem. There is no persistent storage (other than shuttling data to S3). That means that if your website is database-backed, you need to figure out what to do should your instance crash. Hourly backups? Mounting S3 as a slow FUSE filesystem that you can put your database on? It's all ugly.
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.
Because having your own hardware you can't scale up to 50 server instances for half an hour and then scale back down to 1 when traffic decreases, just as one example.
Your comment makes it apparent that you really don't understand how hosting a website works.
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.
'When the going gets weird, the weird turn pro.' -HST
What's also interesting about Mosso is their billing method being based on requests and not on the type of requests/media or demands your applying to the servers. What would cost you $1.89 a month on S3, costs you $100 on Mosso. You can easily max out your monthly request amount on Mosso with 3 small websites, so make sure you look into this factor carefully before considering their services.
1) Don't limit your ideas about using EC2 to hosting. You can run whatever you want on their instances. Think about a company that does some kind of data acquisition/processing. You could set up a system for them that does a run in 1 hour (since that's the minimum billing slice) instead of their current process that takes a month on a single workstation (or even cluster of workstations in their office). The results get stored on S3 where they download them over an encrypted connection.
:P
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.
When you use LayeredTech as your hosting provider, it's included with no separate license price. LT's prices are very reasonable as well.
>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.
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.
Some days ago I posted an article 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.)
We've been using Joyent and are very happy. I've used EC2 for a few things and I think Joyent is more economical for many applications.
"It was hell!" recalls former child.