S3 stands for Simple Storage Service.
S3 is storage supplied by Amazon (yup, the same company that sell you books and just about everything else!). It can be used for storing pretty much anything.
It is very common for web developers to make their application use S3 for storing files uploaded by the users of the application.
S3 storage is divided up by buckets. Buckets are just like folders that you can specify permissions on. It is quite common for a project to have different buckets for each environment their website is built on (the development version of the application, the staging version and the production version).
Having assets and file uploads on a different server from your code can be very good for the user. You can make S3 work with Amazon’s CDN, this means that the files will be on lots of different servers, some of which will hopefully be close to your user meaning they will download faster.
We normally use code built by Amazon to interact with S3 in our web sites, you can also connect to it using applications you can run on your computer.