This applies to the most of companies at small and medium scale. If you are at huge scale it might not apply to you.
I just finished booting up two new clusters with 5 and 15 nodes, respectively and cycled them a couple of times after making changes to the AMI. The clusters are in ASGs and will scale based on resource usage. I can't do that with bare metal.
a) A large portion of AWS hosted stuff probably doesnt need that level of sudden, burst scaling
b) With something like SoftLayer/IBM you can scale physical servers, usually within 30 - 60 minutes
c) If your burst scaling requirement are temporary, if you are located in a decent DC, you can probably spin up some infra in AWS and access your physical stuff over a private network connection and get the best of both worlds.
As always, use what's best for your environment.
The biggest selling point of AWS is everything around it. You don't just get EC2, you get Route53, ELB, VPC, RDS, S3, CloudFront (although it's kinda expensive), ECS, etc... If I can pay AWS to do something instead of building it, I'll do it.
Even if you always have to scale up for 1-2 hours per day, using dedicated hardware that's idle the rest of the day is probably cheaper in most cases.
But in the end, the pros significantly outweigh the cons. Our resource consumption is naturally extremely elastic. While we'll always need to slightly over-provision to maintain some headroom, adding/removing nodes throughout the variance saves quite a bit of $.
1. You can get started for dirt-cheap or in some cases, free
2. There's a common API for requesting new instances and performing maintenance tasks
3. There are extra services available to help build your apps such as SES, S3, and RDS to name but a few I found very helpful.
I'm not saying anything in this thread is wrong. But in software engineering, we say "write the code that only you can write", which is a suggestion (but not a rule) to use pre-built libraries instead of trying to make your own. Perhaps we should also say, "run the instances that only you can run".
I can't wait until the day that we mature as an industry enough to consider running any kind of baseline workload on EC2 negligent.
In the HN echo chamber, you might think everyone just has a SPA and just needs a Digital Ocean droplet. Everyone has different requirements and AWS fits those for many people.
You can rent them too, like here : https://www.hetzner.de/us/hosting/ (not affiliated, would like to know of other decent hosts too) - I think this is the best of both worlds (don't need to deal with HW, getting bare mettal perf and reasonable prices)
FWIW we're in the middle of going 100 % AWS after having used a dual setup with Hetzner for base load and AWS for dynamic load. Using spot instances for base load and autoscaling groups for dynamic load proved to be competitive in machine cost with Hetzner.
Plus there's a lot less management overhead with AWS on our scale (50+ machines). And the security of VPC and IAM cannot be replicated on Hetzner. Plus as always, it's the integration of all AWS services that's hard to beat. And we really need to be multi-region anyways (5 regions and counting).
This will be a deal breaker in the future.
Amazon is being disrupted with the same tech it used for disrupting the other players.
Downside: Some documentation (stackdriver for ex) can be really confusing. Also for opening up port 80 firewall rule wasn't enough, you had to apply the http label (Haven't tested this recently)
I've also had a much easier time getting started, but my AWS experience may be out of date now. But both the web UI as well as the cli client are excellent.
I also prefer google because of their excellent contributions to OSS, their advocacy for an open internet, their lack of sweatshop-warehouses, and their investments in hard problems. (and I know altruism may not be the motive, but still...)
their lack of sweatshop-warehouses
You are now hitting below the belt.And, more seriously, I didn't want to imply that Amazon deserves any hate – they're probably a net positive for the world. And Google is no saint. Just that, on balance, I'm still more inclined to be loyal to the latter.
Overall it's much easier to predict than AWS. There are some aspects where documentation could be better. And obviously no managed Postgresql.
They're not even playing in the same league.
Google instances are 50% cheaper in average, your mileage may vary => http://imgur.com/g6Tz7K7
The regions listed were just examples. Check back Dec 1.