今日も知らない街を歩く

雑記に近い形でちまちま書いていきます。

Gmailは本当にローカルバックアップを取らなきゃダメ?

Gmailがようやく復旧したようです。
Googleのアナウンス(英文です)

原因はソフトウェアのバグでした。復旧のためにデータセンターからデータをリストアしたため、完全にデータが消失するという最悪の事態は避けられたようです。
そしてこのニュースを受けて、(予想はしてましたが)クラウド依存の危険性、ローカルにバックアップを取ることの重要性を訴える記事が出ました。
Gmailの障害がクラウド依存の危険性を再認識させた - TechCrunch
しかし、僕はクラウド依存は警鐘を鳴らすほど危険ではないと思っています。理由は、(今回障害が起きたとはいえ)クラウドに保管されているデータはローカルで保存されているデータよりはるかに堅牢である可能性が高いからです。

evernoteの事例に見るクラウドサービスの堅牢さ

去年の7月、同じくクラウドサービスであるevernoteでも障害が発生し、約350万の全ユーザーのうち6323名が影響を受けました。詳細記事はこちら。
7月1日のEvernoteサーバー問題に関して - Evernote日本語版ブログ
(確かその時もtwitterなどで「そんなに大事なデータだったらバックアップぐらいとっとけよ」という論調のコメントがあった気がします)
しかし本記事によれば、

ユーザーのデータは、通常サーバーと障害迂回用サーバーで構成された『Shard(シャード)』内に保存されております。通常サーバーに不具合が生じた場合、システムは自動的にシャード内の2台目のサーバーに迂回します。現在弊社は37セットのシャードを管理しており、シャード22に先月不具合が生じました。各サーバー内のデータは、RAID1配列(完全冗長化対応)内に保存され、また全データはオンサイト・オフサイト両方でバックアップされております。ノートデータのコピーは全てEvernote for Windows/Macクライアント上に保存されています(プレミアムユーザーの方々はオフラインデータをiPhone/iPadクライアントで保存しております)。つまり、Evernote内の全ノートは少なくとも6ヵ所の予備ロケーション(メインサーバーとそのRAIDミラー、シャード内の障害迂回用サーバーとそのRAIDミラー、そしてオンサイト・オフサイトのバックアップ)で保存されており、Evernoteにおけるデータ紛失は極めて稀であります。

ということで、要するに6重バックアップを取っています(しかも「最小の場合」で!)。ざっくり言い換えると、PCの他に定期的に5台のハードディスク用意して、障害が起きたら本職の人がリカバリしてくれる、という事。*1
それにも関わらず事故が起こってデータが失われたらどう思うか。仮に自前でこれだけの事をしていたとしたら、「これだけバックアップとかとってて無くなったのだから、悲しいけど流石にどうしようも無い」と僕は思います。「バックアップ取っとけよ」と言われたら「取ってたよ!!」と怒るでしょう。
これはevernoteの事例ですが、Gmailも似た形式で運用しているでしょう。今回の復旧についても、物理的に遠く離れたデータセンターから(つまり、災害などで一つのデータセンターが稼働しなくなっても大丈夫ということです)テープを持ってきて復旧させています。

クラウドのキモは「データが集約されていること」

クラウドサービス」「クラウドコンピューティング」の定義は様々ですが(Wikipediaで参照した結果はこちら)、僕はクラウドのメリットは「インターネットの接続環境さえ有れば自分の所有するデータの保存と取り出しが出来る」「処理を実行するコンピュータ本体およびネットワークの管理や蓄積されるデータの管理の手間は軽減される」にあると思っています。このメリットがあるからこそ、PCで作成したファイルが、別の場所にある別のPCやiPhoneなどの別の媒体で簡単に参照できるようになるからです。それにも関わらず、バックアップの為だけにデータをローカルに置いてしまうと、媒体間で同期の手間がかかる、結局ユーザーがデータの管理をしないといけなくなるなど、何のためのクラウドなのか、と思ってしまいます。*2  

「ローカルでバックアップとっとけ」は「難病保険の特約つけとけ」と同じ?

 もちろん、ローカルバックアップを全面的に否定するつもりはありません。絶対無くなったら困るデータだし、消失する確率を0%にしたいという気持ちはわかります。でも、ローカルバックアップしたところで、データが消失する確率は例えば0.0001%が0.000001%になる程度*3なんじゃないかな、と思います。実際、件のGmailの障害でもデータは完全に消失はしていません。*4
 結局のところ、「クラウド一か所にデータがあるのは危険だ、ローカルにバックアップとっとけ」というのは、なる確率が非常に低い難病になったら大変だから保険に特約つけろ、と根っこは同じ話です。特約を否定はしないし、実際に事が起こることに備えるというのはわかるけど、そのためにかけるコストは本当に適切ですか?と。
クラウドで障害が起こるたびに出るクラウド危険論*5にどうしても違和感があったので書きました。


 余談ですが、最初に引用した記事で「Netflixのサーバーが1台突然倒れたらどうなるか」と書いてありましたが、個人的にはこれこそユーザーにデータのありかを意識させない、クラウドらしい表現だと思いました。1台突然倒れたら、他のサーバーで運用を続け、その最中に倒れたサーバーを復旧すればいいだけです。*6そしてそのことをユーザーは全く知らず、そのままサービスを利用するのです。


本記事の執筆時間:約75分

*1:「そもそもそのアナウンスは信用できるの?運用の人が素人の可能性は?」という事を言い出したらキリがないので割愛。

*2:DropBoxEvernoteはローカルにデータを置く形になっていますが、バックアップの為というよりは利便性の為という認識です。実際、同期はほぼ自動で行われ、ユーザーがデータ管理をどうこうとは考えなくてよくなっています。

*3:正確な計算はできませんが、単純なハードウェア障害だったら確率はもっと下がると思います

*4:厳密にいえば、障害の最中に送信されたメールは消失してしまいました。しかし、相手側に送信履歴が残っていればそれは再送することで解決できます。

*5:サービス停止やプライバシーの脅威論、地政リスクなどのクラウド危険論については理解できます。

*6:もしNetfixがサーバー1台だけで運用されていたら別ですが。そんなサービス絶対に利用したくないです。