2010/06/24

クラウドの思わぬ落とし穴

と、すこし飛ばし的なタイトルですが、実際に自分の身に降りかかったお話。

みなさんはクラウド使ってますか?
このブログを読んでくださっていると言うことは少なくともGoogleのクラウドの上に乗っているBloggerというSaaSサービスを通じて読んでくださっていると思いますので、巡り巡ってクラウドサービスの享受者ということに…どこまでが適用範囲になるのか分かりませんが、ボクはクラウド大好きです。
どこのBlogサービスもそうですが、公開する場所は1つしかありませんが書き込む場所・インターフェイスはいろいろあります。Bloggerなら非常に強力なWebエディタを備えていますしメール投稿機能もあります。さらにAPIを公開しているのでいろいろなアプリケーションから書き込んだり編集したりすることが出来ます。でも、それを見てくださる方にはそれは全然関係のない話。

クラウドって言うと雲をつかむような得体の知れない印象ですが、GoogleドキュメントやMobileMeをお使いの方は多いはず。iPhoneユーザーに限定すればかなりの確率ではないでしょうか。今風に言えばWebメールもクラウドかな。
さて、Appleはクラウドを通じてユーザーがいちいち同期する必要もなくカレンダーや連絡先を同期してくれる機能をOTA(Over the Air)と呼んでいます。名前は違いますがMicrosoftのExchangeと同じような気がします。
便利ですよね。例えばPC/Macのブラウザで編集した内容が別に何かしらの手を加えなくてもスマートフォンのスケジュールに同期されているんですもの。逆にスマートフォンで編集した予定をPC/Macできちんと修正したり、1つの端末だけではなく同じスケジュールを共有しているすべての人のスケジュールがほぼ同時に最新の情報へと更新されます。
ネットに繋がるスマートフォンなどはみんながみんなブラウザ経由でWeb版を見ていれば同期なんて必要ないかもしれませんが、電波の繋がらない場所、つまり、ネットに接続できない環境でもローカルに情報を蓄えておけば観覧することは出来ますし、今のところはどんなに言ってもネイティブアプリの方がWebアプリより高速に動作しますし。
誰が考えたかは知りませんが、こんなに便利な世の中なんです…最近。

でも、恐ろしい!

こんなに怖いことはそうそうないですよ。
アカウントハックされるとか、クラウドのセキュリティうんぬんとか言う話ではないです。クラウドのシステムがあまりにもきちんと動くからこそ起きる問題もあるのです。
Amazon S3は最近データの保全性の低いストレージサービスを提供開始しました。低いと言っても99.99%程度の保証です。ちなみにこれまで標準で提供されていたものは99.999999999%の保証性です。恐ろしい。
単純に考えればAmazon S3に入れたデータはユーザーが消すまで消えないと思っても良いんじゃないでしょうか。その分利用料で毎月お金は消えますが。
Googleもデータ保護のため物理的に別のデータセンターにバックアップが作られ、最悪データセンターが1つ丸々ロストしても大丈夫なようになっているみたいです。自分の何気ないGmailの内容が世界のどこかで厳重に警備された中にあるかと思うとなかなか…
自社の「えっ!? それサーバだったの!」みたいなマシンを管理しているサーバ管理者に任せるよりも、こういったデータセンター管理のプロフェッショナル集団に任せた方が安心…なんて言うのは確かにそうかもしれませんが、融通が利かないのも確か。

ある日のこと。
自分は大してスケジュールの入っていないiCal(Mac標準のスケジュール・カレンダーソフト)を起動していつものようにスケジュールの同期を行おうとiCalのアイコンをクリックしました。普段はGoogle カレンダーをメインで使っていますが、万が一ネットワークに繋がっていない環境でもスケジュールの確認が出来るようにと定期的に同期作業だけは行っています。
Google カレンダーにはかなり依存していて、Gmailのアカウントを取得して以降こなしてきた予定が書き込まれています。他の誰にとっても価値のない自己満足のようなもです。ただ、その思い入れが強ければ強いだけ失ったときの衝撃は笑えないほど。
そうです。カレンダーが使い物にならなくなったのです。

鳥頭な自分はiCalが同期している最中に「はて? なぜiCalなんて起動したんだろう」と 同期している最中に終了させてしまったのです。これはこれは恐ろしい。
それから数日は気がつかなかったのですが、ある時iPhoneで見てみるとあるべきはずのカレンダーが1つ足りない。Googleカレンダーではきちんと見えるので、その時はiPhone側の設定が壊れたw ぐらいにしか思っていませんでした。一度カレンダーの設定を消して再度やり直しても改善せず流石に焦り始める…そして気がついた。Googleカレンダーの設定画面でそのカレンダーの所有権が無くなっていることに!
Googleのアカウントがハッキングされたとかそういう形跡は無し。
共有設定にはなっておらず、ただ、そのカレンダーの所有権だけが雲の藻屑と消えてしまったのです。

さて、これがクラウド以前ならどうします。
PC/Macなら壊れる前のデータに復元しました?
もし、バックアップを取っていなかったら取っていない事を嘆きました?
でも、時代はクラウド。クラウド筆頭のGoogle先生のサービスです。その辺抜かりはありません 
所有権の壊れたカレンダー情報を世界各地のデータセンターで冗長化完璧です。
元には戻りません。

iCalのデータを壊れる以前に戻し、それを書き出して、Googleカレンダーに読み込ませるという作業のおかげで何とか以前の状態を取り戻せました。iCal様々です…犯人はこいつなんですけどね。


どちらかというと(ほぼ完璧に)クラウドよりも使い手側(今回は自分)の過失というかきちんとしていなかっただけという気もしますが、それがクラウドの向こう側に反映されバックアップまで自動的にこなされると、単純なヒューマンエラーが取り返し付かない自体になりかねないか心配。
もっともそれを見越してインターフェイスは構築するべきなのでしょうが、利用者はあくまでも利用者でしかないSaaSの場合には利用者側での対応は難しい。もう1枚フロントエンドを構えてクラウドはあくまでも共有するためのプールとして使う というのも手は手かもしれませんがなんだかクラウド導入以前よりもシステムが複雑化しそう…
一瞬で壊れたカレンダーがチーム全員の端末に同期されるとか…考えただけでも恐ろしい。

もしもSaaSのようにユーザーが利用するだけの立場の場合、間違えたので10分前にロールバックしてください なんてサービスを提供する企業に言っても通用しないと思います。意外にGoogleドキュメントのような差分履歴機能はあらゆるサービスに必要になるんじゃないかなと思っちゃったりもします。
むしろそういう保険を有料サービスとして提供するのはありかな なんて感じます。

とくにクラウドはコンピュータの歴史上もっとも囲い込みの厳しい物ですので、ユーザーにデータを取り出させないと言うのなら、囲い込みなりのやり方でデータを保証してほしいと思い。
逆説的に言えば、すべてがWebで完結するような仕組みになれば変わってくるのかなと…Chrome OSとか。