It’s not the data it’s the compute. In the 60s, you couldn’t just bring in an IBM mainframe when you needed it and not pay for it when you didn’t based on the server load.
With regular Aurora, whether you are using it or not, you’re always paying for both the server and the storage and you have to provision the server for peak workload. With Aurora Serverless, if you don’t connect to the database, you only pay for storage.
With lambda and to a lesser extent Fargate, you don’t pay for the underlying server at all until you actually need to run something and then with lambda you can scale up to as many instances as your account allows (a soft limit you can ask for more anytime) and pay nothing when you don’t.
With EC2 you have a server sitting there listening for events whether or not anything is sending you an event.