我々コンテンツ制作屋にとっては作業ファイルというのは命の次に大事なものでして、実際今までは作業用ファイルをRaid5で構築したNAS(とにかくものすごくデータが消えにくくて家中のPCからアクセスできるネットワークディスク)で管理していたんですが、火事や地震などの際、何をおいてでもどうやってこれを運びだそうかなんて常々考えてしまうくらい、そのくらい作業ファイル消失やデータ消失に対してデリケートなわけです。
そうでなくても個人事業やフリーランス、中小企業でWEBサイト制作のお仕事をされている場合、データ管理はどうするのがベストなのかいろいろと考えさせられますね。
そこで今までのやりかたと失敗点を踏まえて、WEBサイト制作においてのデータ管理の方法を探っていきたいと思います。
究極の目標は「家が突然爆発しても仕事が続けられる」です。
ちなみに最初に念のためお断りしておきますと、この記事では長々とDropboxとjungleDiskとAmazonS3のサービスについて書かれてありますが、それぞれのサービスの説明は全然しておりません。あくまでそれぞれ3つのサービスを連携させたらこういうふうになるよ、という類の記事ですんで、個々のサービスについては今一度検索して調べてみることをおすすめします。
それぞれ有料サービスが存在しますし、特にDropboxとjungleDiskはただサインインしただけじゃなくて専用のクライアントソフトをインストールしないと全然便利に使えないものなので、その使い方については別途調べておく事をお勧めします。
WEBサイト制作においてのデータ管理の課題
とにかくいろんなタイプのデータが混在する
ただのHTMLサイトを作るだけでもHTMLファイルや各種画像ファイル、画像の元素材ファイルや指示書などファイルの種類と数は相当数になります。
さらにプログラマブルなサイトを求められる場合、ライブラリやその階層構造(多くの場合HTMLの公開フォルダとは別でプログラムを作るのでHTMLだけの時と比べると階層構造がややこしくなる)、プログラムやデータの設計書なども必要になってきます。
Flashも必要となるとさらに加えて音声データや映像データ、さらにその元素材など扱うデータは多岐にわたります。
種類も量も大量のファイルを扱う必要が出てきます。
自前管理ではRaid5と世代バックアップは必須だった
絶対壊れたらだめなときに壊れるのがHDDです。CM連動型WEB広告など、アップ直前に限ってHDDが故障したなんて事故が理由にならないくらい、たとえHDDが壊れてもファイルがすぐに取り出せる状態でないといけないので、ネットワークディスクをRaid5で組むのは必須でした。
これでデータの保存領域は堅牢になりましたが、間違った操作に対してまだ非常に弱いです。たとえばそのネットワークディスクの中のファイルを間違って全部消してしまったとか。
そこでRaid5+定期的な世代バックアップを必要としていました。
ネットワークディスクは遅い
ネットワークディスクをいくら完璧にしたとしても、ローカルディスクの速度には勝てないので、やはり大量のファイルをスピーディーに扱えないのは困りものです。いくら定期的バックアップとってたとしても、間違えて削除したときとかもすぐに戻せないし。
そうすると作業のたびにネットワークディスクからローカルに一旦コピーしておいて、ローカルで作業して終わったらまたネットワークディスクに置く、という手間が必要になりました。
大事なそこのところを手作業に頼るというジレンマで、実際事故も多かったです。
ただでさえどこのが最新状態なのかがわかりにくくなっているのに、共同作業なんかのときは最悪で、ファイルの一部が最新のものが混在してたりと、誰もがコントロールできない状態に陥りました。
たった一文字の修正が細かく刻まれてきた場合なんかは、「ネットからローカルにコピーして 修正したものをまたネットにあげる」の繰り返しで、やればやるほどミスも多くなるしかといって直接ネットをいじったりしたらそれはそれでどれが最新版かわからなくなる元兇だったりで、ルールを厳格にしてもゆるくしても必ず何かしらの事故の要因を作ってしまうので悩みの種でした。
基本的にはDropboxがほぼすべての悩みを解決
見つけた、Dropboxちゃんのいいところ
今更説明の必要もないDropboxですが、これを導入するだけで基本的にはほぼすべての悩みが解決しました。
- 基本はローカルなので速度とか関係ない
- Dropboxのフォルダがローカルに出来るので、このフォルダの中で作業すればいいだけなので普段全くストレスなく仕事が出来ます。
- 対象がDropboxフォルダだけなのが逆にいい
- Dropboxのほかにも、もっと高機能なsugarsyncというサービスもありましたが、sugarsyncが同期できるフォルダを選べるのに対してDropboxは同期できるフォルダは一つだけです。もともと作業用フォルダは一つにまとめておくタイプだったので、このDropboxの制約が逆に好みに合っていました。同期できるフォルダがいろいろ散らかっていると、そっちの管理にも手を取られてしまいます。
- 勝手にオンラインに同期してくれる
- 基本はローカルで作業しているだけですが、裏で僕の知らないうちにオンラインに同期してくれています。PC2台持ってても、どっちで作業してもきちんとファイルが同期している。これはすごい。
- 自動で世代バックアップをとってくれる
- PC2台も持ってない人でも、この世代バックアップだけでもDropbox使う理由があります。ファイルを間違えて消してしまったとき、もうちょっと前のバージョンに戻したいとき、修正に修正を重ねたデザインをあっさり「やっぱ前のに戻して」と言われたとき、Dropboxが自動でオンラインに同期する際に世代ごとにバックアップもしてくれているので、いつでもファイルを元に戻せます。もう納品直前にファイル消失して気絶することもなくなります!
- 共同作業もばっちり
- どのフォルダを誰と共有するかも細かく決められるので、共同作業時もオンラインストレージやネットワークドライブを介する必要がありません。
こんなに便利なDropbox、基本的にこれさえあればたとえ今突然PCが爆発しても、新しいPCにDropboxを入れさえすれば何事もなかったかのように作業を続けることが出来ます。
もしまだDropboxのアカウントが無い方いましたら、次のリンクからアカウント登録を行いますと通常2GBまで無料なのに対して20MB増えて2.25GBの状態で始められることが出来ますのでよかったらどうぞ!(僕のアカウントからの紹介になるので、僕も250MB増えます)
英語のサイトですが、説明に従ってアカウントを作って、専用のアプリをダウンロードしてインストールすればすぐに使い始めることが出来ます。
Dropboxだけでは解決できないところ
Dropboxに限ったことではないのですが、この手の自動ストレージサービスで問題なのは容量が少ないことでした。
無料アカウントでも2GB、年間$99.00払って50GB、年間$199.00払えば100GB まで拡張できるのですが全然足りなくなります。
結局、Dropboxに入れておくファイルを選ぶ必要があるのですが、選ばなかったファイルに限ってPCが爆発した直後に即時対応の修正を求められるかもしれません。冗談みたいですが、必要なときに限って必要なファイルがないのはよくある事です。
AmazonS3と併用で解決!
時期尚早?
いきなりですが、今AmazonS3でアカウント作るのはちょっとまずいかもしれないです。
というのも今AmazonS3でアカウント作るとUSにあるサーバーを使うことになるかと思うんですが、もしかしたらそろそろ東京にもサーバーが作られるんじゃないかという噂を聞いたんですよ。
ネットワークといえどサーバーとの物理的な距離は回線の速度に影響しますんで、もしかしたら出来るかもしれない東京サーバーまでアカウント作成は待った方がいいかもしれないです。
僕は今作りましたが。
今すぐにでもアカウント作るぞ!っていう我に続く猛者がいましたらリンク張っておきますんでどうぞ。
こちらも簡単な英語ですが、僕がはまったのは郵便番号を7桁で書いたらエラーになったので、3桁に減らしたらいけました。
そもそもAmazonS3とはなんぞや?ということですが、ものすごく簡単に説明しますとAmazonが自分ところで使ってるサーバーを有料で貸してくれるので、これがまたえっらいスペックいいのにえっらい安くて済むんでみんな喜んでるサービスなんです。
AmazonEC2っていう、すっごい速いサーバーを、使った時間だけ貸してくれるサービスがありましてですね、これがまたすごくて、仮想化っていうんですけどアクセスがあったときだけ(仮想的に)サーバーの電源を入れて、計算が終わると(仮想的に)サーバーの電源を消すみたいなことを自動的にやってくれるサービスなんですね。電源を落としちゃうとデータは保存されないので、その保存用に作られたサービスがAmazonS3ということになっております。
電源入れてた時間だけお金払う貸しファミコンがEC2で、なんでも入れられる便利な貸しカセットがあって、その要領に対してお金払うのがS3ってイメージですかね。
jungleDiskでAmazonS3をネットワークドライブ化
AmazonS3を契約しただけではそんなに便利にデータを扱えないですがjungleDiskというサービスを使うことによってAmazonS3のサーバーをネットワークドライブとして扱うことが出来るようになります。
jungleDisk自体も有料サービスで、僕もどのプランでやればいいのかかなり迷ったんですが共同作業用にゆくゆくはサブアカウントを増やしたくなるかもしれないので、僕はとりあえずBusiness Classの月$4のプランで初めてみることにしました。個人でアカウントとって管理する分にはPersonalの月$3のプランでもいいかもしれませんね。
とりあえずDropboxとjungleDisk+AmazonS3でルールを作っておく
Dropboxはローカルでの作業を全自動でクラウド化してくれるサービス。でも最大容量が少ない。
jungleDiskはクラウドの先にあるものをローカルで扱ってるように見せかけてくれるサービス。容量無限大。でもローカルに見えるその先は実はネットワークの向こうなので速度遅い。
このふたつの特徴をうまいこと使い分けて、次のように管理するようにしました。
- 現在進行中の案件はDropbox上で
- 更新が頻繁にある状態。なのでスピードが求められる。
世代間バックアップも必須
- 更新が頻繁にある状態。なのでスピードが求められる。
- 案件が閉じたらjungleDiskでAmazonS3に保管
- またいつ使うかはわからないけど、作ったものは大事に保管。
普段はあまり触ることのないファイルなのでネットワーク越しである程度遅くても大丈夫。それよりはどんどん貯めるので容量がたっぷり欲しい。
- またいつ使うかはわからないけど、作ったものは大事に保管。
これでお互いのいいところを補いながらも、家が爆発しても手元にPCと回線さえあれば、爆発直後からでもどんな案件の対応も出来る環境が手に入りました。
おまけ
少し冗長かな?とも思うんですが、jungleDiskの月$4のプランだとAmazonS3とは別に10GBの容量を借りることが出来たので、試しにここにDropboxをSyncさせてみました。
まあほんと意味のない冗長性だと思いますが。
まとめ
クラウドクラウドって言うのは、なんか流行に乗っかってて嫌なんですけど、昔から出来るだけネットワーク上に作業環境をおいてしまって特定のPCや環境に依存されにくいというのは目指してきたんですが、僕みたいに個人事業主だとネットワーク環境も自分でメンテナンスしないといけないので、手段が目的化してしまうと逆効果なわけですね。
実際、僕の一番の仕事は制作作業なわけでして、その制作作業を助けるためのネットワーク構築のはずが、ネットワークに障害が起こると自分でメンテしないといけないので、それはそれで非常にリスクを増やすだけでした。
VPNサーバーやNAS、自動バックアップサーバーや世代管理サーバーなんかも自分で構築しちゃうと非常に安価にできるわけですが、これらのうちのどれかひとつでも落ちてしまうとただでさえ仕事どころではなくなるのに、ネットワークのメンテナンスもしないといけなくなる。そうするとこのサーバーはいったいどこまで信頼できるのかの見極めもしないといけないし、それによって依存度をかえないともいけなくなる。確実なファイル管理のための手段であったはずのサーバーが、堅実なネットワーク運用を目的としないと何も出来なくなるんです。
そういう意味では、小規模制作集団にとってのデータクラウド化は非常に有意義なんじゃないかと思います。Dropboxの2GB上限のプランだけでも無料ですし、かなりおすすめできますが、僕はもう少し踏み込んでクラウドでデータを運用してみようかと思います。
僕のデータ管理についての考え方を長々と書いた割には、結局は「DropboxとjungleDiskの併用まじおすすめ」しか中身のない記事ですが、僕も常日頃からデータ管理に頭を悩ませている毎日ですので、少しでもどなたかの運用のヒントになれば幸いです。
「DropboxとAmazonS3で堅牢な作業環境を構築してみる」への1件のフィードバック