はじめに
ここでは、Couchbase Mobileを構成するSync Gatewayの機能であるSync Gateway間レプリケーションについて解説します。
なお、Couchbase Mobileについては、Couchbase Mobileアプリケーション開発へのロードマップに記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)や、NoSQL/JSONデータベースCouchbase Server理解・活用へのロードマップにまとめてある記事をご参考ください。
背景
Sync Gateway間レプリケーション(Inter Sync Gateway Replication)は、複数のSync Gatewayの同期を実現します。
これによって、クラウドや中央データセンターと同期するSync Gateway(と対応するCouchbase Server)をエッジデータセンターに配置することができ、Couchbase Liteを使ったモバイルサービスは、ローカリティーの恩恵を実現することができます。
Couchbase Mobileは、古典的なスタートポロジーからなる構成に留まらず、マルチティア階層のネットワーク構成に対応することができます。
関連技術
エッジデータセンター
各パブリッククラウドから、下記のようなエッジデータセンターを実現するサービスが提供されています。
- AWS Local Zones
- AWS Wavelength
- AWS Outpost
- Azure Edge Services
- Azure Edge Zones
- Azure Edge Zone w/ Operator
- Azure Private Edge Zone
- Google Distributed Cloud Powered by Anthos
多階層でのデータ同期においては、きめ細かいアクセス制御を実施しながら、集中型クラウドクラスターと多数のエッジクラスター間で同期する必要があります。このような要件は、エンタープライズレベルでますます重要となっています。
データストリーミング
センサー等のIoT/エッジデバイスで発生した情報を収集するための技術として、データストリーミングを実現する様々な技術が存在します。オープンソーステクノロジーとしては、例えば以下のようなものがあります。
- Apache Kafka
- Apache NiFi
- Apache Flink
- Apache Spark Streaming
このようなデータストリーミングの技術を組み合わせ、下流と上流でデータの入出力を構成する代わりに、エッジデバイス上のデータベースとしてCouchbase Liteを用いて、通信に関わる処理をCouchbase Mobileに委ねることが考えられます。
Sync Gateway間レプリケーション解説
アーキテクチャー
Sync Gateway間レプリケーションでは、ローカルのSync Gatewayノードのレプリケータにより、Sync Gatewayを介してローカルのCouchbase Serverデータベース内のドキュメントに対して行われた変更が、リモートのCouchbase Serverデータベースに対して反映されることが、ローカルとリモートのSync Gatewayノードの協働によって保証されます。変更は、レプリケーションの構成に従って、他のSync Gatewayインスタンスにレプリケートされます。
ここでのローカル/リモートの関係は、変更の発生した側をローカルと捉えた、いわば相対的な関係です。エッジ=ローカル、リモート=中央データセンターではなく、同期は双方向でありえることにご注意ください。
Sync Gateway間レプリケーションは、Couchbase Liteクライアントとのレプリケーションと同様に、WebSocketに基づいています。両者は、まったく同じプロトコルです。
ユースケース
マルチクラウド展開モードでは、多数のマルチエッジクラスターがクラウドデータセンターのクラスターと同期します。
各エッジは、万が一クラウドデータセンターへのネットワークが失われた場合も自律的に動作します。
Couchbase ServerのXDCRとの関係
Couchbase Serverは、XDCR(クロスデータセンターレプリケーション)という、クラスター間同期の機能を提供しています。
Sync Gateway間レプリケーションは、Couchbase LiteアプリケーションとCouchbase Serverとの同期を行う場合に特有の処理を担います。Couchbase Liteどの同期が介在しない場合は、複数のCouchbase Serverの同期のために、Sync Gateway間レプリケーションを用いるのではなく、XDCRを用います。
関連情報