Couchbase Serverクラスタ内でのレプリケーションにより、サーバ単位での耐障害性を確保することはもちろん、データセンター間のレプリケーションに特化した、クロスデータセンターレプリケーション(XDCR)という機能を利用して東日本、西日本の2つのデータセンターに配置されたCouchbase Serverの2つのクラスタ間を同期することで、データセンターレベルでの障害にも耐えられるサービスを実現しています。
以下の図に示すように、XDCRを活用するとパブリックなネットワーク経由をセキュアに行うためのSSL暗号化、ネットワーク切断後の復旧、帯域削減のオプションなどクラスタ内部のレプリケーションとは異なる要件に対応できます。

図3:クロスデータセンターレプリケーション (XDCR、筆者作成)
高い可用性を持つ適切なソリューションを選択することは重要ですが、利用するだけでは十分ではありません。KDDI Business IDではサービス開始前に単一サーバの障害、データセンターレベルでの障害など、考えうるトラブルに対してサービスのSLAと照らし合わせ、適切な復旧方法を設計し、障害復旧シナリオのテストを行っています。Couchbase Serverはこれらのテストをパスし、認証基盤を支えるデータベースとして安定して稼働しています。
Couchase Serverでは、サーバ単位の障害が発生した場合、フェイルオーバーで即座に復旧が可能です。また、これはエンタープライズ版のみの機能となりますがラックやゾーンなどの物理的なグループを指定し、レプリカが必ず異なるグループに作成されるように設定することによって、ラック単位、ゾーン単位など、必要とされるレベルで二重にも四重にも障害対策ができるようになります。
シンプルな運用管理
これは単純にRDBMSと比較できるものではないかもしれませんが、Couchbase Serverの特長の一つとして、そのシンプルな運用管理が挙げられます。Couchbase ServerはLinuxやWindowsのサーバにダウンロードしたバイナリパッケージをインストールして利用します。分散システムでありながら、インストールに必要なパッケージは一つだけで導入が非常に簡単です。付属の管理画面から、クラスタへのサーバ追加、削除、リバランス、XDCRの設定などを実行できます。
クラスタ全体の統計情報を集約してモニタリングすることもでき、リソースの利用状況やデータ増加傾向などからクラスタを拡張するタイミングを適切に把握できます。管理画面で実行可能な操作は、管理用コマンドや管理用REST APIからも実行可能です。「統計情報と連動して、新たなCouchbase Serverをインストールしてクラスタに参加させ、リバランスする」といった自動スケーリングも可能です。
このシンプルな運用管理という点でCouchbase ServerはRDBMSと比較して運用コストが安価であると言えるかもしれません。

図4:管理画面で容易なクラスタのモニタリング、管理(筆者作成)
KDDI Business IDでは、環境構築にテストの自動化を導入しています。複数のサーバを構築する際一つひとつ手作業で確認していては、いくら慎重に作業をしていても人為的ミスが発生する可能性があります。Couchbase Serverのコマンドラインツールと連携し、東西のデータセンターに配置したサーバクラスタの構築を自動化しています。
クラスタの監視、障害発生時のアラートを送信するために、監視ツールを利用しています。Couchbase Serverの統計情報やログを監視し、問題発生時には即座に対応できるようにしています。