Using BitTorrent™ with S3

BitTorrent™ is an open, peer-to-peer protocol for distributing files, invented by Bram Cohen. You can use the BitTorrent protocol to retrieve any publicly-accessible object in S3. This section describes why you might want to use BitTorrent to distribute your data out of S3 and how to do so.

Why BitTorrent?

S3 supports the BitTorrent protocol so that developers can save costs when distributing content at high scale. S3 is useful for simple, reliable storage of any data. The default distribution mechanism for S3 data is via client/server download. In client/server distribution, the entire object is transferred point-to-point from S3 to every authorized user who requests that object. While client/server delivery is appropriate for a wide variety of use cases, it is not optimal for everybody. Specifically, the costs of client/server distribution increase linearly as the number of downloaders increases. This can make it expensive to distribute popular objects. BitTorrent addresses this problem by recruiting the very clients that are downloading the object as distributors themselves: Each client downloads some pieces of the object from S3 and some from other clients, while simultaneously uploading pieces of the same object to other interested "peers." The benefit for publishers is that for large, popular files the amount of data actually supplied by S3 can be substantially lower than what it would have been serving the same clients via client/server download. Less data transferred means lower costs for the publisher of the object.