今回はBCPとDR対策のお話です!
BCPとは「Business Continuity Planning」の略で事業継続計画という意味です。
そしてDRとは「Disaster Recovery」の略で災害復旧という意味となります。
単純に言えば、災害時システムを復旧して、事業を再開できるようにする。
たった、これだけの話ですが、BCPやDRはバックアップの高度な技術を駆使して、初めて実現できるものなんです。
バックアップって聞くと、ファイルを保存して復元するだけの単純な技術と思ってませんか?
そんな事はありません、実はめっちゃ奥が深いんです。
今回はそんなお話!
※ちなみに以前の記事で「Disaster Recovery」の話はこちらでもIT用語として簡単に書いてます!
まずBCPとかDRがよく解りません!
どちらも簡単にいうと災害が起きたときの対策を指します。
日本では東日本大震災をきっかけに、多くの企業が導入を検討し始めました。
ここで言ってる災害は、地震・水害・火災のような自然災害だけではありません。
テロや戦争などの武力紛争、サイバー攻撃による人災、疫病などあらゆる事態を想定して考えます。
例えば、何らかの災害が起きて、東京が壊滅状態になった状況を、イメージしてみて下さい。
こんな状況になったら、サーバーや通信インフラは、家屋ごと破壊されている事が推測できますよね。
こうなってしまうと、あらゆる情報が失われ、ITで自動化された仕組みは全て停止します。
そして、これらが原因で、あらゆる施設が停止すると、社会そのものが停止する事となり、人々が普通の生活をする事ができません
こうなった場合を想定して、システムを復旧する対策を、
DR対策といいます!
また、システムを復旧して事業を再開し、継続できるようにする計画を
BCPと呼んでいます
DRはシステムの復旧をするための対策で、BCPに含まれているものなんです。
図解するとこんな感じイメージですかね。
遠隔地に置く場所を決める
まず、DRやBCPで考える事は、データの分散保持。
ざっくり言うと、データを分散して保管する場所を決めるんです。
例えば東京が壊滅するような、災害が発生したと仮定します。
こうなったら、東京近郊のシステムは家屋ごと壊滅してるでしょう。
ただ、被害の範囲が東京近郊だけなら、大阪は無事である可能性がありますよね。
だとしたら「大阪にもデータを置いておけば安全じゃね?」みたいに考えるんです。
こんな感じで、災害の被害が及ばない遠隔地を想定し、データを分散して置いとく場所を設計します。
RPOを考える
次はRPOという定義を決めるのですが、これも決して難しい話ではありません。
RPOとは「目標復旧地点」という意味で、有事の際「どれくらい最新の状態でデータを復元できるか」を決めます。
例えばRPOを「1日前」と決めたら、災害でデータが壊れても、1日前までの状態には戻せる様な設計でシステムを作ります。
ただ「何で数秒とか、数時間とか、もっと直近の状態で復元しないの?」って普通はみんな思いますよね。
そうです、できればみんなこうしたいです。では、なぜやらないか?簡単です。
これをやるとめっちゃ金がかかるからです!
後で説明しますが、RPOを短く設定すればするほど、それだけ多くの資源が必要になるんです。
RTOを考える
RTOは「目標復旧時間」という意味で、「復旧するのにどれくらい時間がかかるか?」を想定して決めておきます。
例えば障害が発生してから1時間で復旧できる想定なら、この場合「RTO」は1時間となります。
もう1つ別な例を挙げると、データ量が多く復元に3日かかってしまったら「RTO」は3日となります。
壊れているものは、一刻も早く復活すべきだと、皆様感じると思いますが・・
RTOを短くする仕組みも結構お金かかるんですよね・・
どんな感じでDRするか考える
遠隔地の場所、RPO、RTOが定義できたら、構成を決めていきます。
RPO/RTOを短くしようとすればするほど、コストは上がっていきます。
では、どんな感じになるか単純な例を紹介します。
案1:遠隔地へデータを移動して、有事の際にリカバリする方法
(RPO=長い・RTO=長い・コスト=低め)
一番簡単で、コストを抑える事が可能ですが、バックアップやリカバリは時間がかかる為、RPO/RTOは必然的に長くなります。
方法の1つとして、物理的にバックアップしたデータを、遠隔地の保管庫へ輸送する、昔ながらの方法があります。
ただし、この方法は輸送コストがかかります。
なので、データを小さくして遠隔地のデータセンターに、直接データを送信する方法も最近ではよく使われています。
この方法なら復旧に時間はかかりますが、データのロストを防ぐ事ができます。
案2:遠隔地に同じ環境を作る。
東京が更新されたら、遠隔地も自動で更新される仕組みを作る
(RPO=短い・RTO=短い・コスト=高め)
例として以下の様な構成を組むことで、RPOとRTOを大きく短縮する事ができます。
しかしながら、同じ環境を2つ用意して稼働させる事になるので、コストは倍以上に跳ね上がるのは間違いないでしょう。
更に自動化をすると、RTOの時間はもっと短くできますが、さらなるコストも発生します。
クラウドを使うのはあり?
もちろんありです。初期投資を抑える事ができますし、運用や構築にかかる人的コストや、設備の費用を削減できます。
なので、DR先として、クラウド環境を利用している企業は多いです。
方法として、クラウド上のディスクにバックアップもできますし、有事の際はクラウド上に、構築したサーバーを起動するという手もあります。
ただし注意点がいくつか・・
WAN(インターネット回線)を利用したデータの送信となるので、データを送受信するのに時間がかかるという事。
※結果RPOとRTOの時間は長くなります。
従量課金になっているサービスの場合、データが増えるとコストもあがる事。
クラウド側から復元するときも、別途、従量課金が発生する場合もあるので、よくサービス内容を確認しましょう。
セキュリティに関しては、クラウドベンダーのセキュリティレベルに依存する形となります。
そして、クラウド環境が設置されてるリージョンが、同じ東京だったら、災害時に崩壊する可能性があります。
設置場所もちゃんと確認しましょう。
恐怖のDR訓練
最近では、本当にDRが動くか、定期的にテストをしているところが多いのですが、これがめっちゃ怖いんです。
怖い理由としては、訓練が本番環境で行われる事。
本番環境なので、誰もシステムを利用しない、GW・お正月の様な長期連休や深夜のタイミングでこの訓練は行われます。
DR訓練が成功して、遠隔地にスイッチする事ができたとします。
本当に怖いのはここからなんです・・
テストが完了して、元通りに戻すとき、もし想定外のエラーなどで、戻らなかったらどうなりますか?
そして問題が解決しないまま、業務時間に突入したら、業務が停止する事になり・・・
業務停止=「多大な損害が発生する事態」となる訳です。
こうなると、DR訓練をしたことで、 Disasterを生み出してしまったなんていう皮肉な話になってしまうんです・・
怖い・・考えただけで怖すぎるぜ!
でもこういう事故って、結構起きてる話なんですよ・・
最後に
バックアップの専門家って聞いて、皆様どんなイメージをされますか?
ぶっちゃけそれって何かすごいの?って思ってる方が多いのではないでしょうか。
実はバックアップの対象となるのは、以下の様に沢山あるんです。
そして、それぞれバックアップを取るための、専門知識が個別に必要だったりします。
・ファイル(OS毎に異なる)
・DB(種類多数)
・アプリケーション
・仮想サーバー
・ストレージ
・物理サーバー 等々・・
それだけではなく、バックアップを保存する環境を作るために、以下の知識も必要になります。
・ディスクの知識、
・テープ装置の知識
・クラウドの知識
・仮想環境の知識
・ネットワークの知識
・OSの知識
・ハードウェアの知識
・暗号化の知識
・世代管理などバックアップの基本知識
つまり、バックアップの専門家は、かなり幅広い知識を持っていると言っても過言ではありません。
逆に生半可な知識の人が設計をすると、想定外の事象が多発したり、復旧できなかったり、バックアップがいつまでも終わらないみたいな・・失敗事例を沢山生み出す事になります。
私が言いたいのは、バックアップとリカバリは最後の手段であり、とても高度で重要な技術という事です!
やっぱ、バックアップの専門家って