share facebook facebook twitter menu hatena pocket slack

2011.07.22 FRI

S3ってなんじゃ?(BitTorrent編)

三浦 悟

WRITTEN BY 三浦 悟

今回は、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)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。