今回は、S3のおもしろい機能を利用してみたいと思います。
S3はデフォルトとしてHTTPプロトコルでファイルのサーブを行っていますが、
BitTorrentプロトコルもサポートしています。
通常では、BitTorrentはトレントファイル(*.torrentという拡張子で、トラッカーサーバーの情報だけを
保持しているごく軽量のファイル)をトレントファイル配布サイト(インデックスサイト)からダウンロードし、
そのファイルを元にBitTorrentクライアントソフトを利用して本体ファイルを持っているピア(シーダー)と
P2P接続を行います。
今回は、S3をBitTorrentのインデックスサイト兼シーダーとして利用してみたいと思います。
まず、S3のコンソール画面で「Upload」ボタンをクリックし、
配布したい本体ファイルをS3にアップロードします。
アップロードしたファイルで右クリックのメニューから「Properties」を選択し、
「Permission」タブで「Everyone」の「Open/Download」を有効にし、ファイルを一般に公開します。
ここまでは、通常のS3の公開と同様の手順になり、
以上でサーバー側の準備は完了です。
実は、これだけでBitTorrentの特別な設定等は特に必要ありません。
それでは、クライアント側でダウンロードしてみます。
今回はMacのTransmissionを利用してみます。
まず、右クリックメニューから「Open Torrent Address …」を選択し、アドレスを入力します。
ここには、トレントファイルのURLを入力するのですが、S3のURLの後ろに?torrentを追加したものを
入力するだけです。
例えば、S3のURLが
http://s3-ap-northeast-1.amazonaws.com/mount-test/Stardust.m4v
の場合、
http://s3-ap-northeast-1.amazonaws.com/mount-test/Stardust.m4v?torrent
とするだけで、S3からトレントファイルを取得することできます。
実際にブラウザで上記URLにアクセスすると
ファイル名.torrent
というトレントファイルがダウンロードできるはずです。
トレントファイルのURLを直接入力できないクライアントソフトは、ブラウザでトレントファイルを
ダウンロードしてから、torrentクライアントソフトでそのファイルを開いて利用してください。
すると、構成ファイルも正常に表示され、ダウンロードを開始すると
下記のように正常にダウンロードが行われていることがわかります。
ダウンロードしたファイル(今回はm4vファイル)も正常に再生することができました。
このように、S3には最初のシーダーとなるだけではなく、自動的にトレントファイルを生成してくれるので、
S3側ではなにもしなくてもBitTorrentのインデックスサイトになることが確認できます。
一次ファイルの配布としては、HTTPダウンロードと大差はないかと思いますが、
S3からBitTorrent形式で配布する利点はいくつかあります。
例えば、最終的に不特定多数のユーザーにファイルを配布したいが、通信速度はそこまで速くなくてもよい場合や、
S3の帯域や利用料金を節約したい場合などです。
しばらくの間、S3でファイルをpublic-readにて公開し、?torrentでトレントファイルを予めダウンロードしたものを
ホストサーバーに置き、それをトレントファイルとして公開しておきます。
そして、S3の高速な帯域でスムーズに一次配布をしてから、十分にスウォーム(同じトレントファイルで
ファイル共有ができたクライアントのグループ)が成長した段階でS3の公開を閉じることで、
それ以降はS3の帯域を全く使わずにクライアント間のP2Pアクセスだけでファイルの配布を行うことができます。
以上のことから、コンテンツやサイトの内容によっては選択肢として考慮するだけの価値があるかもしれません。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら