But who does AWS make the most money from? Those with cloud-native solutions, running almost entirely on lambda and dynamodb? Or those who have lift-and-shift-ed legacy solutions, running almost entirely on reserved EC2 and RDS instances? AWS has been saying for yonks that they'd love for all their customers to be cloud-native and to pay less. But they must be banking on many of their customers (especially the enterprise / government ones) not actually making that switch anytime soon.
EC2 instance costs the same whether I use its RAM or not (these resources are sold as spot instances). I pay for Lambda only when it executes and only exactly for what I used.
While true, it's not the whole story. lambda is also approximately 1000x more expensive than EC2. So if your lambda is only running 0.1% of the time or less (12 seconds per every 3 hours 20 minutes) you break even. If it runs more than that, lambda is more expensive.
This is just price comparison. There are other reasons, convenience, visibility, integration with other services, to choose lambda sometimes and EC2 other times.
It's important to profile and know what your use case is!
Source on the price comparison? Or did you mean that Lambda is 1000x cheaper than EC2 [1][2]? It's obviously load dependent but functions-style code is going to typically be cheaper than even the smallest EC2 instance while handling more load (provided your RAM/CPU usage fits within the envelope it's optimized around).
Disclaimer: I work at Cloudflare on R2 and Workers is even cheaper than Lambda@Edge (provided your workload fits within the compute envelope). Billing is based on CPU time not wall time [3]. Workers Bundled pricing can be more cost effective in some cases if you only need <= 50ms of compute.
Yeah but that's mostly for stuff that's supposed to always be available, like web services. I'll be damned if I'm going to start worrying about leaving my PC on because my OS charges by the second, or leaving certain windows open, or what background tasks are running. No only would it be unmanageable, it be a constant source of tension no one would want in their lives.
The vast majority of AWS revenue comes from fixed-price multi-year reserve contracts. Billing by the second/minute/hour really only happens for hobbyists and small fish.
AWS do not mess around with price tiers and cost breaks for customers who can commit to some resources for a year or more, and I'm sure those will also be their bigger institutional customers. I think you nailed it.