Them having margins in no way means it's a waste of money. That's not how things work. It would cost just companies so much more money for the devops team needed to achieve parity with the services they provide.
Do you look at a car manufacturer, see that they're making a profit, and assume "I could clearly build a comparable car for less money?"
Them having gigantic margins (e.g. 4x or more on network egress) can mean that any one use case might be better satisfied with something slightly more custom, especially if we stop pretending that administering an AWS account is free and that the overlap between what we need and what AWS offers is perfect.
On both sides of this, the thing to do is to critically examine your needs and decide if one or another solution fits. AWS can be a game changer for some companies and an immensely complicated money sink that never gets good enough performance for others.
So much money is wasted with AWS. (Look at at their margins.)
It's useful in development/testing. It's irresponsible to use managed services that don't have an easy migration path to something open.