データレプリケーションの目的は障害対策と負荷分散
レプリケーションとは「複製(レプリカ)をつくること」の意味で、データベースのデータとまったく同じ物を別のシステム上に作成することです。この技術は目新しいものではなく、コンピュータの世界ではずいぶん昔からありました。
停止したら大きな影響を与えるシステムは多くあります。行政や交通機関などのシステムが停止すると、社会が混乱してしまいます。銀行のATMが停止あるいはショッピングサイトが取引できなくなった、などというのはニュースになるぐらいです。
これらの対策として、実施されてきたのがレプリケーションです。本番系のデータをレプリケーションして、いざとなったら予備系に切り替えサービスを継続するのです。
レプリケーションは、かつてデータベース付属の機能でした。データベース自体がレプリケーション機能を搭載していましたが、今では専用ツールが提供されるようになっています。
レプリケーションの目的は障害対策だけではありません。データベースの負荷分散もあります。たとえば、絶えず更新され、多くの人に参照されるデータベースがあるとします。この更新と参照を同じシステムでやっていては大きな負荷となります。それで元のシステムは更新だけを担当し、すぐにレプリケーションします。レプリケーションされた側のデータを多くの人が参照することになります。
レプリケーションとバックアップの違い
複製を作成するのであれば、バックアップとどう違うのかと疑問に思うかもしれません。この違いを考えてみましょう。
まず、バックアップは業務が終了した夜中に行うことがよくあります。または2日に1回などのように定期的に行われます。しかしレプリケーションはリアルタイムです。本番系が更新されたら、その場で予備系も更新されます。
次にバックアップはテープやバックアップ用のストレージなど、異なる媒体に転送されます。しかし、レプリケーションは2つのまったく同じシステム間で複製されます。これがリストア(復旧)の際の差となります。
システムに障害が発生して停止したら、バックアップはリストアという、複製を元に転送する作業が発生します。このリストアが目的でバックアップしています。1日1回とすれば、少なくとも昨日までのデータは残っています。1日分のデータは失いながらも、これで業務を再開できます。
これに対しレプリケーションは、リアルタイムに更新しており、本番系が停止したら、システムが自動的に切り替わり、サービスを止めることなく継続できます。「バックアップは再開」、「レプリケーションは継続」、これが最大の違いです。
レプリケーションのメリットと注意すべきポイント
障害が発生しても、システムを停止させることなく継続できるレプリケーション。これはまさに災害対策に適しています。予備系を遠隔地に置くことで、広域災害時のディザスタリカバリに最適です。たとえば、本番系を関東において、予備系を関西に置く、あるいは沖縄に置くなどが考えられます。自然災害の多い日本では必須となるソリューションでしょう。
ところが、メリットばかりではありません。レプリケーションは、本番系と予備系にほぼ同じシステムが必要で、それなりの投資を必要とします。レプリケーションは停止が許されない、極めて重要なシステムに向いています。
さらに、障害とは別に、何らかの理由でデータが壊されると、その壊されたデータのままレプリケーションされてしまいます。たとえばウィルスに感染したデータが、感染したままレプリケーションされてしまうのです。このため、レプリケーションとバックアップを組み合わせて利用することが理想的と言えます。