AWS isn't really a solution for people trying to run a "small" project on a fixed amount of servers 24/7.
It's great if you want to be able to:
- provision lots of machines without delays
- launch and terminate new instances to cover load spikes
- do geo-redundant failover (aka: a datacenter in Europe, Australia, the US, ...)
- have 'plug and play' components like load balancers (ELB), storage (S3), databases (RDS), queueing services, ...
- ...
Amazon provides a lot of things that cheaper solutions will have a hard time achieving (e.g. the backup space redundancy that OVH provides will probably be quite a bit less 'secure' than S3/Glacier).
That being said, these premium features are something that a project might simply not need. We run some of our jenkins build slaves on OVH. We don't need to launch new ones all that often and the bang for the buck makes them very much worth considering.
I'm running a small project on a fixed server 24/7 and AWS makes sense for me. Why? I'm a one man team supporting a research project. I have no ability to self host. I have no time to look around at a lot of options and trying to figure out all the details of every offering. I need a server that has good uptime and good performance. Most of all, telling my users that we're hosted on Amazon makes them feels secure - it isn't going anywhere. Believe me, for a certain class of users, this is important.
A dedicated host would most certainly be a better (and cheaper) option for you, but hey, if you don't have time to look around, I suppose it's a reasonable trade-off.
>I need a server that has good uptime and good performance.
Then a single EC2 instance is not a good option for you. Terrible up-time, and terrible performance.
Can you supply more details - maybe I am missing something. My EC2 instance has been up for 249 days now and my node.js webserver instance seems very responsive. I still think it's a reasonable trade-off in terms of cost. My time is expensive, and to be honest even a few hundred dollars a month extra in server cost is not important. This is a research project, not a commercial website, so my needs may be different than most.
I may not be hitting the points that macspoofing was trying to make, but at least in my experience, you can get much better value with a different host (like DigitalOcean or Linode) where the setup time is minimal and the performance benefits are substantial. However, if your priority isn't perfomance/dollar, then the trade-offs are subtle and insubstantial and EC2 is fine.
We did a test of an EC2 data centre setup vs. our existing physical data centre setup and the largest issue - that is, if you ignore the 3x cost - is the network latency and general quality of the local network in the availability zones.
No amount of optimization could eliminate the 100-150ms penalty imposed by the EC2 network vs. our dedicated hardware. The local network was congested and "noisy" in the sense that ping times were highly variable and had high packet loss, and the number of hops to the internet at large were high, and the baseline latency to the world was also high.
As for instance lifespan, we had numerous instances just "disappear" and then needed to be recreated. We were running a hundred or so for our test so YMMV.
We run some Virtualbox builds on them which AWS doesn't support.
Our build slaves are pretty busy (I'd say jobs running 16+ hours a day). There isn't really that much possible cost saving towards an OVH server :)
Also: HDD performance on "basic" Amazon is slow and RAM is expensive :(
For larger companies that usually don't rely on VPS providers and the like, AWS can still be a compelling offering for new ventures, as you don't have to commit resources (capital) to in-house infrastructure for a project that might not work out (as it's opex, not capex, just shut it down if it fails).
It's great if you want to be able to:
- provision lots of machines without delays
- launch and terminate new instances to cover load spikes
- do geo-redundant failover (aka: a datacenter in Europe, Australia, the US, ...)
- have 'plug and play' components like load balancers (ELB), storage (S3), databases (RDS), queueing services, ...
- ...
Amazon provides a lot of things that cheaper solutions will have a hard time achieving (e.g. the backup space redundancy that OVH provides will probably be quite a bit less 'secure' than S3/Glacier).
That being said, these premium features are something that a project might simply not need. We run some of our jenkins build slaves on OVH. We don't need to launch new ones all that often and the bang for the buck makes them very much worth considering.