Skip to main content

Fujitsu

Japan

PostgreSQL安心活用の秘策 OSSをビジネス革新につなげる方法とは?
PostgreSQLインサイド

デジタル時代のデータベースに必須の信頼性と性能も完備 事例から見るPostgreSQLデータ活用

OSS(オープンソースソフトウエア)を活用する企業が急増している。この動きは、データベース領域にも拡大。最近では、機能の豊富さや扱いの手軽さから、「PostgreSQL」を採用するケースが目立っているという。PostgreSQLは企業システムをどう変えるのか。注目の製品を紐解くことで、探ってみたい。

[2016年7月1日掲載]

高い信頼性を担保するWALの二重化や透過的暗号化

VOL.1では、PostgreSQLのオープン性を生かしつつ、活用の幅を広げる上では「サポート」や「信頼性向上」がカギになることを紹介した。一例として挙げたのが、FUJITSU Software Symfoware Server(PostgreSQL)[以下、Symfoware Server(PostgreSQL)]が持つ、「データベースの二重化」だ。しかし、Symfoware Server(PostgreSQL)が信頼性向上のために備えている機能はこれだけではない。それが「WALの二重化」と「透過的暗号化」である。

まずは、PostgreSQLの更新ログであるWAL(Write Ahead Logging)を二重化する機能だ。この「WALの二重化」では、ディスク故障に起因するデータ消失を防ぐことが可能だ。

富士通株式会社 ミドルウェア事業本部 データマネジメント・ミドルウェア事業部 プロダクト技術部 アシスタントマネージャー 佐野 哲也の近影
佐野 哲也
富士通株式会社
ミドルウェア事業本部 データマネジメント・ミドルウェア事業部 プロダクト技術部
アシスタントマネージャ

PostgreSQLにも、一定の単位でWALを別のディスクにコピーする機能は用意されている。しかし、WALをコピーするまでの間に、コピー元のディスクが故障した場合は、最新状態まで復旧できないのがネックになる。「これに対しSymfoware Server(PostgreSQL)では、2つのディスクに対して同時にWALを書き込む並列処理の仕組みを実装(図1)。まったく同じWALが2つあるので、片方のディスクが故障しても別のディスクに格納しているWALを使用して最新状態へ復旧できます」と佐野氏は語る。

【図1】WALの二重化

【図1】WALの二重化

トランザクションログの格納先を二重化し、同時にログを書き込むことで、一方のディスクが故障しても最新状態へと復旧できる

さらにSymfoware Server(PostgreSQL)は、企業システムのセキュリティ要件を満たす高度な暗号化機能も実装している。

PostgreSQLで実現する暗号化には限界がある。ユーザー自身で拡張モジュールをインストールしたり、アプリケーションに暗号化関数を書き加えたりする必要があるためだ。また、少なからずオーバーヘッドしてしまうことも課題である。「最近は、お客様の個人情報はもちろん、社員のマイナンバーにも対応する必要があり、データベース暗号化の必要性がどんどん増しています。より扱いやすい暗号化の仕組みが必須になっています」(佐野氏)。

Symfoware Server(PostgreSQL)は、このニーズに応えるべく「透過的暗号化」を標準搭載した(図2)。これは、指定したテーブルのデータを自動的に暗号化する機能。暗号化キーをデータベースサーバー側に持つので、アプリケーション側で暗号化を意識する必要がないため、ユーザーは既存のアプリケーションを修正することなく、そのまま高度な暗号化に対応できる。

【図2】透過的暗号化

【図2】透過的暗号化

ディスク格納時にSymfoware Server(PostgreSQL)内部でデータを暗号化し、読み出し時に復号する。そのため、アプリケーションを改修することなく格納データ、バックアップデータ、ネットワーク通信を暗号化できる。また、暗号化と復号をAES-NIに対応したチップセットで高速化できるため、オーバーヘッドも小さい

「特定のデータだけを暗号化しても、十分なセキュリティは担保できません。なぜなら、悪意を持った第三者が、どこか一部でもデータを盗み出すことができれば、それを組み合わせて解析することで個人情報を推測できてしまう可能性があるからです」と佐野氏。これに対し透過的暗号化は、データ全体が暗号化されているため、仮にディスクが盗難にあったとしても、復号キーを持っていない第三者はデータを復号できないため、情報漏えいのリスクを極小化できる。

暗号化レベルも、クレジットカード業界のセキュリティ基準である「PCI DSS」に対応。加えて、暗号化・復号処理を、性能への影響の少ないAES-NI(Advanced Encryption Standard New Instructions)に対応したチップセットで行うことで、オーバーヘッドを2%未満に抑えることができるため、業務を遅滞させる心配も無用だ。

大量データの集計を高速化する2つの機能

このようにSymfoware Server(PostgreSQL)は、OSSの自由度と、ベンダー製データベースの信頼性の“いいとこ取り”を実現した製品だ。富士通では、PostgreSQLの適用領域をさらに拡大するため、信頼性だけでなく性能面においても継続的にSymfoware Server(PostgreSQL)を強化している。

「そのメインテーマは『性能向上』です。かつてないほど多くのデータを扱うことが当たり前になるデジタル時代のデータベースには、それらをリアルタイムで高速に集計したり、処理できる性能が要求されます。つまり、高い信頼性と性能は、そのどちらが欠けてもいけない、これからのデータベースの必須条件といえます」と佐野氏は説明する。

この方針の下、現在実装に向けて開発中の機能が2つある。それが、「並列SQL」と「インメモリカラムナ」だ。

まず「並列SQL」は、サーバーのCPUを有効に利用することで、アプリケーションから送られてきたSELECT文をSymfoware Server(PostgreSQL)内で自動的に分割・並列処理する機能。富士通の独自技術により、検索だけでなく集計も並列処理できるため、データベースに格納されている大量データの全件検索が必要なケースでも、SQL文を変更せずに処理を高速化できる。

同社の測定によると、16コアのサーバーを使用し、1000万件のデータを100カテゴリーごとに集計したケースでは、他社データベースが12秒かかったのに対し、Symfoware Server(PostgreSQL)は約半分の6秒で処理を完了している。「夜間などに行われる定期集計バッチ処理を効率化する上で、この機能は大きく貢献するはずです」(佐野氏)。

もう一方の「インメモリカラムナ」は、従来のロー(行)型テーブルに加え、カラム(列)型データをリアルタイムに専用メモリ上に展開する機能。専用メモリ上に展開することで、他の業務処理の影響を受けることなく、データ集計処理を安定的に実施できる。またカラム型データは、メモリ上だけではなくディスク上にも保持されるため、再起動直後でも安定した性能を得ることができる。

この機能の最大のメリットは、OLTP(Online Transaction Processing:オンライントランザクション処理)用のデータベースをそのまま使用しながら、大量のデータを組み合わせた分析処理を飛躍的に高速化できる点にある。「当社の測定では、40コアのサーバーで600万件のデータを合算集計するSQLを流した場合、従来のコミュニティ版のPostgreSQLとの比較で90分の1までレスポンス時間を短縮できています」と佐野氏は強調する。

複数拠点のデータベース集約など、導入事例も多数

高い信頼性と性能向上で魅力的なSymfoware Server(PostgreSQL)では、すでに導入事例も多い。その一例を紹介しよう。

日本全国に複数の拠点を持つA社は、従来は各拠点にベンダー製データベースを導入していた。しかし、システムが大規模化した際のライセンスコストを抑えるため、また、将来的に必要になるビッグデータ活用基盤を早期に整備するために、データベースのOSS化を検討。ただし、コミュニティ版のPostgreSQLにはサポートや性能面で不安があったため、それらの点を補完したSymfoware Server(PostgreSQL)を最終的に採用。3段階に分けてシステムの集約を進めている(図3)。

【図3】Symfoware Server(PostgreSQL)の導入事例

【図3】Symfoware Server(PostgreSQL)の導入事例

ステップ1で各拠点のデータベースをSymfoware Server(PostgreSQL)へ移行し、データベースの二重化で信頼性を確保。ステップ2では、これらを1カ所に集約。そしてステップ3では、集約したデータベースから巨大なデータベーステーブルを作成、他のデータも組み合わせた分析を行うことで、新たな価値を生み出す

ステップ1でA社は、各拠点で使用していたベンダー製データベースをSymfoware Server(PostgreSQL)へ移行した。以前のデータベースはクラスタ構成になっていたが、Symfoware Server(PostgreSQL)への移行によりデータベースの二重化を実現。同製品では待機系サーバーのライセンスが不要なため、ライセンスコストを大幅に抑えられたほか、万一の障害時にもVOL.1で紹介したようなシンプルな運用が実現でき、運用負荷も軽減した。この段階で、TCOは80%程度削減された。

ステップ2で取り組んだのが、データベースの集約だ。Symfoware Server(PostgreSQL)へ移行した各拠点のデータベースを物理的に1カ所に集める。この段階ではまだ元の拠点ごとに個別のインスタンスを稼働させるが、データを大きなひとかたまりとして横断的にも見られるようにすることで、後のデータベース統合のハードルも下げた。

そして、これから着手するステップ3では、集約した各拠点のデータベースからデータを統合するためのインスタンスを立ち上げ、巨大なデータベーステーブルを構築。待機系サーバーを活用し、インメモリカラムナによるデータの高速処理を実現する構想だ。

これにより、全国各拠点の業務データを、オンライン業務に影響を与えることなく、一元的に分析できるようになる。

「一見、大規模な導入事例に見えますが、『全国複数拠点でデータベースを運用しているシステム』は、企業規模にかかわらずよくあるケースです。PostgreSQLのオープン性を持つSymfoware Server(PostgreSQL)は、大手企業はもちろん、中堅・中小企業のお客様にも活用メリットを感じていただけるはずです」と佐野氏は言う。

OSSに魅力は感じていても、企業データベースへの本格的な導入に二の足を踏んできた企業は多いだろう。しかし、紹介したようにその状況は大きく変わりつつある。高い信頼性とサポート、そしてデジタル時代のデータ活用にも対応した処理性能を備えるSymfoware Server(PostgreSQL)は、検討する価値のある製品といえるだろう。

富士通のPostgreSQLに関する情報がここに「PostgreSQL インサイド」

ご紹介した商品

本特集は、日経BP社の許可を得て「ITpro Special」に掲載(掲載期間:2016年5月31日~2016年6月27日)された内容より転載したものです。
記事作成時点の情報のため、その後予告なしに変更されることがあります。あらかじめご了承ください。

本コンテンツに関するお問い合わせ

Webでのお問い合わせ

入力フォームはこちらから

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)0120-933-200

受付時間 9時~12時および13時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)