ローカルのストレージはキャッシュとして機能

“すべてクラウド”も間近!? 「ZumoDrive」を使ってみた

オンラインストレージサービスは古くからあるが、汎用クラウドサービスの登場で、その使い勝手が急速に進化している。2009年1月に入ってプライベートベータテストを始めた「ZumoDrive」は、エンドユーザー向けのサービスとしては、現時点で最も先進的な利便性とリーズナブルな価格を実現したサービスの1つだ。ZumoDriveはAmazon S3をバックエンドに使い、ローカルPCのOSに透過的にマウントできる仮想ドライブを提供する。ファイルはクリックして初めてストリーム配信されるため、ローカルストレージは、もはや主従関係でいえば従の“キャッシュ”として機能する。

ZumoDriveを使ってみたい読者は、同サービスのWebサイトで招待コード“itmedia”を入力してみてほしい。現在ZumoDriveはプライベートベータテスト中だが、＠IT読者に対して先着で500アカウントまで発行してくれることになっている。ただし、iPhone用クライアントは現在まだ一部ユーザーしか利用できない。

Amazon S3上に登場したストレージサービス群

写真共有サイトのSmugMugは数百TBの写真データをAmazon S3に保存しているという

ストレージサービスの進化が速まったのは、「Amazon S3」が広く利用されるようになってからだ。Amazon S3（Simple Storage Service）は、米アマゾン子会社のAmazon Web Servicesが提供するクラウド型ストレージサービスで、すでにインターネットベンチャーを中心に利用が始まっている。例えばマイクロブログサービスのTwitterが、ユーザーのアイコン画像の保存・読み出しストレージにAmazon S3を使っているのは良く知られた話だし、写真共有サイトのようなところでも利用例がある（参考記事：クラウド型ストレージ「Amazon S3」は安いか？）

Amazon S3はAPI経由での利用が基本となるので、素のままでユーザーが使えるサービスではない。Webアプリケーションで画像やテキストファイルの読み書きをするストレージとしてであれば、Amazon S3の利用は難しくないだろうが、何らかのツール・開発は必要だ。Amazon S3を個人ユーザーが利用契約しても、そのままでは使い道がない。

ところが、Amazon S3上にローカルアプリケーションやツール、Webサービスのレイヤをかぶせ、使いやすいストレージサービスに仕立てるベンチャー企業が続々と登場している。

Dropboxを超えるZumoDriveの手軽さ

Amazon S3をバックエンドのストレージとして利用し、個人ユーザーに対して優れた利便性を提供していたのは、これまでのところ「Dropbox」だったと思う（参考記事：HDD以上に便利なオンラインストレージ“Dropbox”）。DropboxはWindows、Mac OS X、Linuxの専用クライアントをインストールすることで、ローカルのファイルシステムに完全に統合された形でオンラインストレージが利用できるサービスだ。

Windowsであれば「マイドキュメント」の中に「My Dropbox」というフォルダができ、そこに入れたファイルはDropboxが提供するインターフェイスを介してAmazon S3に保存される仕組みになっている。DropboxクライアントをインストールしたPCからは、すべて同じフォルダやファイルが見え、どこかで更新したファイルは、若干のタイムラグを置いて、ほかのPC上でもすぐに反映される。

Dropboxでは差分データの蓄積を管理しているため、単にバックアップとして機能するばかりでなく、1日前とか1カ月前といった古いバージョンのファイルを取り出すことができるなど、すでにハードディスク以上の使い勝手を実現している。Amazon S3は2つ以上のデータセンターにまたがって冗長度のあるデータ保存を行っているため、いつ壊れてもおかしくない自分のハードディスクより、はるかに安心感がある。

非常に便利なDropboxだが、1年以上使っていて私はいくつか問題を感じている。後発のZumoDriveは、そのうちいくつかを解決してくれている（ちなみに、DropboxもZumoDriveも、ともにベンチャーキャピタルのYコンビネータが出資しているスタートアップ企業だ）。

容量の小さなSSDに仮想的にドライブを“増設”

Dropboxは、専用クライアントをインストールしたPCのすべてで、全データが同期される。例えばクラウド上に20GBのデータを置くと、それと同期するPC上のすべてで20GBのフォルダが現れる。従って、新たなPCを購入してDropboxクライアントを入れたときには、20GBのデータのダウンロードが始まることになる。これは時間がかかるというだけでなく、「利用するPCの台数×20GB」というストレージの無駄遣いだとも言える。

搭載ストレージが4GBのSSDだけ、というようなネットブックであれば、そもそも同期のしようがないという問題も出てくるだろう。

これに対してZumoDriveでは、クラウド上にストレージを作ってバージョン管理などを行うのは同じだが、さらに発想を変えて、もはやローカルディスクをキャッシュとしてしか扱わない。

ZumoDriveクライアントをインストールすると、タスクトレイにクライアントが常駐する

ZumoDriveクライアントをインストールすると、タスクトレイにクライアントが常駐する。Webサイトで作成したIDとパスワードを入力すると、申し込んだサービスの容量のドライブがローカルのドライブとしてマウントされる（私のWindows XP環境では東芝製のハードディスクとして認識され、すでにあるネットワークドライブのZドライブを避けて、Yドライブとしてマウントされた）。ただ、マウントしただけでは同期は始まらない。もちろんファイルのアップロード方向に関してはネットワーク接続が有効である限り、基本的に即座に反映が始まるのだが、ほかのPCからアップロードしたファイルに関しては、アイコンが見えているだけで、すぐにダウンロードが始まるわけではない。

インストーラのウィザードはアカウントとパスワードを入力するだけ

ドライブとしてマウントされたZumoDrive

東芝製の80GBのハードディスクの型番で認識されている。実際には今回は20GB分を試用した

音楽ライブラリをクラウドに置いてiPhoneで聴く

ZumoDrive上に、どんなファイルがあるかはすべて見えるが、それらの一部は（もしくは全部が）ローカルのストレージにはダウンロードされていない。ファイルの中身は、編集や閲覧のためにファイルを開いたときに初めてZumoDriveのサーバからストリーム配信されてくる。

これは言い換えれば、4GBのSSDしかないネットブックでも20GBとか50GBのドライブを仮想的に増設できる、ということだ。ZumoDriveはiPhone用の専用アプリケーションも用意しているため、もう8GBとか16GBといった枠にとらわれずに、20GBとか30GBあるような音楽ライブラリでも文字通り持ち出すことができるわけだ。ZumoDriveはiTunesをサポートしており、クラウド上のオーディオデータをローカルのiTunesにインポートする機能がある。

今後はiPhoneだけでなく、Android、それに続いてWindows Mobileのサポートも検討しているという。

さて、ファイルにアクセスしたタイミングでダウンロードするといっても、ZumoDrive上のファイルは毎回ダウンロードされるわけではなく、ローカルのHDDやSSDにもキャッシュされる。ファイルを指定して、右クリックメニューから明示的にダウンロード（キャッシュ）することも可能だ。

iTunesがインストールされたPCであれば「Import to iTunes」で、ZumoDrive上の楽曲ファイルなどを取り込める

右クリックで明示的にファイルをダウンロードしたり、共有設定を行うなどができる

キャッシュに割り当てるローカルストレージの容量は、ユーザーが任意に設定できる。もし、そのローカルストレージの容量をZumoDriveより大きく割り当てれば、すべてのデータのキャッシュが（最終的に）ローカルにも保存されることになり、ほぼすべてのデータについて高速なアクセスが可能だ。逆にローカルストレージの割り当て容量がZumoDriveの容量より少ない場合には、ユーザーが指定したファイル、あるいは頻繁にアクセスするファイルについてのみキャッシュが行われる。メディア関連ファイルであれば、ストリーミングによりタイムラグなく視聴を始められるし、頻繁にアクセスするファイルのデータ総量は、それほど多いとも考えられない。今回はそこまで使い込めなかったが、もしかすると、ローカルストレージは数GB割り当てる程度でも十分に実用的な速度と使い勝手となるかもしれない。

詳しいアルゴリズムは非公開だが、ZumoDriveクライアントは、優先して同期（アップロード）すべきファイルを機械判定もしているという。

上り・下りで転送速度も設定できる

アップロード・ダウンロードの様子は監視・制御できる

差分データと全体データのアップロード

余談だが、アップロードするデータの扱いに関して、実装上、興味深いテーマが潜んでいる。たいていのバージョン管理ソフトと同様に、DropboxやZumoDriveは基本的に各ファイルについて、異なるバージョン間の差分データを蓄積、保存する。このためDropboxでは1GBの動画ファイルを編集しても、その変更がバイナリデータ上の一部の変更に過ぎなければ、アップロードするバイナリチャンクは小さなもので済む。ファイル全体を転送する必要がないわけだ。

しかし一方、こうしたアプローチでは差分データを作ったり、それをオリジナルデータに適用したりというオーバーヘッドが発生する。このため、ZumoDriveでは容量の小さなファイルについては差分データを即座にサーバに送るが、容量が一定以上のものについてはファイル全体を送るようにしているという。手元で試したところ、250KBほどの画像ファイルに数十ピクセル程度の変更を加えると、毎回全ファイルが転送された。これはDropboxに比べて無駄なトラフィックのように思えるが、差分を適用するサーバの負荷を考慮して、こういう設計にしたという。また、この閾値はサーバ側の設定で変えられるという。

この辺り、アップロードのタイミングや、差分か全体かなど、さじ加減によって使い勝手は変わってくるだろう。ユーザーの接続環境によってもパラメータを変えるなど工夫が必要かもしれない。何がベストかは誰も分からないが、後発のZumoDriveは、Dropboxと異なるアプローチを取っていて興味深い。

ストリーミングで即座に視聴

ZumoDriveの実際の使用感は、今のところ上々だ。大きめのファイルだとやや開くのが遅いという程度で、それ以外は通常のローカルストレージと同じ使い勝手で、特にドキュメントや写真程度ではストレスを感じない。もちろん直接アプリケーションでZumoDrive上のファイルを編集することもできる（ベータ版の2009年1月23日現在、まだバグが残っていてファイルのタイムスタンプの問題からテキストエディタなどで警告ダイアログが頻出するが、これはバグ追跡リストに追加されている）。

ストリーミングもうまく機能している。例えば100MBあるWMV形式の動画を、イー・モバイル接続のノートPCから開くと、即座に再生が始まる。MP3などのオーディオデータも、必ずしもファイル全体をローカルストレージに落とさなくてもストリーミングで聞くことができる。ZumoDrive専用のiPhoneクライアントでも同様だ。ただし、現状ではiPhoneクライアントでは音楽データのみで、動画のストリーミング再生については現在検討中だという。いずれにしても、このストリーミング機能に関しては、ファイルシステムレベルで独自レイヤを実装したから可能なことだとZumoDriveは説明している。

今回はテストしていないが、ZumoDriveはMac OS Xクライアントも提供しているほか、今後はLinux向けクライアントもリリース予定という。移植性を高めるためにクライアントの大部分はJavaで書いているという。ただ、Javaの標準GUIの見た目が気に入らなかったので、GUIツールキットは自分たちでかなりの時間をかけて作成したと話す。

ZumoDriveのユーザーインターフェイスは、Windowsのエクスプローラからの右クリックメニューのほか、各種設定や状況確認ができるダイアログがある。また、WebサイトにアクセスすればFlashで作り込まれたファイルビューが利用できる。このWebページでは、ファイルの過去の変更履歴をさかのぼって何段階か前のバージョンを閲覧・ダウンロードができるほか、共有関連の設定ができる。今どきのWebサービスらしく、信頼するユーザーのアクティビティがライフストリームとして見えるという機能もある。

MP3ファイルをストリーミングで再生している画面。左上の「Anger.mp3」には青いアイコンが付いていて、ローカルにキャッシュされていない（ZumoDriveにしかない）ことを示している。右側の「Sexual Healing.mp3」はローカルにキャッシュがある。この状態で再生しているのはAnger.mp3（下のメディアプレーヤー）だ

ソーシャル系サービスのようにユーザーの活動（ファイルの編集・追加、ダウンロードなど）を時系列に一覧できる

WebサイトからもZumoDrive上のファイルの操作や閲覧ができる

Webサイト上では古いバージョンのファイルを閲覧したり、ダウンロードしたりといったことができる

秀逸なファイル共有、閲覧系の機能

ZumoDriveのファイル共有に関連した機能は秀逸だ。

ファイル共有には2種類ある。1つは、ZumoDrive利用者以外と手軽にフォルダやファイルを共有するための機能で、ファイルに対してユニークなURLを生成してアクセス可能にするやり方だ。これは単純にエクスプローラやWebページで「Get Link」とするだけでいい。このリンクには事実上のパスワードが含まれていて、これをメールやメッセンジャーで友人・知人・家族などに送ることで手軽にファイルにアクセスしてもらえる。ほかの人に発見される心配はほとんどないものの、比較的緩いセキュリティのため、旅行写真の一時的な共有といった用途に向くだろう。あるいは、相手がダウンロードしたことを確認して即座に「Disable Link」としてURLによるアクセスを禁じれば、たいていのファイルの共有で問題がないかもしれない。再び「Get Link」を押すと、また異なるランダムな文字列を含むURLが生成される。

手軽にリンクを作成して、ZumoDriveを使っていないユーザーとファイルやフォルダを共有できる

よくできているのは、写真の共有機能だ。Flashで作られたアルバム閲覧アプリケーションで、フォルダ単位で写真をパラパラ眺めることができる。つまり、カメラからZumoDrive上（というのはローカルに見えるドライブ、念のため）の適当なフォルダに写真をまとめてドロップして、そのフォルダのURLを誰かに送ることで、そのURLを受け取った人はWebブラウザのみでオンラインアルバムを閲覧できるということだ。写真の表示はプログレッシブで、ストレスが少ない。

iPhone上でも写真閲覧は快適だ。iPhoneアプリケーションに対しては適当にリサイズして送ってきているようで、3G接続でもストレスなくクラウド上の写真アルバムを閲覧できる。

URLによる簡易のファイル共有以外にも、ZumoDriveユーザーとの間であれば、もう少しよい共有方法がある。ユーザー名またはメールアドレスを指定して共有すれば、閲覧権、編集権、ダウンロード権などを細かく設定できる。セキュリティ上もURLを使ったものより安心だ。

ちなみに、ZumoDriveのセキュリティは2段階。クライアントとZumoDriveのサーバとの間は一般的なSSLによる暗号通信。ZumoDriveとAmazon S3の間は鍵長192ビットのAESを使っており、その鍵はZumoDriveのデータベースに保存してあるという。この鍵はユーザーごとに固定というわけではなく、同じユーザーのファイルでも異なる鍵が使われることもあるという。

Webブラウザで写真アルバムにアクセスした例。Flashで作られたフレームでパラパラと写真集をめくれる。簡易共有機能と併用すれば、もうメールで写真を送る必要はない

iPhoneでも専用アプリでZumoDrive上のアルバムが見れる。3G接続でも十分快適だ

ZumoDrive上のファイルは、ビューアが対応したものなら閲覧できる。画面は日本語のPDFファイル

ZumoDrive上の音楽ファイルはiPhoneらしいインターフェイスでストリーミング再生できる

iPhoneクライアントでは、キャッシュする量を設定できる

PDFやExcelドキュメントの閲覧やブログへの埋め込みも

Webサイト版のZumoDriveでは、画像ファイルや音楽ファイルの視聴はもちろん、PDFやExcelファイル、テキストファイルの閲覧も可能だ。日本語ファイル名も受け付ける。iPhoneアプリケーションでも、日本語を含むPDFファイル、Excelファイルは閲覧できる（シフトJISのテキストファイルなど、一部文字化けするケースもある）。こうしたドキュメント類のプレビュー機能はZumoDriveのものではなく、外部のWebサービス「Scribd」を呼び出しすことによって実現している（参考記事：テキスト版YouTube!? 「Scribd」が公開ベータへ）。

ZumoDriveに置いたファイルを、ブログなどに埋め込むのも簡単だ。プレビュー機能が対応しているファイル形式であれば、ファイルを選択して「Get Embed Code」とするだけで、埋め込みようのHTMLスニペットが生成される。これをブログエントリなどでコピー＆ペーストすれば、写真やオフィス文書、PDFファイルを埋め込むことができる。

Webサイト版のZumoDriveでExcelファイルを閲覧している画面。日本語も見える。PDF、テキストファイル、画像などはWebブラウザだけで表示、確認できる

DropboxとZumoDriveの違いに見るクラウドの可能性

Dropboxをはじめとするオンラインストレージやクラウド系サービスと、新手のZumoDriveとで動作が大きく異なるのは、クラウド上で更新されたファイルの差分データを、クライアント側にすぐにプッシュしないことだ。あくまでも各クライアントのデバイス上でファイルが必要になった段階でファイルを転送する。これにより、すべてのデバイス上で同一の複製を作るという容量のムダや、すべてのデバイスで更新データを毎回すべて反映してしまうというトラフィックのムダを省ける。例えば、週に1度しか使わないノートPCで、オンラインになるなり延々とデータの更新が始まるのではウンザリだろう。

このアプローチをZumoDriveでは内部的に「ストリーム・オン・デマンド」と呼んでいるそうだ。私は遅延評価というプログラミング用語にならって、遅延ダウンロードと呼ぶのがふさわしいと思う。本当に必要になったときにだけ処理をすることで、無駄な処理を大幅に削減できるわけだ。ZumoDriveは今後数カ月のバージョンアップで「Watch Folder」機能を実装し、指定したフォルダだけ完全にクラウド側と同期するよう指定できるようにするとしているので、ZumoDriveはハイブリッド型に進化しそうだ。

リアルタイムダウンロードか遅延ダウンロードかというのは、もちろんアプローチの違いで、どちらがより優れてるとは一概に言えない。ただ、Dropboxは限られた数の必要なファイルを同期させるためのオンラインレポジトリのようなものを想定しているのに対して、ZumoDriveは、あらゆるデータをクラウドに載せてしまってください、という前提で設計しているのではないだろうか。一部のファイルだけであればDropboxのように完全に同期しているほうがいい。逆に大量にファイルがある場合は、ZumoDriveのように必要なときに必要なデータだけローカルに持ってくるというアプローチのほうが有効だ。

この違いは両サービスの登場時期の違いと関係しているように、私には思われる。Dropboxが登場したときには、おそらくオンラインストレージは「補助的なファイル置き場」というニュアンスで捉えられることが多かったのではないか。しかし、ネットブック市場拡大でSSD市場の立ち上がりが見えてきた今、そろそろ“クラウドにすべて置く”という潜在ニーズが一般ユーザーに広がりつつあるのではないか。少なくとも、DropboxとZumoDriveのアプローチの違いには、そうした中長期的なトレンドの影響があるように思う。

ZumoDriveは安いか？

ZumoDriveは1GBの利用は無料。月額料金は10GBが2.99ドル、20GBが5.99ドル、50GBが14.99ドル、100GBが29.99ドル、200GBが59.99ドルなどとなっている（10GB当たり3ドル）。ハードディスクに比べれば割高だが、単純な単価比較には意味がない。複数PCを持つ人であればデータを多重に持つムダが省ける上に同期の面倒がない。バックアップやバージョン管理を兼ねている安心感もある。PC買い替え時にデータ移行の手間もない。こうしたメリットを総合的に考えると、“すべてクラウド”は十分に魅力的だ。例えば家族とのフォルダ共有を行えば、これまでムダに重複して持っていた写真などのデータ量も減るだろう。もっと言えば、そもそもほとんどの楽曲データはユーザーによらず同一バイナリなのだから、その重複分をなくせる可能性すらある。もちろんビジネスモデル、著作権などの問題はあるだろうが、長い目で見れば音楽を“購入”するというのは、ストリーミング権、キャッシュ権を買うような話になっていくのかもしれない。

Amazon S3自体もそうだが、ZumoDriveの価格もこれで最終版というものではなく、今後ストレージ単価の下落とともに下がっていく可能性が高い。ZumoDriveの価格についてはベータ版もので、正式版リリース時に変更する可能性もあるという。

ちなみに、ZumoDriveはAmazon S3を素で使った場合に比べてちょうど2倍の価格設定になっている。例えばAmazon S3をドライブとして使うためのシェアウェア「JungleDisk」や、Unixユーザーなら「s3rsync」といったソフトウェアを使えば、同容量が半額で使える。純粋に定期バックアップを取りたいといった用途であれば、ZumoDriveよりも、こうしたソフトウェアを利用するほうが安く済むだろう。

ネットワーク上の水平分業とイノベーション

ZumoDriveはサービス自体としても興味深いが、Amazon S3上で、他社製サービスのScribdまで流用してサービスを仕立て上げているという分業がおもしろい。マッシュアップといえば、データ系のWebサービスを組み合わせるものだったが、今やAmazon S3のようなインフラ系APIも組み合わせ、そこに付加価値を生み出すイノベーションが起こっていると見るべきだ。

こうした水平分業がイノベーションを加速するのは間違いない。Amazon S3を含むAmazon Web Servicesのクラウド系サービスは猛スピードで進化し、インフラ系サービスを拡充させている。その上で、独自プロトコル、独自サービスの設計や、各OS・デバイス向けの実装を行うベンチャーがいる。ZumoDriveを開発するチームはわずか4人のメンバーからなる。インフラ系の分業なしに、このような規模でZumoDriveのようなサービスを開発するのは不可能だ。

今後も、Amazon EC2/S3を組み合わせたサービスは、次々と出てくるに違いない。いずれにしてもZumoDriveは、こうしたAmazonクラウドのエコシステムにおいて大きな成功を収めるポテンシャルを持ったサービスの1つと言えそうだ。

関連リンク ZumoDrive

（＠IT 西村賢） 情報をお寄せください：