Skip to main content

Fujitsu

Japan

「PostgreSQL」使いこなしの極意―OSS共通の課題を乗り越える
PostgreSQLインサイド

「PostgreSQL」使いこなしの極意―OSS共通の課題を乗り越える

OSS(オープンソースソフトウェア)のデータベースであるPostgreSQLへの関心が高まっている。しかし、コミュニティ版である“素のPostgreSQL”を使いこなすのは難しい。企業システムで利用しようとすれば、サポート面が不安であったり、信頼性や可用性の確保がままならなかったりするからだ。これはPostgreSQLだけの問題ではなく、OSSを企業が活用する際の共通課題かもしれない。この解決には、OSSの扱いに慣れたパートナーを見極め、彼らとどう付き合うかが鍵となる。

谷川 耕一[著]
[2016年7月22日掲載]

利用が増えているOSSデータベース「PostgreSQL」

国内のPostgreSQLに関わるベンダーやユーザー企業が集い、さまざまな企業システムでPostgreSQLの利用を広めようと「PostgreSQLエンタープライズ・コンソーシアム(PGECons)」が発足したのは2012年4月。この時期から、開発や研究、実験的な利用だけでなく、企業の業務システムでPostgreSQLを利用する動きが活発になった。


企業の業務システムでOSSのデータベースであるPostgreSQLを利用する動きが活発になっている

しかし、現時点でPostgreSQLを率先して利用しているのは、PostgreSQLをビジネスとして扱っていて、かつ自社内のシステムに適用している企業か、OSSに先進的に取り組んでいる企業が中心となっている。PostgreSQLの利用は増加しているものの、まだまだ商用データベースのように、広く企業が採用している状況に至っていないのが実情だ。

一方で、PostgreSQLは商用のデータベースのエンジンに使われていたり、アプリケーションの一部に組み込まれていたりする例も多い。ビッグデータやデータウェアハウス用途のデータベース「Greenplum」や、Amazon Web Servicesのデータベースサービス「Redshift」なども同様だ。つまり、知らないうちにPostgreSQLを利用しているケースも多いのだ。

企業がPostgreSQLに関心を寄せる理由

企業がPostgreSQLに関心を寄せる理由はいくつかある。その1つが、Oracle Databaseのライセンス体系変更だろう。Oracle Database Standard EditionおよびStandard Edition Oneのライセンスの新規購入、更新が今後はできなくなり、Standard Edition 2への移行となった。

これによりStandard Editionからは一部「デ・グレード」となり機能に制約が出てくる。Standard Edition Oneからはコスト増になるため、データベースの移行を検討し始めているユーザーも増えてきている。また、中小企業でも利用しやすかったStandard Edition Oneがなくなったことで、安価にOracle Databaseを利用したかったユーザーの選択肢が狭まったことは間違いないだろう。

Oracleからの移行候補の1つは、他の商用データベースだろう。もう1つの候補がPostgreSQL、MySQL等のOSSデータベースだ。世界的な利用数からすれば、PostgreSQLよりもMySQLのほうが多い。しかし、フルスペックのOracle Databaseからの移行先としてはMySQLよりはPostgreSQLのほうが向いている。MySQLはオープンソースとはいえOracleが開発、管理するデータベースであり、商用からの脱出を考えるユーザーがベンダーコントロール下にあるMySQLを嫌う傾向もあるようだ。また、Webアプリケーションで数多く利用されているデータ表現のJSON型に対応するなど、MySQLにはない、PostgreSQLならではの特徴や機能もさまざま存在する。

企業がPostgreSQLに関心を寄せる2つ目の理由は、PostgreSQLのデータベースとしての成熟度が上がってきたことだ。PostgreSQLでは、データを更新し続けるとデータベースファイル・サイズがどんどん大きくなる。この問題を解消するにはVACUUM処理が必要になるが、PostgreSQL 8以前のバージョンではこれに問題があり、24時間、365日稼働し続けるようなシステムでの運用が難しかった。また、データベースの性能、可用性機能なども十分ではなく、特にミッションクリティカルなシステムには適さなかった過去がある。

ところがバージョン9となるころからこれらの問題が解決し、機能面でも、性能面でも商用データベースに見劣りしないデータベースに進化している。さらに、地図情報機能やJSON形式データのサポートなど、新しいデータ活用のための機能もいち早く実装されている。こういった機能を用いたデータ活用のニーズが増えていることも、PostgreSQLへの関心が高まっている理由だ。

ユーザー企業がPostgreSQLを採用する際の課題

次に一般のユーザー企業がPostgreSQLを採用する際の課題について考えてみたい。

大きな課題の1つが、サポート体制だろう。コミュニティベースのOSSのため、利用していて課題にぶつかった際には自己責任で問題解決するのが基本だ。こうしたサポートの観点から敷居が高いと感じているユーザーが多いようだ。特に日本企業の場合、自社内にPostgreSQLに精通したスキルの高いエンジニアを抱えていない企業も多い。そのため、問題の切り分けを行い、原因を追及するなどの作業を行うことが社内エンジニアだけではなかなか難しい現状がある。

問題の原因が明らかになった場合には、解決策を自分で探し、パッチを当てるなどの作業も自分で実施しなければならない。これには、ソースコードレベルでPostgreSQLに精通したエンジニアが必要になり、こうした作業を確実にこなせるエンジニアを社内で育成するのも大変だ。

また、障害などの原因が判明しても、その解決策がないという場合もあるだろう。解決策を得るには、原因の詳細をコミュニティに報告し、パッチなどを誰かに作ってもらう必要がある。

障害が深刻なもので、多くの人に影響を及ぼすものであれば、コミュニティはすぐに動いてくれるだろう。実は障害への対応は、コミュニティベースで開発、メンテナンスがなされているOSSのほうが商用製品よりも速いという声も聞こえてくる。これは極めて数多くの人が関わるコミュニティベースのOSSのメリットとも言えるだろう。

しかし、障害が自社環境のみで発生するものであったり、全体としてはそれほど影響がなかったりすると、コミュニティでのパッチ作成のプライオリティは下がる。深刻な問題でなければ次回のバージョンアップ時の対応になるかもしれない。そうなれば解決策が出てくるのを待つしかない。

また、PostgreSQLのサポート期間はメジャーバージョンアップから5年で終了する。これでは、安定したバージョンを長期にわたり利用したい企業の用途には、PostgreSQLは向かないことになってしまう。

他にも課題となるのが、データベースの信頼性や可用性などミッションクリティカルなシステムであるほどに運用上重要になる機能が一部不足している点だ。商用データベースであれば簡単に実現できることが、PostgreSQL単体ではなかなか実現できないこともある。

最近では、こうしたPostgreSQLの足りない部分を補うツールやオプション機能も多く登場している。しかし、世の中にどのようなツールや機能があり、どう組み合わせるとどんなことが実現できるのかは、自分で調べる必要がある。調べたらもちろん、それを組み合わせる環境を構築し、目的通りに動くかのテストが必要だ。それを行うのも自分たちだ。これらもまた一般企業のIT部門にはかなり敷居が高いものかもしれない。

スキルフルなパートナーと一緒にPostgreSQLを使いこなす

こうしたOSS特有の課題がある中で、企業がPostgreSQLを使いこなすにはどうすべきか。その選択肢の1つは、PostgreSQLの十分な技術スキルを持っているパートナー企業と一緒になってPostgreSQLのシステムを構築し、運用する体制を作ることだ。


ユーザー企業は、パートナーと一緒になってPostgreSQLを使いこなしていく姿勢が重要だ

PostgreSQLを独自にサポートしてくれる企業が、国内でもすでにいくつか出てきている。彼らに依頼することで、サポートの問題も解決できるだろう。サポートサービスを提供するベンダーにもサポートサービスだけを提供する企業もあれば、自らPostgreSQLベースのデータベース製品を提供しより深いレベルでサポートを行うベンダーもある。たとえば、富士通の場合は、自社のデータベース製品ラインナップにPostgreSQLベースの「FUJITSU Software Symfoware Server(PostgreSQL)」(以下、Symfoware Server(PostgreSQL)を加えている。これを利用することで、富士通独自の長期サポートサービスを受けることが可能だ。

富士通の長期サポートサービスは、販売終了後5年間のサポートはもちろん、最短でも出荷から7年はサポートされる。これはSymfoware Server(PostgreSQL)でも適用される。5年を越えたサポートのニーズは、企業がビジネスで利用するシステムでは当たり前のようにあるだろう。富士通では、使用しているバージョンで解決策がコミュニティから提供されなくなった場合は、富士通のPostgreSQLに精通したエンジニアがソースコードレベルまで踏み込んで解決策を提示する。

さらに富士通なら、PostgreSQLのサポートだけでなく、ハードからミドルも含めてシステム全体をワンストップでサポートする。このサポートにより、障害発生時に問題の切り分けを自ら行う面倒もなくなる。

【図】PostgreSQLの障害も含め、富士通としてサポート。現在、PostgreSQLで動作しているアプリケーションもそのまま活用することが可能だ
PostgreSQLの障害も含め、富士通としてサポート。
現在、PostgreSQLで動作しているアプリケーションもそのまま活用することが可能だ

また、信頼性や可用性の機能的に足りない問題も、PostgreSQLベースの「Symfoware Server(PostgreSQL)」では様々な方法で解決している。典型的な取り組みの1つがデータベースのログであるWALの完全二重化だろう。データベースのログ情報は、データベース・データのトランザクションレベルでの信頼性を確保する上で極めて重要だ。とはいえPostgreSQLの標準では、これをリアルタイムにディスクに書き出す機能がない。

そこで富士通では、WALをリアルタイムに別々のストレージに書き込む拡張機能を施している。これにより、もし障害が発生した場合にもWALの情報は失われない。さらに、富士通ではPostgreSQLが持つストリーミング・レプリケーション機能を活用した独自のデータベースの二重化機能も提供している。これにより、可用性構成や災害対策構成なども容易に実現できる。

最近ニーズの高いデータベース・データの暗号化についても、独自に拡張した透過的な暗号化機能を標準で実装している。これは、PostgreSQLの暗号化機能では対応していない一時表データの暗号化にも対応しており、データベースのテーブルデータだけでなくバックアップデータの暗号化も可能だ。この暗号化機能を利用する際に、既存のアプリケーションを改修する必要がないのもポイントだろう。こういった機能があってこそ、PostgreSQLがシステム規模に関わらずミッションクリティカル領域であっても利用できるデータベースになると言える。また、今まで商用データベースを利用していて、コスト面で諦めていた中小規模の企業でも利用しやすくなっている。

性能面でも、富士通ではPostgreSQLに拡張を施している。ここ最近データベースの世界で話題のインメモリ機能をPostgreSQLに追加する予定だ(2016年度提供)。これはOracle Databaseなどが実装している、インメモリのカラム型データストアと同様なもので、データウェアハウスなどの処理をかなり高速化できるものとなる。

「Symfoware Server(PostgreSQL)」の特長

  1. オープン・性能
    • オープン性
    • 互換性強化
    • 汎用的な開発インタフェース
    • マルチテナントによる高密度集約
  2. 信頼性
    • 完全二重化技術
    • 暗号化技術
    • 災害対策
  3. 安心
    • 長期保証
    • ワンストップサポート
    • 複数世代サポート
    • スマートソフトウェアテクノロジー
    • 主要な仮想化製品のサポート

コミュニティ版OSSを自社だけで使いこなすのは大変だ。そんな場合にも、すでにPostgreSQLの扱いに慣れたスキルの高いパートナーを選択することで、一般の企業ユーザーでもPostgreSQLを使いこなせるようになるだろう。

もちろん、ベンダー任せにするのではなくパートナーと一緒になってPostgreSQLを使いこなしていく姿勢が重要だ。それこそが、企業がOSSを最大限に活用することにつながるはずだ。

著者プロフィール

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーター
ブレインハーツ取締役。AI、エキスパートシステムが流行っていたころに開発エンジニアに、その後雑誌の編集者を経て、外資系ソフトウェアベンダの製品マーケティング、広告、広報などを経験。現在は、オープンシステム開発を主なターゲットにしたソフトハウスの経営とライターの二足の草鞋を履いている。

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

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

関連するソフトウェア

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

Webでのお問い合わせ

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

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

お電話でのお問い合わせ

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

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