S3 started as a place on the cloud to store and retrieve files. But it's evolved a lot over the years:
- You can directly stream music and videos from it.
- Along with a separate Content Distribution Network (CloudFront), you can have copies geographically replicated to be closer to end-users.
- There's a separate service (Transfer), you can have multiple locations securely upload files to it. Examples are schools, retail outlets, enterprise divisions, news media, etc.
- It has a built-in event system, so whenever a file is uploaded, it can trigger a function to process the content automatically. This makes it handy for applications where users upload content (like videos) that need to be automatically converted, then copied to another S3 'bucket' for streaming or download.
- You can make a 'bucket' (think of it as a directory of files) become a webserver, accessible via HTTP. This makes it dead-easy to build web front-ends using React/Vue, etc. and deploy them there.
- Also handy to host static HTML content, for things like blogs, portfolios, or galleries. A lot of static content generators like Hugo and Jekyll have direct upload to S3 built in.
- If looking to archive or backup, you can designate files to be put into deep freeze on Glacier. This means they are stored, but you will likely not have to access them that often. Storage and access costs are lots cheaper.
- There's a whole audit log/access control backend for regulated industries like finance, law, or healthcare.
- You can set alarms so you are notified when there is a problem, and rules to prevent things like massive file uploads or DDOS downloads.
- You can create what's called a 'pre-signed URL' so someone using it can securely access a file for a limited amount of time. Those without can't access it.
- There's a command line tool, as well as programming toolkits in lots of languages that let your websites and apps directly integrate with it.
- Cost-wise, it's pay-as-you-go with no monthly fee. So you can store a bunch of files up there and the bill at the end of the month is like, $0.23.
- However, there is a fee for 'egress' traffic to the cloud, so if you want to put some content somewhere public and a lot of people access it, it can get expensive.
- A bunch of third-party services have sprung up to offer basic S3-like access with zero egress fees, but they trade that fee for a basic monthly one (Backblaze B2, CloudFlare R2, Wasabi). Generally, they'll cost less, but you lose some of the above features.
- There are tools that mount S3 buckets as local filesystems, so you can add/list/delete files as if they're local.
There's more, but that's the crux of it.