KDDIの事例では、ドキュメントを複数台のサーバに冗長化して保存し、データ更新時にはディスクへの永続化、レプリカの作成を確実に行えるようアプリケーションを開発しました。このように性能と信頼性のトレードオフを選択できることもCouchbase Serverの魅力の一つです。
サービスを停止させずにリニアにスケール
KDDI Business IDは、前述した通りクラウドでIDを一元化して安全な認証サービスを提供しています。
クラウドサービスでは、いつでも好きなタイミングで必要なだけサービスを利用でき、購入、運用、設置のような初期作業もほぼ必要なく利用できるのが利用者側の利点である一方、サービスを提供する側は、ユーザー数やアクセス数の増減、障害などに関わらず常に一定レベルのサービスを提供する必要があります。
このようなクラウド特有の懸念点に対応するため、KDDIでも開発前の製品選定時にいくつかのデータベース製品について、アーキテクチャを調査、性能や運用性を検証しました。中でもCouchbase Serverはサーバ台数の追加で性能がリニアに向上し、システムのダウンタイムなしにクラスタの拡張やメンテナンスを実施できる点が、サービスの成長とともにスケールするデータベースとして高く評価されました。
Couchbase Serverは、データ参照時にメモリ上に存在するドキュメントを返却するため、1ミリ秒未満のレイテンシでデータを取得できます。メモリ上のキャッシュ容量は指定可能で、容量が枯渇すると、ディスクに永続化されたドキュメントの中で最も参照されていないドキュメントを自動的にメモリから除去します。
それでもメモリ領域が足りなくなった場合やディスクへの永続化が追いつかない場合、Couchbase Serverクラスタにサーバを追加することで解決できます。サービスのダウンタイムなくサーバを追加し、データを再配置できます。
ソフトウェアのアップデートやハードウェアのメンテナンスのために、運用中にサーバを停止する場合にも、クラスタ全体を停止せずに対象のサーバをクラスタから外し、メンテナンス完了後にクラスタに戻すことができ、サービスの提供を停止する必要がありません。
このようにRDBMSでは実現が難しいオンラインのスケーラビリティによって、ユーザー数やアクセス数に引きずられる心配なく、常に高い性能を維持し、データ量の増減によってクラスタを自在に拡張、縮退できるようになります。

図2:Couchbase Serverクラスタの分散アーキテクチャ(筆者作成)
24時間365日の高可用性
コンシューマー向け、エンタープライズ向けに関わらず、サービスを提供する側にとって今や24時間365日安定して稼動するシステムを運用することは、ビジネスチャンスの向上と機会損失を避けるために必要不可欠ではないでしょうか?
KDDI Business IDではユーザー情報をCouchbase Serverに格納し、ユーザー認証、認証トークンの管理を行っています。Google Apps for WorkやOffice 365 with KDDIなどのクラウドサービスを常に提供する必要があるため、障害が発生してもエンドユーザーからの認証アクセスを継続できる、非常に高い可用性が求められていました。