近年の日本における自然災害が原因で事業継続を意識したシステム作りに焦点が当たっています。
BCP(Business Continuity Planning)、いわゆる事業継続計画と呼ばれるものを策定する事によって
メインサイトが大規模災害にあった際にどのように復旧していくのか?
という事を真剣に検討する企業が増えてきました。
上記のような背景から、エンジニアとしてもBCPを検討する必要があったり、更にはBCPの一環としてDRサイトの設計や構築が必要になる場合があります。
そこで本記事ではBCPとDRの関係性についてお伝えし、エンジニアとして覚えておきたい災害対策の基本についてまとめていきたいと思います。
BCPとDRのそもそもの違いとは?
システムの災害対策においてよく聞く言葉がBCPとDRという2つの言葉。
設計しているとBCPやDRという言葉が混在して出てくる事もあり、厳密な使い分けができていない場合も多々あります。
広義の意味で厳密な違いがあるわけではないですが、BCPとDRではそれぞれ以下の違いがあります。
BCP(Business Continuity Planning)は事業継続計画そのものを指す
BCP(Business Continuity Planning)は事業継続計画そのものの事を指し、災害時に事業そのものをどのように継続させるか?
を考え計画しているものになります。
システム部分に関わらず、企業が行っているビジネスが災害時にも継続して実施できるように計画を策定したものとなり、
例えば災害発生時の連絡体制や組織ごとの役割、災害対策にかける費用といった経営計画も含めて取り決めを行ったものです。
よってDRよりも広義の意味を持ち、BCPの一部としてDRが考慮される事になります。
DRに対してかける予算や立地、大枠の方針もBCPの中で策定します。
DR(ディザスタリカバリー)とはシステムの災害対策の事を指す
DR(ディザスタリカバリ)とはシステムの災害対策の事を指します。
DRサイトと言うと災害対策用の環境の事を指し、メインシステムとは違う立地に置くことによって災害時に稼働するシステムの事を指します。
BCPに則った形で災害時のシステムとして稼働するように設計、構築、運用を行えるようにDR環境を整える必要があります。
エンジニアとしてやるべき事はBCPに則ったDRシステムを作る事
上述したようにBCPに則ってDRを検討する必要がある為、エンジニアとしてもBCPはしっかりと読み込みDR設計を行う必要があります。
例えばDR環境にかける事ができる予算からシステム構成を検討したり、
業務復旧にかける事ができる時間からRTOの取り決めを行ったりと様々な事を検討項目として検討し、要件定義をしていきます。
特にDR環境にかける事ができる予算はシステム構成に影響を及ぼす為、思った以上に重要な項目で、例えば本番環境と比較して構成を削る必要があったり、本番データのDR環境へのコピーをどのレベルで行うのか?といったことを検討していく必要があります。
例えばBCPの中でRPO(システム復旧時点)が12時間前までのレベルで必要な場合、少なくとも12時間に1回はDR環境へ本番環境のデータコピーが必要となり設備が必要となってきますが、予算によっては12時間といった時間を守る為の設備を用意できない場合もあります。
そういった予算面も含めてBCPに則りDR環境を構築していく必要がある為、BCPはしっかりと内容を読み込みましょう。
BCPを見て抑えておきたいDR設計のポイント
上述したようにBCPとDRは密接な関係にあります。
よってBCPからシステムに関する取り決めや業務復旧に当たって必要な要素を読み込み、DR設計に取り組む必要があります。
特に抑えておきたいポイントについては以下になります。
RTO(業務復旧時間)
BCPの中でまず気にしておきたいのが業務復旧時間です。
災害発生時点からどれぐらいの時間で業務復旧できるかの目標はBCPに必ず記載しているので、それらの記載を確認して要件として落としましょう。
DR環境には基本的に起動直前のシステムがある事が前提になると思いますので、RTOで設定した時間内に以下が収まるように設計しDR環境で業務開始できる状態までの立ち上げを行える環境とします。
- DR環境サービス起動
- DR環境設定取込
- DR環境他システム接続
- DR環境ユーザー接続
- DR環境業務開始
当然上記で設計した内容で時間に収まるように後続フェーズで設計を進めていき、プログラムやスクリプトを組み立ててDR環境としていきます。
RPO(業務復旧地点)
RTOと同じく気にしたいのがRPO(業務復旧地点)となります。
こちらは目標として復旧する地点によって設備費用に影響がある項目となります。
例えば業務復旧地点が数時間とか12時間以内といった時間になると、少なくとも非同期でのデータ連動が必要になります。
そうなるとその時間の復旧に間に合うように更新データを連動する必要があるため、当然データコピーが必要となったりそれだけのネットワーク回線が必要になったりと設備に影響が出てきます。
場合によってはテープバックアップをDR環境側に送る必要があったりと様々な考慮すべき事項が出てくる事が多くあり、結構シビアな問題につながる場合も多いので必ずチェックしたいポイントです。
DRに求める機能
BCPの中でDR環境に求める機能レベルをどの程度にするのか?といった定義を行っていますので必ずチェックしましょう。
例えば本番環境と同等の機能を持たすのであれば、構成から何から何まで一緒にしないといけません。
仮想環境であればOSごとDR環境へコピーしておき、DR環境側で再インベントリをかけて立ち上げるといった考慮もできます。
場合によっては業務機能は同一の機能を持たすが、信頼性は本番環境より落としても問題ない
とか
DR環境にはまずデータコピーのみ行い、業務機能は後々追加していく
といった定義を行っているはずです。
場合によっては本番環境と同等の業務機能を持ったプロダクトを用意しておき、DR環境利用時に複数システムで共有するパターンを検討する場合もありますし、災害時に提供される外部サービスに入る場合もあります。
企業によって予算都合や業務都合も含めて様々な方針が策定されますので、BCPをしっかりと読み込んでDR環境を設計するようにしましょう。
DR環境への業務データコピーについて
DRの中でも考慮が必要なのがデータの遠隔地コピー。
DR環境を起動した際に業務データをどのような状態で取り込んで起動するのか?
といった事が絶対に取り決めが必要となります。
特にRPOを短時間に設定する場合、必ずデータコピーが必要となってきますので考慮が必要です。
媒体利用したデータコピー(RPO48時間以上の場合)
RPOに余裕があり、更にRTOも時間をかけていい場合はテープをはじめとしたデータ記憶媒体のDR環境へのリストアという手段を検討する事ができます。
例えば日次で取得しているテープバックアップのテープ媒体を定期的にDR環境へ郵送しておき、常に最新のテープバックアップがDR環境に存在していれば、DR環境でリストアが可能というわけです。
ただし、当然郵送時間がかかるという事もあり、RPOは短くても48時間程度は必要となります。
またテープからデータリストアする時間が必要となる為、RTOもデータリストアの時間を考慮する必要がある事を覚えておく必要があります。
RPO、RTO共に余裕があるシステムの場合に考慮できる手法と言えるでしょう。
ただし、後述する手法に比べてコストもかからない手法の為、予算が十分にとれていないシステムの場合にはおすすめです。
遠隔地リモートバックアップ(RPO24時間~12時間程度の場合)
RPOが24時間~12時間程度の場合は遠隔地へデータをリモートバックアップする手法を考慮する必要があります。
例えば本番環境で日次バックアップを取得する際にあわせて遠隔地のDR環境へコピーしたり、12時間に1度DR環境へコピーしたりといった事を検討します。
この手法の良いところはデータコピーを平常時からしておくため、いざDR環境を利用する際にはデータリストアを考慮しなくて良いところです。またレプリケーションコピーよりもRPOは長い時間とならざるを得ませんが、バックアップソフトを利用する以外にもSFTPやSCPのようなOSが提供しているコマンドを利用する事もできる点です。
リモートバックアップを利用する場合、当然相応のネットワークが必要になりますのでコストは増加しますが、後述するレプリケーションコピーよりは安価にすませる事ができる手法となります。
レプリケーションコピー(RPO12時間以内~直近)
レプリケーションコピーとはデータを同期転送もしくは非同期転送してDR環境にも本番環境と同一のデータ(レプリカ)を用意する機能です。
同期転送を行った場合は実質本番データの更新とほぼ同一の更新状態をDR環境に用意する事が可能となるため、RPOは直前の状態に持っていくことが可能です。
RTOについてもデータコピーは平常時から実施されている為にデータリストアは考慮する必要がなく、レプリケーション状態からデータが利用できる状態に遷移するだけでDR環境でデータ利用する事ができます。
非同期コピーであれば数分に1度とか数時間に1度といった頻度でのコピーができる為、RPOにあわせて設定が可能です。
ただこの手法は本番環境と同一のデータ領域がDR環境に必要な上に、RPOに耐えれるだけのネットワークが必要だったり、本番環境のデータを同期コピーしても影響がない機器を導入する必要があったりととにかくお金がかかります。
とにかくお金がかかる手法の為、予算が十分にとれているシステム向けの手法とも言えます。
まとめ
BCPとDRの違いと共にBCPからDRへと落とし込んでいく方法についてお話ししました。
東日本大震災以降システム構築におけるBCPやDRの考慮というのは必ず必要になってくる要素となっています。
バックアップとあわせて知っておくと良い項目となっていますので、あわせて覚えておきましょう。