レプリケーションの解説(応用情報技術者シラバス用語)

目次

レプリケーションとは

レプリケーションとは、データベースやサーバーのデータを、ネットワークを経由して別のコンピュータにリアルタイムで複製(コピー)し、常に同じ状態のバックアップ(複製)を維持しておく技術のことです。

この技術の主な目的は「信頼性の向上」と「負荷の分散」です。万が一、メインのデータベースサーバーが物理的な故障や災害で停止してしまっても、複製されたサーバーが即座に処理を引き継ぐ(フェイルオーバー)ことで、サービスを止めることなく継続できます。また、普段のデータの読み込み(検索処理)を複製側のサーバーに振り分けることで、メインサーバーの負担を軽くし、システム全体の動作を軽快に保つことができます。

具体例

大規模なニュースサイトなどで利用されます。記事を執筆・更新する作業はメインのデータベース(マスター)に対して行い、その変更内容は即座に複数の複製データベース(スレーブ)に同期されます。世界中からアクセスしてくる何万人もの読者には、複製されたスレーブから記事データを読み込ませることで、アクセス集中によるサイト停止を防ぎます。

もう少し詳しく

レプリケーションの動作方式には、データの同期タイミングの違いにより「同期レプリケーション」と「非同期レプリケーション」があります。「同期レプリケーション」では、メインサーバー(マスター)への書き込みが完了した際、複製先サーバー(レプリカ/スレーブ)への書き込み完了を待ってからユーザーに応答します。データの整合性は極めて高いですが、ネットワークの遅延がそのまま処理速度に影響します。「非同期レプリケーション」では、マスターへの書き込み完了後、レプリカへは遅れてバックグラウンドでデータがコピーされます。処理速度は速いですが、マスターがダウンした際に未同期のデータが消失するリスクがあります。また、単一のマスターが書き込みを受け持つ「シングルマスター構成(マスタースレーブ)」だけでなく、すべてのサーバーが書き込みと読み込みの両方を受け持つ「マルチマスター構成」も存在します。

試験でのポイント

試験においては、レプリケーションの目的(耐障害性の向上、参照負荷の分散)や、データ同期の手法である「同期方式」と「非同期方式」の特性(整合性とパフォーマンスのトレードオフ)が問われます。また、メイン機が故障した際に自動的に予備機へ処理を切り替える「フェイルオーバー」の概念や、データベースの整合性を保証する指標である「RPO(目標復旧時点)」および「RTO(目標復旧時間)」との関係についても整理しておく必要があります。特に非同期レプリケーションでは「RPOがゼロにならない(=データ損失の可能性がある)」という設計上の制約を理解しておきましょう。

関連する用語

レプリケーションに関連する用語としては、処理の切り替えを自動で行う「フェイルオーバー」や、元のデータを持つ「マスター(プライマリ)」、複製先となる「スレーブ(セカンダリ/レプリカ)」があります。また、データ同期を遅延して行う「非同期レプリケーション」、システムダウン時のデータ整合性を表す「RPO(目標復旧時点)」、そして類似の冗長化技術である「ミラーリング」や「バックアップ」も関連用語です。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ