PosgreSQL導入のためANAシステムズが行ったガイドライン策定の取り組み

2014年7月17日(木)
Think IT編集部

オープンソースのデータベースという選択

これまでOracleDBを使ってきた同社だが、海外景気の下振れ懸念やLCCの台頭など、会社を取り巻く状況が変わってきたため、構造改革の必要に迫られてきた。それに伴い、吉村氏の所属部署でもITコストの削減を検討することになった。

OSでは折しもLinuxが広く使われるようになってきており、オープンソースが注目されはじめたこともあって、同社でもOSSを活用できないかの検討を始めた。Linuxについては使用しているシステムが増えてきたため、次にデータベースでも採用できないかという話が進んだ。

インフラアーキテクチャを考える上で、ITコストを最適化しつつ、必要な品質を守るという観点で、OSS含めて採用する製品の検討を始めた。その際考慮したのがレベルに見合った製品を選択するという点だった。
これまでは品質を保つことのできる1製品を選択してきたが、すべてのシステムで同じレベルの要求をこなす必要があるのかといえばそうではなく、それぞれのレベルに合った品質を持った製品を選択するのが最適解であるとの結論に至った。

そこで、データベースに関しては、OracleDBとともにOSSのソフトを使うことができるか、どんなシステムで使えるのかということで名前が挙がったのが、PostgreSQLを検討した最初だった。最終的に、OracleDB、PostgresPlus Enterprise Edition、PostgreSQLの3製品を使い分けていくことにした。

なぜPostgreSQLを選択したか

なぜ数あるOSS製品の中からPostgreSQLを選択したのか。一番の理由は、既に使われていたOracleDBからの移行が容易なことが挙げられる。さらに技術者のスキルも移行が容易であることからもあって、SQL ServerやDB2など、他の商用製品も含めて検討したものの、OracleDBに近いアーキテクチャを持つPostgreSQLが選択されることになった。

コスト面でもOSS活用によるメリットは大きいが、もう一つの有名な製品であるMySQLを選ばなかったことについては、やはりOracleDBからの移行メリットという点でPostgreSQLが適しているとの結論に至ったからだった。
また、OracleDBと互換機能を持つPostgres Plus Enterprise Edition(以下、Postgres Plus)を使うことで移行のハードルが下がるということも理由の一つだった。

Postgres Plusは、PostgreSQLをベースにEnterpriseDB社が開発した企業向けのDB製品で、最近までPostgres Plus Advanced Serverと呼ばれていた。特長として、例えばOracleのPL/SQLが同じ構文で利用できるなど、OracleDBとの互換機能を持つことが挙げられる。Oracle用のアプリケーションをそのまま使うことができることや、データ移行ツールがあることも大きな特長である。

ガイドライン作成にあたって

ANAシステムズでは、Oracleのガイドラインが既に定着、浸透しており、こうしたガイドラインを使ってシステムを構築・運用するのが通例になっていた。そのため、PostgreSQLを活用するにあたって、ガイドラインがないと切り替えが進めづらいと吉村氏は感じていた。ただ、それまでPostgreSQLに関するノウハウがほとんどなかったため、ガイドラインの作成と同時にノウハウを習得しようと考えた。

OracleDBの時と異なり、体系だった資料が少なく、ガイドラインの作成を検討するのはかなり困難だった。Postgres Plusについては公開情報自体が少なかったため、コンサルティングの依頼が必要だと判断。株式会社アシストにコンサルティングを依頼することになった。
アシストを選択した理由は、社内で使用する3つのデータベース製品に対するサポートや教育、構築、コンサルティングを行っていることや、今後の移行や教育を行っていく上で、OracleとPostgreSQL両方のノウハウを持つことが決め手となった。

ガイドライン作成は2013年9月より開始し、半年後の2014年3月に完成。分析計画からSQLコーディングまで6種類のガイドラインを完成させた。

(クリックで拡大)

最初に検討したのが、どのシステムでPostgreSQL(Plus含む)を採用するかという、製品選択の基準だった。セミナー等で入手していた情報を参考に、同時実行性とデータベースの規模がある程度以上のレベルに関してはOracleDBを使うという切り分けを想定していた。

PostgreSQLのバージョンアップにつれて性能が上がり、OracleDBとの壁がなくなることも聞いていたが、ガイドラインは一定の品質を保つことも要求されることから、確実な線引きが必要だと考えた。
そこで、チームが出した結論として、同時実行数が256以上、必要なCPUのコア数が16以上という具体的な線を引くよう設定している。

また、もう一つの観点であるデータベースの規模については、おおむね1TBを超える場合はOraceDBを使用、それ以下の場合はPostgreSQLやPostgres Plusを使うようにしている。

特にデータベースの規模についてはPostgreSQLやPSEEと比べて、OracleDBのパーティション機能が優れていると考えているため、大規模なDBを使うにはその機能が性能向上や運用管理の面で必須になるということも考慮に入れて切り分けを行っている。

“オープンソース技術の実践活用メディア” をスローガンに、インプレスグループが運営するエンジニアのための技術解説サイト。開発の現場で役立つノウハウ記事を毎日公開しています。

2004年の開設当初からOSS(オープンソースソフトウェア)に着目、近年は特にクラウドを取り巻く技術動向に注力し、ビジネスシーンでOSSを有効活用するための情報発信を続けています。クラウドネイティブ技術に特化したビジネスセミナー「CloudNative Days」や、Think ITと読者、著者の3者をつなぐコミュニティづくりのための勉強会「Think IT+α勉強会」、Web連載記事の書籍化など、Webサイトにとどまらない統合的なメディア展開に挑戦しています。

また、エンジニアの独立・起業、移住など多様化する「働き方」「学び方」「生き方」や「ITで社会課題を解決する」等をテーマに、世の中のさまざまな取り組みにも注目し、解説記事や取材記事も積極的に公開しています。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています