バックアップは重要……だけれども
普段スマートフォンを所持しているのもあり、良くある話としてゲームなどをインストールして遊んでいるわけですが、最近とあるゲームで保存していたデータが消失するトラブルに見舞われました。結構な時間をかけてやっていたこともあり、データが消えたショックもなかなかなものなのですが、結局最初からやり直していたりします。
ゲームだから、というわけではありませんがデータが消えるというのは非常に重い出来事です。私たちが開発するシステムにおいて、データはそれまでの履歴であったり何かしらの行動の結果であったりします。非常に重要なのは考えなくともわかることです。そのため、システムを開発する際にあたり、データのバックアップは非常に重要な項目となります。
バックアップには多種多様な方法が存在しており、その用途によってどのような方法を用いるかが変わってきます。例えば、毎日深夜にそれまでの状態をまとめて出力し、別のハードウェア上に退避させたりするのは、その容易さから多くのシステムで採用されていることでしょう。これが BCP などを考慮すると、テーブなどの取り外し可能な媒体に保存させ、その媒体をさらにどこか別の地域で保管させるという形に発展したりします。昨今であればクラウド上に退避させるというのも、それほど珍しい話でもありません。
またバックアップを取る目的によっても、方法が変化することはあります。業務上のあるタイミングのデータを保存する、俗にいう日次とか月次とかいったタイミングで行うバックアップと、日々のデータのバックアップとでは全く異なります。万が一の際に、業務上の手戻りを少なくするためのバックアップは、利用者が指定したタイミングで採取できることが必須となります。半面定期的に採取するバックアップは、利用者が関与しないところで、自動的に行われている必要があります。
このあたりの話については、世の中に多くの記事や資料がありますので、殊更ここで詳しく述べる必要はないほどです。そしてバックアップからの復元となると、途端にその数が減少してしまうのも、ご承知のところかと思います。
実際に古くからこの業界に携わっている一人として、過去のシステムではバックアップを取ることは取るけども、その復元となるとあまり考えられていなかったというのは事実です。復元はできるが、それにかかる時間についてはアバウトにすませていたところも多いでしょう。SLA といった指標も一般的ではなかった時代ですので、本来は良くなくとも目をつむられていたところだと感じています。
さすがに最近においては、そこまで考えられていないシステム開発は減少していると思いますが、予算と時間の都合ですべてのシステムがそうである、とは言い切れない状態です。定期的な自動バックアップだけ行っているシステムや、マニュアル操作でのみ行うバックアップに限られているシステムとうのも、世の中には多々存在していますし、OS が自動で行うような時代にでもならない限りはなくなることもないと思われます。
このあたりは非常に悩ましいところなのですが、どのようなシステムでも適したバックアップやリストアの方法は存在しません。システムの用途や規模にも影響するでしょうし、システム全体の構成にも左右されるでしょう。そして今ではデータが分散して保持されることも、決して珍しくはなくなり、バックアップを行うと考えてもその難易度はとても上昇しています。業務上必要なデータを保存しておくだけではシステムが復旧できない、ということも当たり前となりつつあります。
場合によっては、一つのデータを複数企業で分割、保有することも発生したりもしますので、なおさらバックアップというものの重要性と難しさが感じられることかと思います。
このように時代が進むにつれて、必要となるバックアップ像というのも変化してきています。単純に手動でバックアップを実行し適宜退避させていた時代から、自動手動双方の手段を用意し、バックアップを様々な状況下で行うようにと、ますます巨大化・複雑化しています。もはや、開発における一担当者が設計しきるようなものではなく、システムだけにとどまらず、全体を見渡すことのできる人間が設計しなくてはならない、それが当然の時代へと変化してきています。
なによりも難しいのは、このように多くのことを考えなくてはならないバックアップですが、そこにかけられる時間と費用は増えるどころか、減少していることも多いということです。確かに技術の進歩により、これまでと同じことがより安価に実施できるようになっている面もあります。ですが、先ほどの話にもあるように、考えなくてはいけない領域が増えているのもまた事実です。
絶対に落ちないシステム、というものは存在しません。どれほど多重に策を擁しておいたとしても、それを超える事態というのも必ず存在しますし、何故か想像していない事態というのは、こちらが思うよりも発生しやすいものです。同様にバックアップがあるから安心、と言い切ることも難しく、バックアップがあっても完全には復旧できないということもないとは言い切れません。
かかる費用をすべて面倒みてくれるようなユーザーであれば、こちらとしても取りえる最善の手段と方法で対応は行えることと思います。勿論そのようなユーザーは、ごく少数です。開発側としては、限られた枠の中で最善の方法を考えるまでです。その手段が、システムとして復旧できるという最低限の目的を叶えていれば、とりあえずは適しているのだと思います。
バックアップは、常に高性能であるべき高機能であるべき、という事はないと考えます。復旧にかけてよい時間においても、短かいに越したことはありませんが、かけられる費用の範疇でそうあるべきです。世の中にある記事を見ていると、ついオーバースペックな選択をしてしまうこともありますが、求められるレベルとのバランス感覚は非常に重要だと思います。
最初に書いたゲームみたいなケースでは、例えば無償のアプリとかであるならなおさら、完全に復旧できるようなことを望みすぎるというのも、あまりよくないことなのだと思います。少なくとも同じような開発側にいる人間として、その程度の分別はもっていたいものです。
データが消えてがっくりするのはしょうがないんですけどね……。