組み込みデータベースに求められる要件は何か
長らくPostgreSQLのエンジニアとして経験を積み、SRA OSSにてPowerGres開発技術グループ責任者を務める佐藤友章氏が組み込みとしてのデータベースに求められる要件を解説した。ポイントとしては4つ。
インストールが簡単
製品をインストールする時、アプリケーションとデータベースと別々にインストールするとなるとユーザーに負担がかかる。できればユーザーが意識することなく同時にインストールできると望ましい(サイレントインストール)。もし別々にインストールする必要があるなら、最小限の操作で日本語のインターフェースであることが望ましい(英語ではハードルが高い)。
メンテナンスの手間が少ない
パッチ適用など、必要最低限のメンテナンスは自動実行できるべき。任意のメンテナンスも自動化または最小限の操作で行えると望ましい。ユーザーがメインで使うのはアプリケーションなので、組み込まれているデータベースの保守で手間がかかるのは望ましくない。
サポート体制が整っている
業務で使用する以上、サポートは必須だ。組み込みデータベースとして用いる場合にも、技術的なサポートや障害対応があるかどうかは重要な要件となる。加えてパッケージアプリケーションとなると、長らく使い続けるものが多いためサポート期間が長いほうが望ましい。
コストが安い
製品価格にデータベースのコストが含まれるため、当然ながらデータベースのライセンスは安い方が望ましい。売れば売るほどコストが下がるように、ボリュームディスカウントがあればなおさらよい。
こうした条件でPostgreSQLの組み込みデータベースとしての適正評価を考えるとどうか。まず圧倒的に有利なのがコストである。PostgreSQLはオープンソースなので基本的には無償だ。もし商用データベースを使うとなるとそれなりのライセンス費用が必要となる。商用データベースの中にはライセンス費が高いものや価格アップしたものもあり、そうした商用データベースを組み込みで使用しているソフトウェアベンダーからは「アプリケーションを売っているのか、データベースを売っているのか分からなくなるときがある」という声もある。
一方で不利になるのがサポート体制だ。オープンソースデータベースのコミュニティ版であれば基本的には自己責任で使うことになる。PostgreSQLなら開発コミュニティによるサポートはリリースから5年間とされている。
インストールに関してはどうか。PostgreSQLのインストーラーは英語のみであるものの、サイレントインストールに対応しているため組み込みとして使うならそう問題にならない。メンテナンスに関して、佐藤氏は「以前に比べて手間はかからなくなった。しかしオンラインバックアップの設定など面倒なものも残る」と話す。
PostgreSQLを強化したPowerGresとは
こうしたPostgreSQLの課題を解決するものとしてSRA OSSは「PowerGres」を提供している。PostgreSQLをベースにしたデータベース製品なので、基本的にはPostgreSQLと変わらず、GUI管理ツールとSRA OSSの技術サポートが加わる。機能に関してはPostgreSQLより先行あるいは独自に実装されるため、PostgreSQLよりも充実している。これまでのところ、PowerGresはPostgreSQLよりも先にWindows対応、64ビット対応を実現している。1万本以上のライセンスを出荷した実績もある。今のところ「PowerGres」にはWindows版とLinux版がある。
さらにPowerGresには機能や性能を拡張した製品もある。信頼性とセキュリティを強化したのが「PowerGres Plus」で、こちらもWindows版とLinux版がある。主にトランザクションログの二重化で信頼性を高め、透過的暗号化でセキュリティを高めている。もう1つ、HAクラスタで可用性を高めたものが「PowerGres HA」で、LifeKeeper版、CLUSTERPRO版、Pacemaker版がある。
特徴をさらに詳しくみていこう。PowerGresの特徴となるのがサポートとGUI管理画面だ。サポートに関しては、SRA OSSのサポートがあるだけではない。PostgreSQLならコミュニティのサポートが5年であるところ、PowerGresは出荷から7年間のサポートがある。またSRA OSSのサポートはPostgreSQLとPowerGresのいずれでも5年のフルサポート、その先2年の継続サポート、その先3年の追加サポートが契約可能だ。2014年にリリースしたPostgreSQL 9.4なら、最大で2024年までのサポート契約が可能となっている。
GUI管理画面はWebブラウザをベースとしたものとなっている。チェックポイント数やバッファキャッシュヒット率など統計情報をグラフ化して表示、データベースクラスタの作成、バックアップジョブの表示などができる。
次にPowerGres Plus。主な特徴として挙げられるのがトランザクションログの二重化と透過的暗号化だ。トランザクションログは更新履歴を記録したもので、障害時の復旧手段として欠かせない。PostgreSQLでは1カ所にしか格納できないところ、PowerGres Plusだと二重化(異なるディスクに格納)できるため、万が一、片方のトランザクションログを失ってももう片方が有効なら復旧の道が開ける。信頼性や障害対応力を高めたいなら重要な機能となる。
もう1つが透過的暗号化。サイバーセキュリティ脅威が高まっているなか、データ暗号化はデータベース必須の機能といっていいだろう。PowerGres Plusではテーブルやインデックスはもちろん、バックアップ、トランザクションログ、一時ファイルまで透過的に暗号化する。アプリケーションで実装する必要はない。また暗号化でよく懸念される性能への影響は少ないといっていい。AES暗号化処理を高速化することに対応したCPU(AESNI)であれば「性能低下はOLTP性能は1%以下、ロード性能は10%以下」と佐藤氏は話す。
先ほどPostgreSQLで行った組み込みデータベースの適性評価を、今度はPowerGresに当てはめてみるとどうか。
PostgreSQLと対照的に最も優位になるのがサポートだ。SRA OSSのヘルプデスクが障害対応まで含めてサポートする。販売開始から基本7年間のサポート提供があり、心強い。逆にPostgreSQLと比べて評価が落ちてしまうのがコスト。商用版となるので無償ではなくコストが発生する。ただしサポート込みで128,000円からとなるため、主要な商用版データベースと比較すればそう高いとは言えない範囲だ。
インストーラーはPostgreSQL同様にサイレントインストールに対応しているのでほぼ同じ。メンテナンスではGUI管理画面があるため、手間や難易度で見たらPostgreSQLよりハードルは低くてすむ。
PowerGresが組み込みデータベースに採用される理由
実際にPowerGresは組み込みデータベースとして採用されているケースもある。例えば日立ソリューションが提供する図書管理システム「りいぶる」では2006年からWindows版のPowerGresが組み込まれている。顧客からは「変わりゆくニーズに対応するため、自社DBから汎用(はんよう)的なRDBMSを採用したかった」という声があり、特に価格が安価であること、サイレントインストールが可能なこと、サポート体制が充実していることが採用の決め手となった。
もう1つ、カシオヒューマンシステムズが提供する人事統合システム「ADPS(アドプス)」ではPowerGres Plusが一部で採用されている。このシステムは人事ソリューションで個人情報を扱うため、暗号化機能が必要だった。それまで使用していた商用データベースでは暗号化機能は提供されていたものの、高額なオプションが必要だったためPowerGres Plusを採用することにしたという。顧客は「セキュリティ機能が十分であり、コストパフォーマンスに優れている」と話し、機能と価格のバランスが採用の決め手になったという。
なおSRA OSSではPowerGresを自社パッケージ製品に組み込むベンダー向けにパートナープログラムがあり、パートナー向け特別価格や組み込みのためのサポートなどを提供しているという。
今回はパッケージソフトの組み込みデータベースを想定してPostgreSQLとPowerGresの適正評価をしたものの、通常の業務システムでデータベースを選定する場合にも通じる話だ。オープンソースデータベースを採用する際にはコストとサポートは特に重要な選定基準になる。PostgreSQLの弱みをカバーしつつ、コストパフォーマンスに優れたPowerGresは有力な選択肢となりそうだ。