AWS or shared hosting for a new app?
Do you take the time to tailor your app and environment for AWS (EC2, S3, etc), or do you prefer a simpler approach such as a shared hosting account with Slicehost/Linode/etc to just get it out there quickly?
I've never used AWS, so I don't know how straightforward or convoluted the initial process is to release a brand new site on it. However, this thread seems to believe that it isn't particularly complex, provided you're thorough and have a decent amount of *nix sysadmin experience: http://news.ycombinator.com/item?id=202056
OTOH, this post seems to suggest that shared hosting is preferable for releasing a "small" site, and that AWS should be considered later on, when your traffic requires it: http://news.ycombinator.com/item?id=258761
What say you?
9 comments
[ 3.0 ms ] story [ 28.9 ms ] threadAWS is a good way to add or expand capacity to an existing "static" server. Last time I looked at the pricing, for a moderate volume site, AWS is more expensive than a comparable semi-shared sort of server arrangement.
With my startup(s) we plan to release on a shared hosting at first (alpha) before moving to a single dedicated server (beta) and then later (assuming it takes off) to EC2 (probably).
I've always maintained: if you plan to at SOME point be utilising AWS then you need to plan that into your app. All the code we write is scalable and modular - so things that wont work on the next step up can be pulled out and replaced with bits that will w/o breaking the overall system (memcached is a good example - we have a fake caching layer on top of our database layer at the moment so that memcached can be added in later :)).
If you're starting out and don't see yourself getting INSANE load requests in your first several months then I would go with slicehost, as it is much simpler to get started with.
Rightscale has good interface for AWS to get you started.
I would say AWS has a mildly steeper learning curve (various AWS command line utilities to install, etc.), but nothing I found difficult.
A really nice thing about AWS is that you can pick and choose which AWS services you want to use. For example, suppose you were doing a backup app where wanted to securely store terabytes of customer data, but the server requirements were really light. You could start off with a $20/month Linode server and store the data in Amazon S3. Then later you could move to EC2 at $70 per small server per month if you needed it.
Or, on the other hand, if you knew that you were going to need lots of servers sooner or later, and you have enough money that the price differential doesn't make a difference to you, you might start off with AWS to avoid needing to do a switchover later.
I'm working on an app of my own now, and I'll be hosting it on Linode to start off with. Then, if it becomes popular, I'll be able to measure what my server requirements are, and I'll be able to easily move it to EC2 if I decide to. (Though my app though isn't doing anything cpu intensive server side, so I wouldn't be surprised if I can run if off of a single Linode server for a long time).