Rates are absolutely negotiable.
And prospective users can look at the published prices, and see that historically they've gone down more than they've gone up (although obviously that trend could reverse).
So people think they're safe from the risk of Amazon quadrupling their bill over night.
Of course, vendor lock-in can have other negative effects, but apparently people aren't worried about them, or at least think AWS is no worse than the alternatives.
[1]: https://news.ycombinator.com/item?id=12392081
[2]: https://minio.io/
[1]: https://hasura.io
It's such a poor argument. I was a developer long before AWS appeared and I've used so many open sources packages that were profoundly reliable. In many cases it just takes a daemon restart. And while it's not exciting to set up some of that stuff, it's far more tolerable than writing a CloudFormation template.
I don't understand the preference for AWS over open source in many cases. Their services are "reliable", but they often have minute restrictions that will eventually bite you. You also end up having to pay for something you could get for free. Why use SNS/SQS when there are free pubsub/message buses out there? Most of the other devs justify this with the argument of not having to maintain the software themselves. "But RabbitMQ might crash! We don't have to worry about that with AWS!"
Anyway, I typically minimize the AWS services I use (S3, EC2, ECS) so I don't dread the day AWS blows up or, more likely, some VP or exec says we're moving to GCP/Azure because we got a better deal.
Free is never really free. There's always a tradeoff in engineering time and money when you choose to run your own stack instead of paying to use a stable, well-established service. Oftentimes running your own will be cheaper overall, but you have to do that cost-benefit comparison for yourself.
I can confirm that not only can RabbitMQ get into an unusable state, it will do so extremely rapidly and with little warning unless you sit an engineer or two on it to monitor and manage the incoming/dead letter rates.
- S3 has a public protocol and many 3rd party providers support it (OpenIO, Scality, Ceph, Minio, etc),
- EFS could be replaced with something like DRDB or GlusterFS, or DigitalOcean's block storage or Google Cloud's networked disks.
- ELB could be replaced easily with similar services from other providers [1] if you use Kubernetes (I don't know if all have a LoadBalancer type though)
I would be more concerned about firewall/vpc rules, because I have no idea how those could be migrated without risk of forgetting some. Lock-in seems not that high in the end though and even less so if you use an open source container orchestration stack because they abstract most of these things away.
[1] https://kubernetes.io/docs/tasks/access-application-cluster/...
Heap has a great blog post on Terraform : https://heap.engineering/terraform-gotchas/
[1]: https://docs.hasura.io/0.14/ref/project-configuration-and-st...
P2P networks, each computer being a "data store" on the internet, no one entity can control data, etc to modern day centralized cloud where a couple of players control so much.
There has been a cultural shift. In the early 2000s, the idea of storing your data somewhere else would have been weird. But now, people don't care about keeping their data on apple/google/etcs data centers.
I think it has to do with the fact that computer/internet illiterate people are now the majority whereas in the 90s/early 2000s, it was generally the computer literate on the internet.
I think the reasoning was cloud accounts are easier for the masses than mapping a drive and accessing over VPN