Startup now 100% on AWS (they're using AMQP, PostgreSQL, pgpool-II and Rails)
aws.typepad.com
aws.typepad.com
If you're doing number crunching, where you need 100 machines to get results in an hour, and then you're going to spend 3 days thinking about the result, then EC2 is perfect - the key is that there is not cost difference between using 100 servers for one hour, and 1 server for 100 hours. Slicehost doesn't offer that.
Of course for this to be useful you need a problem that can use 100 machines in parallel, but if that's the problem you have it's perfect for EC2.
With Slicehost, I can get a 2GB server with 80GB of persistent storage and 800GB of bandwidth for $130. With EC2, 800GB of transfer would cost $136 alone, plus $72 for the server, plus around $35 for the disk space and I/O charges. $243 > $130 by a long shot.
I really want to like EC2, but it always seems expensive. Plus, I always feel that elastic IPs are not heartbeat which other Xen providers do work with.
Maybe AWS is better because there's an implicit agreement that there will always be bandwidth or storage as needed when one thinks that's more of a question mark with other providers? Maybe there's an implicit thing that if you need to, on very short notice, fire up 10-15 Extra Large instances, the capacity will be there while others might not have the hardware?
Maybe someone has more experiences with high volume sites on these services?
You can cancel a Slicehost server at any time, but you pay for a day if you only use an hour, and the refund is credited to your account as far as I know -- if you need 100 servers for an hour, even 256 slices, its going to cost you $2000, with $1934 credited to your account afterwards, compared to $10 on EC2. If you have money to splash around (your not really spending $2000 for 100 server hours, but you still need it), you'd proberly be better with Slicehost (or some other VPS host), but if you don't, EC2 is a very good option for scaling on the cheap.
Until you start using serious bandwidth. Then it's extremely expensive.
As you say, if you have a massive spike for an hour or something due to the nature of your service, maybe AWS makes sense rather than paying for the full day, but I think that's an extremely rare usecase.
Also if you're using a language/setup that isn't too efficient, then AWS may be a second best option to switching language/framework etc.
Really don't agree with the last part though...unless your code is really slow, a rewrite is only going to waste your time and focus your attention on the rewrite rather than developing your business. Defiantly improve as you go...most of us are geeks, we'd have a massive grin on our face if we saved a few milliseconds from each request, but you should only do it if it's actually worth it! :)
Doing that sort of optimization helps a lot with scaling later on.
Slicehost (which I am a customer of and have absolutely nothing against) seems cheap if you look at the bundled bandwidth, but they can do that on the basis that most people (e.g. me!) don't use anything like their quota. If you want more on top, their FAQ says that pricing for extra bandwidth starts at $0.30 per GB.
What? The monthly cost of a server is equivalent to a few hours of dev time. That's money better spent on making new things, not premature optimization.
I'm all for easy fixes that speed things up, but you rarely need to switch language/framework to do it. Doubly so because slower languages like Python and Ruby make it easy to plug in bits of fast C. More likely than not, someone has already done that, and you just need to start using a better library.
For example, I could probably run Mibbit on around 50 servers if I just used apache/python/php/ror. And as far as I know that's pretty much what Meebo did. They had the money to throw at hardware. The alternative though is to re-architect and optimize at the early stages.
It's a longer term investment. I've spent a lot of time in my case, but I've saved a lot of scalability headache and cost, later on.
@axod, this statement is completely out to lunch. I don't even know where to start.
There's nothing akin to EBS at slicehost. The closest I've seen out there is the 300MB/s NAS at appnexus.com (which also runs Xen VMs).
It's hard to find anything like S3 (nirvanix is one, but they've had "issues" reported in the past). And sure you can access S3 from outside, but then you're paying the exact bandwidth charges you have at EC2 anyhow. Depends what you app does, S3 is not just for getting files to end users obviously.
If high traffic to the internet is your biggest problem, this $199 deal seems attractive: 4GB RAM, 250GB drive, 10 terabytes bandwidth a month -- http://www.10tb.com
Getting around whatever convenience VMs provide to take advantage of something like that seems worth it in some cases.
"it all depends"...
AWS is cheap and fine for when you don't have much traffic, but I really wouldn't tie myself into that whole ecosystem so early on.
And a problem with linode is that they skimp on the storage. We're paying $150/server at MediaTemple a month right now and to upgrade to anything past $60 right now, they want us to move to their $750 package. Ridiculious. Hard drives are so fucking cheap, there is no reason they shouldn't be giving 100GB+ for every package.
Can anyone point me in the right direction for a LAMP/Rails setup?