DropboxからBoxにファイルを最速でアップロードする方法

シンジです。ビットレート取ってないので最速は言い過ぎかもしれませんが、何かというと、シンジのMacからFTPでBoxにファイルアップロードしてたら遅すぎたので、AWSの全リージョン&全AZからBoxにPingを打って、最速だったリージョンでDropboxをSyncしてから、Filezilla使ってBoxにAWSを使って並列アップロードしたら最高なのでは、と思ってやってみたという話です。

よくよく調べたらcloudpackはDropboxに20万ファイルあった

box syncは3万ファイルで同期を諦めるので使いません。Dropboxのクライアントはしっかり同期してくれるのでこれは使います。

フォルダ1つずつアップロードするも

1フォルダ4万ファイルくらいのフォルダ、とりあえずFTPで上げて見るも遅い。容量は3.5G程度。FTPの問題だと思うが、失敗したファイル700超え、何度かリトライを繰り返しで6時間もかかってしまった。

ちなみにcloudpackの回線は、100M帯域確保型の専用線なので、実効速度で上り下りで98Mbps出ます。なのでここにボトルネックはまぁ無いと。

そして現れる巨大なフォルダ

1フォルダ11万ファイル53GBを発見。さっきのフォルダで6時間なのに、、、あーもー絶望。やーめたっ。

DropboxとBoxを同期させるサーバーをAWSで立てようと思った

ネットワークの速度はAWSにすれば超速いし、(インスタンスサイズにもよるけど)そもそもBoxは下りはCDNだけど上りはどっかの、たぶんアメリカのサーバーに上げるんだろうと踏んで、box.app.comとftp.box.comにping打ったら返ってきたIPが同じだったので、おーこれは良さそうと。

どこのリージョン、どのAZが一番速いか調べた

Ping打って、速かった順番に並べました。Tokyo意外と速かった。

リージョン AZ Ping応答時間
1 N.California us-west-1/az-a 1.348
2 N.California us-west-1/az-c 2.147
3 Oregon us-west-2/az-a 22.56
4 Oregon us-west-2/az-b 23.497
5 Oregon us-west-2/az-c 23.542
6 N.Virginia us-east-1/az-e 73.42
7 N.Virginia us-east-1/az-d 73.671
8 N.Virginia us-east-1/az-c 73.716
9 N.Virginia us-east-1/az-a 74.117
10 Tokyo ap-northeast-1/az-c 138.079
11 Tokyo ap-northeast-1/az-a 139.108
12 Frankfurt eu-central-1/az-a 151.841
13 Frankfurt eu-central-1/az-b 160.152
14 China cn-north-1/az-a 160.769
15 Ireland eu-west-1/az-b 163.387
16 Ireland eu-west-1/az-c 163.484
17 Singapore ap-southeast-1/az-a 174.097
18 Singapore ap-southeast-1/az-b 174.915
19 SaoPaulo sa-east-1/az-a 182.207
20 Sydney ap-southeast-2/az-b 187.194
21 SaoPaulo sa-east-1/az-c 190.243
22 Ireland eu-west-1/az-a 190.322
23 Sydney ap-southeast-2/az-a 193.705

よーしEC2だ!

というわけでおもむろに「N.Californiaus-west-1/az-a」にm4.xlargeのSSD-1TBでWindowsインスタンス建てます。もしや場合によってはWorkspacesでも良かったかな。。。あれもネットワーク速いんですよね。ディスクI/Oが遅いけど。やっぱり普通にEC2でいいですね。

で、ネットワーク速度計ってみた

んーすばらしい

Boxへのアップロード速度も計ってみた

んんんんーすばらしい(ファイル名typoしてごめんなさい死にます)

アップロードはFilezillaでやるのが最速だった

クライアントはいろいろ試しましたが、Filezillaが最速でした。しかも無料だし最高。わざわざいろいろ買ってみたけど無駄だったなー。

転送料金無視のコスト度外視方法なのでオススメしませんが

ゆーても「10 TB まで/月 $0.09 /GB」です。あとはインスタンスの料金だけですね。m4.xlargeがいいんじゃないかなーと。まぁ数テラあってもそんなにお金もかからないのではと思っています。

というわけで現在もAWSからDropbox→Boxへ転送中

もっと速く上げられる方法あれば是非共有してください〜

※Boxさんから情報頂いたので追記:BOXは、上りはアクセラレーターっていう仕組みを使っていて、下りはファイルに関しては直接BOXサーバーに取りにいってるらしいです。