同期レプリケーションとは

同期レプリケーション(Synchronous Replication)とは、データの一貫性と整合性を最優先するために、主システムへのデータ書き込みと同時に、そのデータを複製先システムにも書き込み、両方の書き込みが完了したことを確認してから処理を完了するデータ複製方式です。

これは、災害発生時におけるデータの完全な整合性を保証し、データ損失(Recovery Point Objective, RPO)をゼロにすることを主な目的として採用されます。

同期レプリケーション の基本的な概念

同期レプリケーションは、データの可用性を高めるレプリケーション手法の中でも、特にデータの完全性を重視する環境で選択されます。データの書き込み要求があった際、プライマリシステム(主システム)は、そのデータを自身に書き込むだけでなく、セカンダリシステム(複製先システム)にも直ちに送信し、セカンダリシステムからの書き込み完了応答を待ってから、アプリケーションへの書き込み完了通知を行います。

主な概念は以下の通りです。

  1. データ整合性の保証: プライマリシステムとセカンダリシステム間で、常にデータが完全に一致することを保証します。これにより、プライマリシステムに障害が発生した場合でも、セカンダリシステムが最新かつ整合性のあるデータを持って引き継ぐことが可能です。
  2. RPOゼロの達成: 災害発生時におけるデータ損失を許容しない(RPO = 0)要件を持つシステムに適しています。これは、金融取引システムや医療システムなど、データの損失が許されないクリティカルなアプリケーションで特に重要です。
  3. トランザクションの原子性: データベースにおけるトランザクションの原子性(Atomicity)が、レプリケーション先にも拡張されます。すなわち、トランザクションはプライマリとセカンダリの両方で完全にコミットされるか、あるいは全くコミットされないかのいずれかとなります。

同期レプリケーション の動作原理

同期レプリケーションの動作は、以下のステップで説明できます。

  1. アプリケーションがプライマリシステムにデータを書き込む要求を送信します。
  2. プライマリシステムは、そのデータを自身のストレージに書き込みます。
  3. 同時に、プライマリシステムは複製先のセカンダリシステムにデータを送信します。
  4. セカンダリシステムは受信したデータを自身のストレージに書き込みます。
  5. セカンダリシステムは、書き込みが成功したことをプライマリシステムに通知します。
  6. プライマリシステムは、セカンダリシステムからの通知を受け取った後、アプリケーションにデータの書き込みが完了したことを応答します。

この一連のプロセスは、ネットワーク遅延やセカンダリシステムの書き込み性能に影響を受け、全体のトランザクション応答時間を増加させる可能性があります。

同期レプリケーション の主要な方式

同期レプリケーションは、さまざまな技術やプロトコルによって実現されます。

  1. ストレージレベルレプリケーション: ストレージアレイ(ディスクアレイ)やSAN(Storage Area Network)レベルでデータブロックをリアルタイムに同期複製します。
    • : EMC Symmetrix Remote Data Facility (SRDF/S), Hitachi Universal Replicator (HUR) Synchronous mode。
    • 利点: アプリケーションやOSから透過的であり、どのようなデータ形式でもレプリケーション可能。
    • 課題: 特定のハードウェアに依存し、距離が限定される。
  2. データベースレベルレプリケーション: データベース管理システム(DBMS)の機能として、トランザクションログや変更データをリアルタイムに複製します。
    • : Oracle Data Guard (Maximum Protection mode), Microsoft SQL Server AlwaysOn Availability Groups (Synchronous-commit mode), PostgreSQL Streaming Replication (Synchronous Commit)。
    • 利点: アプリケーション層に影響を与えずにデータベースの整合性を保証。
    • 課題: データベースの種類に依存し、設定が複雑になる場合がある。
  3. ファイルシステムレベルレプリケーション: ファイルシステムやボリュームマネージャーの機能として、ファイルやディレクトリの変更を同期的に複製します。
    • : DRBD (Distributed Replicated Block Device)。
    • 利点: OSレベルで動作し、アプリケーションの種類を選ばない。
    • 課題: リアルタイム性がストレージレベルより劣る場合がある。

同期レプリケーション の利点と課題

利点

  • データ損失ゼロ(RPO=0): 災害や障害発生時でも、データが失われることがありません。これは同期レプリケーションの最大の利点です。
  • 高データ整合性: プライマリとセカンダリ間でデータの完全な一貫性が保証されます。
  • シンプルなリカバリ: プライマリの障害発生時、セカンダリをそのまま引き継ぐことで、追加のデータ復旧作業なしにサービスを再開できます。

課題

  • 性能への影響: プライマリシステムはセカンダリシステムからの応答を待つため、ネットワーク遅延(レイテンシ)やセカンダリの書き込み性能が全体のトランザクション応答時間に直接影響を与えます。このため、プライマリとセカンダリ間の距離が遠い環境での採用は困難です。

 \text{実効応答時間} = \text{プライマリ書き込み時間} + \text{ネットワーク遅延} + \text{セカンダリ書き込み時間} + \text{ネットワーク遅延}

ここで、「ネットワーク遅延」は片道(往復の半分)の遅延を指します。

  • ネットワーク帯域の要求: リアルタイムで大量のデータを複製するため、高いネットワーク帯域が必要となります。
  • コストの増加: 専用のネットワークインフラ、高性能なストレージ、冗長なシステム構成が必要となり、構築および運用コストが増大します。
  • 単一障害点の可能性(レプリケーション層): 同期レプリケーション経路自体に障害が発生した場合、プライマリ側の書き込みもブロックされ、結果としてサービス全体が停止するリスクがあります。

同期レプリケーションは、データの一貫性と整合性を最優先するために、主システムへのデータ書き込みと同時に複製先システムにも書き込み、両方の書き込み完了を確認してから処理を完了するデータ複製方式です。

RPOゼロを達成し、高いデータ整合性を保証するという最大の利点を持つ一方で、ネットワーク遅延による性能への影響、高いネットワーク帯域の要求、コストの増加、そしてレプリケーション経路の障害がサービス停止につながるリスクといった課題を抱えています。

そのため、金融取引システムや医療システムなど、データ損失が絶対に許されないクリティカルなビジネス要件を持つシステムにおいて、これらの課題を許容できる範囲で慎重に計画・導入されるべき技術です。

関連用語

レプリケーション | 今更聞けないIT用語集
データベースレプリケーション | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。