It's not just scaling - a lot of the value comes from how you can change your practices to be more reliable: e.g. instead of having the classic model where you get servers setup and run them for years, now every application no matter the scale or how mature uses APIs to interact with your infrastructure, has automated blue-green deployments, every developer (or your CI process) can spin up instances to test in a production-like environment, you have things like RDS/ELB/S3/etc. as turn-key services which anyone can take for granted when designing their application, everything can be secured with limited scope API keys / policies, etc. When you suddenly get a spike in demand (annual reporting, unanticipated new work, one-time migration / reprocessing, etc.) you can have everything you need instantly without a large procurement lead-time or having to either repurpose existing infrastructure or find a use for new hardware for the rest of its service lifetime.
Absolutely all of that _could_ be done in a traditional IT environment but it's rare to see it done at the level of usability that AWS (or Azure, Google, etc.) offers and that leads to cost both in staff time, technical debt, and time-to-recover after failures. You definitely can beat AWS on pricing but it requires both sufficient scale and ongoing commitment to spend staff time developing and supporting infrastructure, which is usually an area where organizations choose to skimp.
Absolutely all of that _could_ be done in a traditional IT environment but it's rare to see it done at the level of usability that AWS (or Azure, Google, etc.) offers and that leads to cost both in staff time, technical debt, and time-to-recover after failures. You definitely can beat AWS on pricing but it requires both sufficient scale and ongoing commitment to spend staff time developing and supporting infrastructure, which is usually an area where organizations choose to skimp.