Well, it's not just hosting though. Typical hosting you cannot just boot down and then boot up a server with 8x the ram or disk space. That's just one thing.
The absolute key thing is that you can do this with an API and pay by the hour! I think the proper term is utility computing and amazon launched the cloud meme with EC2...
Being able to pay by the hour massively, massively reduces the capital expenditure required when launching a public site? You can launch on a relatively cheap $75-$150 a month and then if you get Slashdot/Digg your code can automatically scale and only pay for the extra capacity when you need ... that's kind of the point of the service. Check out Bezos at startup school last year talking about animoto : http://omnisio.com/startupschool08/jeff-bezos You can't expect to launch a public site with no budget! It's only a few thousand to support this sort of thing. If you launch unprepared to scale, you are just asking for someone with funding to rewrite your stuff.
Some languages/frameworks etc scale better than others. Making that choice is very important. $75-$150/mo is quite a lot really unless you're getting lots of traffic.
I can see the case for this sort of scalability if your traffic is wildly unpredictable - eg 1 visit one day, 100,000 visits the next - but I think that's rare.
However you slice it, $150/mo is only $1800/year. Let's say you want to launch some new site targeting the public consumer internet where you would like to see hundreds of thousands of people on your site. You're not going to get there first. You have two options - either put forth the engineering effort to properly test your server and get it to scale up to the many thousands of concurrent level or launch in a series of betas with increasingly more people. There is certainly a case for getting the software ready, launching it and then doing a marketing push and if you get a hit on some major service, the site is ready to go - I think it puts forth a more professional air. Now, I have reviewed slicehost more since this discussion and there may be a significant way to reduce cost there... but it is also not as feature rich as the whole AWS suite.
I've been using Linode for about 3 months now and I'm 100% satisfied with both their service, the quality/rapid response of their support and billing team as well as the helpfulness of their IRC community.
I originally was thinning between SliceHost and Linode, the Linode offered 'more bang for the buck' - same prices (and as far s I've read, quality too) as SliceHost, but with more RAM and disk space
There are cases where you need more than 4 GB of virtual address space even if you're not actively using 4 GB of physical memory.
Our application, for instance, uses mmap heavily and pretty easily tears through 4 GB of address space while comfortably running on a machine with less RAM.
One other nitpick I'd add there is that 64-bit runtimes consume drastically more memory -- mostly meaning interpreted languages, JVMs, etc. Compiled C, C++, etc. fare better since they usually make use of the stack more widely rather than having everything running through three levels of indirection (thus using lots of 8-byte pointers) up in the heap.
A 64-bit OS build consumes more memory, even if your app does not.
Perhaps there are special cases where it still makes sense, despite losing memory (though your example use case makes me feel funny, and not in a good way, but I don't know enough about such things to argue), but in the general web hosting case, it is stupid to have a 64 bit OS with less than 4GB of RAM. As you note, the difference is much more dramatic in dynamic languages (Ruby, Python, PHP, and Perl applications simply explode in size when run on 64 bit systems...like 50%-75% larger).
> though your example use case makes me feel funny, and not in a good way
mmap is a way of treating files or parts of files as memory when interacting with them and is used pretty often in low-ish level stuff that does file wrangling as it's one of the more performant ways of doing random access on a file. Since those files are being accessed as memory they consume space from the 4 GB of address space on a 32-bit platform, but don't take up physical memory (except insofar as their contents is cached in disk buffers).
That's one thing that's often misunderstood with the 32-bit limitation -- address space is limited; modern "32-bit" CPUs have used 36-bit addressing internally for quite some time, meaning they can address 64 GB rather than 4 GB of RAM (http://en.wikipedia.org/wiki/Physical_Address_Extension).
Because of the address space limitations you also don't have a full 4 GB to work with inside of a process on 32-bit platforms -- if you try to allocate a 3.5 GB block of memory it will usually fail because there's no contiguous block of address space available, even if there's 3.5 GB of unused memory. Typically the Linux kernel reserves 1 GB of address space for itself, and user space reserves a block for memory mapped I/O devices as well.
There's a pretty good article explaining some of this here:
Now, all of that said, I'm not disagreeing with your advice -- just noting that there are some (mostly corner-) cases where you do need the address space, but may not need the physical memory.
Noticed that most graphs start with the baseline being the lowest value (usually slicehost 512). Which is ok, but for somebody just glancing at them it looks like linode is always a few times better, when usually it's only 10-30%. Some form of relative comparison might be useful.
Linode's extra features (HA clustering, internal networks, custom partitioning, DNS service, and API), great support, and sweet price points all make it an amazing host.
I use Joyent. I would argue that Media Temple is not cloud hosting (and it's "grid" is always down). If Mosso gave OpenSolaris as an option, I would switch to it.
@Jerecoh: I use Joyent too... and have been very pleased with it. But, I have to admit that we didn't spend a lot of time evaluating all of the other cloud options out there. Why did you choose Joyent?
I think he already told us: "If Mosso gave OpenSolaris as an option, I would switch to it."
I'm surprised to see it, since the majority of folks prefer Linux by some margin (certainly the userland is better on Linux). But Solaris has some killer features in the cloud space, and Joyent are doing a great job taking advantage of them. Solaris Zones are quite a bit more efficient than Xen, and quite a bit more stable than OpenVZ/Virtuozzo and vservers (which use roughly the same model as Solaris Zones).
OpenHosting. It seemed the most reputable at the time I first got the service, though today I'd probably pick SliceHost. No problems with OpenHosting, but SliceHost offers more for the same cost. I'd switch over, if I got myself motivated to go through the process of moving my data.
Slicehost is ok, their pricing structure ramps up very fast though. MediaTemple is the one I would recommend to someone for a single (or just a few) site instance. If they needed multiple servers with complex config (or just want to lay them out in your own way) either EC2 (multiple clients model: we have 150+ instances working as clients) or MediaTemple CX (complex hosting - we are in the process of purchasing a 200 node cluster with them) would be my recommendations.
I agree with keefe that "cloud" should be replaced with "utility computing".
I host my website with Media Temple on their (gs) Grid, but when I use utility comp services, I use Amazon. Why is Media Temple even on here? Utility computing services let you provision servers at will, where Media Temple still has to provision your server for you.
So, to answer your question, I use AWS EC2 as my "cloud host".
We've been migrating from theplanet to Mosso for a month and cloud hosting concept is great. Mosso's live chat service is very responsive and helpful. I chose it for its partnership with Limelight CDN service and the service reputation by Rackspace.
I was using SliceHost for about 3-4 months for playing around. Service and support were good, but I recently switched to a MediaTemple Rage DV and I love everything about it except for Plesk. Linode looks interesting and cheap, hmmm.
I use App Engine because of its simplicity and ease of deployment. I include Django trunk in my sources, so I am not really missing anything for regular web apps.
Gandi.net should probably be on the list, with their recently-out-of-beta hosting offering. I hear good things, though I can't claim to have tried it myself.
I haven't looked at it in depth so I don't know how it compares to the offerings listed above. My guess is that it's closer to AppEngine - you write to the MS stack and deploy on their infrastructure, the details of that infrastructure are opaque to you.
That sounds about right. I write all my stuff on the Microsoft stack whenever I have a choice, and still I'm not at all excited about their Cloud offering. They really missed a great opportunity to dominate the space.
I have multiple boxes with slicehost. Couldnt be more happy. The customer service is fantastic. Usually get an email response within 2 - 3 hours. Admin interface is easy to use. Theres also a huge repository of tutorials and howtos for setting up your system.
I use linode for hosting, moved from slicehost - cheaper, and more options. Multiple datacenters etc.