Amazon Simple Storage Service, also known as Amazon S3 is an online storage facility. It is cheap, fast and easy to setup. And since it’s a service provided by e-commerce giant Amazon, you can be rest-assured whatever you stored at S3 is secured. Please read more on this subject here,
"The Beginner’s Guide"

Although, Amazon S3 provides unlimited web space, but in the past if you wanted to store large files, you
had a 5 Gigabyte limit. After all for small files, one might as well just use our own web servers so if we have - scientific or medical data, high resolution video content, Large backup files, and so forth. Until now, they have had to store and reference the files as separate chunks of 5 gigabytes (GB) or less. So, when a customer wanted to access a large file or share it with others, they would either have to use several URIs in Amazon S3 or stitch the file back together using an intermediate server or within an application.
Amazon recently decided to raise this limit by 3 orders of magnitude. Individual Amazon S3 objects can now range in size from 1 byte all the way to 5 terabytes (TB). Therefore, storing extremely large files as single objects, which greatly simplify their storage experience. Amazon S3 does the bookkeeping behind the scenes so now we can now GET that large object just like you would any other Amazon S3 object.
This has made me think about producing some DNN solutions based on Amazon S3 as well as Amazon Elastic Compute Cloud EC2. With Simple Storage Service, because bandwidth price is very good on S3. So if you have large files that you want to publish, then this is the place to put it with low bandwidth charges as well as no strain on throttling your portal running on a shared server.
So this is good news and when you combine it with the previous announcement that S3 now allows us in order to make it faster and easier to upload larger (> 100 MB) objects, they introduced a new multipart upload feature.
We can therefore, now break your larger objects into chunks and upload a number of chunks in parallel. If the upload of a chunk fails, you can simply restart it. You'll be able to improve your overall upload speed by taking advantage of parallelism. In situations where an application is receiving (or generating) a stream of data of indeterminate length, one can initiate the upload before one has all of the data.
This process is explained better in this
Blog.