I promised you AWS S3, and you're gonna get it. But first, let's understand why S3 being "serverless" is kind of a big deal.
In a "simple" web application architecture, your server is likely a single machine running in the cloud. That single machine probably runs:
An HTTP server that handles the incoming requests
A database running in the background that the HTTP server talks to
A file system the server uses to directly read and write larger files
All on one machine.
What's Wrong With This?
Well, not much. Honestly this is a perfectly valid way to build a web application, even in production. That said, there are some trade-offs:
Scaling: If your app gets popular, you'll need to "scale" your single machine (add more resources like CPU/RAM/Disk space). A single computer can only become so powerful.
Availability: If your server goes down, your app goes down. To be fair, you can mitigate this with load balancers and multiple servers.
Durability: If your server crashes, or an intern rm -rf's something, you're in trouble. You might have backups, but let's be honest, you probably don't.
Cost: Running a server 24/7 means paying 24/7. It can be nice to only pay for what you use.
Maintenance: You have to manage everything yourself. You'll be responsible for "ops" tasks like backups, monitoring, logging, version upgrades, etc.
But let's be honest, your new GPT-wrapped crypto app probably won't have any of these scaling challenges...