docker
P2P
googlecomputeengine
gcp
Torrent

40秒で無料無制限のオンラインTorrentクライアントをつくる

STOP!違法ダウンロード

通常、TorrentをダウンロードするにはBitTorrentやuTorrent,Transmissionといったクライアントソフトという専用のソフトウェアをダウンロード・インストールしてパソコンに設定する必要があります。

しかし、共用パソコンや職場のパソコンなどの場合、そうったソフトをインストールすることができません。

また、パソコンにTorrentソフトをインストールすると、途中で電源が切れなかったり、ネットワークの帯域が不安定になったりすることもあるでしょう。

クライアントソフトをインストールしないで、Torrentをダウンロードする方法について解説します。

今回は、Cloud Torrentというクラウド上でTorrentをダウンロードできるソフトを使います。

クラウドはGoogle Compute Engine(GCE)を使うことにします。


Google Compute Engineを使うメリット



  • 無料でVMを24時間365日動かせる。

  • 上り(インバウンド)のトラッフィックはすべて無料

  • 下り(アウトバウンド)のトラッフィックは通常1GBまで無料(ただし、Google Drive(Googleサービス)への下りはすべて無料)

  • 実質GoogleDriveを経由してダウンロードすれば、完全に無料になります。

  • 30GBの永続ディスクが無料

  • 5GBのスナップショット(バックアップ)が無料

  • 固定IPアドレスも無料

詳細は、 Google Compute Engine の料金 をご確認ください。

では、実際に作っていきます。


VMインスタンスを作成(5秒)

VMインスタンスから作成をクリック

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50.png

以下のような画面が出てくるかと思います。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (1).png


名前を設定(3秒)

わかりやすい名前を設定します。デフォルトでもかまいません。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (2).png


リージョンを選択(3秒)

us-*であればすべて無料なのですが、今回は日本に一番近いus-west1(オレゴン)を選びました。us-west2(ロサンゼルス)はバグで無料にならないみたいです。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (3).png


マシンタイプの選択(3秒)

f1-microというマシンタイプが無料です。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (4).png


イメージの選択(3秒)

ブートディスクの変更ボタンをクリックして、Container-Optimized OSを選択してください。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (5).png


ディスクのサイズの変更(5秒)

30GBまで無料なので、サイズを30にしてください。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (6).png

選択ボタンをクリック。


HTTPトラフィックを許可(3秒)

HTTPトラフィックを許可するにチェックを入れてください。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (8).png

管理、セキュリティ、ディスク、ネットワーク、単一テナンシー をクリック。


管理タブの自動化に起動スクリプトを入力(5秒)

管理タブの自動化に以下の起動スクリプトを入力してください。

#!/bin/sh

iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT

if [ "$(docker container ls -a -q -f name=cloud-torrent)" ]; then
docker start cloud-torrent
else
user=$(curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys" -H "Metadata-Flavor: Google" | cut -d: -f1 | tail -n1)
while [[ ! -d "/home/$user" ]] ; do
sleep 1
done
mkdir -p "/home/$user/downloads"
cd "/home/$user"
uid=$(id -u "$user")
gid=$(id -g "$user")
chown $uid:$gid downloads
docker run --name cloud-torrent -d -p 80:3000 -u $uid:$gid -v "$PWD/downloads:/downloads" jpillora/cloud-torrent
fi

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (9).png


固定IPアドレスを設定(10秒)

固定IPアドレスは設定しなくても使えますので、飛ばしても大丈夫です。

ネットワークタブのネットワークインターフェイスのdefaultをクリック。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (10).png

外部IPのエフェメラルをクリック。

console.cloud.google.com_compute_instances_project=mailfactory2&instancessize=50 (11).png

IPアドレス作成をクリック。

Screenshot from 2019-03-14 10-01-52.png

名前を入力して予約。

console.cloud.google.com_compute_instancesAdd_project=mailfactory2.png

完了をクリック。

console.cloud.google.com_compute_instancesAdd_project=mailfactory2 (1).png


作成🎉

おめでとうございます🎉 これで無料無制限のオンラインTorrentクライアントが完成しました。40秒でできましたでしょうか?

console.cloud.google.com_compute_instancesAdd_project=mailfactory2 (2).png


使ってみる

外部IPのリンクをクリックすると、Cloud Torrentの画面がでてきます。モバイルフレンドリーなのでスマホで見ても大丈夫。

console.cloud.google.com_compute_instancesAdd_project=mailfactory2 (3).png

35.230.61.159_.png


Cloud Torrent デモ

Cloud Torrent


まとめ

これで外出中でもスマホから操作できたりします。ダウンロードしたファイルは、SSH接続してホームディレクトリ直下の~/downloadsにすべて入っております。Google Driveをマウントして自動でGoogleDriveにアップしてもいいかと思います。(Googleのサービスへの下りはすべて無料)また、CloudTorrentでもGoogleDriveやDropboxやS3などに転送する予定があるようです。何かのお役にたてば幸いです。