ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで...

44
1 ITベンダから見たPostgreSQL ~これからPostgreSQLを始める方へ~ PGConf.ASIA 2018 DAY 0(プレユーザカンファレンス) 日本電気株式会社 AIプラットフォーム事業部 湯村 昇平

Transcript of ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで...

Page 1: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

1

ITベンダから見たPostgreSQL~これからPostgreSQLを始める方へ~

PGConf.ASIA 2018 DAY 0(プレユーザカンファレンス)

日本電気株式会社

AIプラットフォーム事業部

湯村 昇平

Page 2: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する
Page 3: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

3

本日お話したいこと

対象

目的

ITベンダ/エンジニアとしてPostgreSQLを取り扱うことを検討している方

PostgreSQLの様々な事業に取り組んできたITベンダの視点で、PostgreSQLを知って頂く

※ 本資料に掲載された製品名、会社名、及びロゴは各社の商標または登録商標です

© NEC Corporation 2018

Page 4: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

Agenda

1. PostgreSQLとITベンダ

2. NECの対応経験から語る、PostgreSQLを活用する上での課題への対処

3. ITベンダ視点で見たPostgreSQL

4. NECのソリューション紹介

5. まとめ

Page 5: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

1. PostgreSQLとITベンダ

Page 6: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

6

PostgreSQLは、商用での利用が容易

複雑な印象のOSSライセンスの中でも、ライセンスの縛りが大らか

▌ライセンスはPostgreSQLライセンス(BSDベース)

著作権と免責事項を引用すれば『組み込みも改造も非公開も再配布も、自由』

PKGの組み込みDBだったり、付加価値を付けて売ったり商用利用がとってもしやすい

・著作権者のコピーライト・いかなる問題にも責任を負わない

組み込み利用で配布

改造し、製品として配布

LICENSE https://www.postgresql.org/about/licence/

© NEC Corporation 2018

Page 7: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

7

PostgreSQLはOSSとして良好な形で発展している

OSSはユーザ企業、開発サポート企業、コミュニティの3者がWIN-WINの関係を保つことで、強固に発展を遂げていくことができる

▌PostgreSQLは、そうなっているといえる

© NEC Corporation 2018

対価を支払う

サポートと付加価値を提供

バグ報告開発者の輩出

普及が進むことでコミュニティ参加者が増える

無償で利用可能

要望機能を取り込む

ユーザ企業

開発/サポート企業

開発コミュニティ

Page 8: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

8 © NEC Corporation 2018

ITベンダはPosgreSQLでどんなビジネスを展開しているか

Transparent Data Encryption for

PostgreSQL

▌自社システム/PKGに組み込んで活用する

まずはここからが多い。無償で使えて、商用的な自由度も高いDB

▌サポートとして技術力を提供する

自社で使って構築したノウハウを基に専門部隊を結成

社内、グループ会社のみサポートする部隊か、社外にもサポートを提供するかでわかれる

▌改造して新たな製品として提供する

独自に付加価値をつけて、新たにライセンス製品として販売

DB本体の場合と、標準のPostgreSQLにアドオンする周辺ツールの場合がある

Page 9: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

9

NECの場合

サポートサービス、PKG組み込み、対応製品、周辺ツールを展開

© NEC Corporation 2018

NEC Cloud PaaSデータベースサービス

透過的暗号化

クラスタリング

DBaaS

統合監視

TDE for PostgreSQL

運用保守から導入/移行支援まで対応

13年間、のべ12000台500PJを支援してきました

サポートサービス

Page 10: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

10

PostgreSQL のコミュニティ

▌コミュニティは大きく分けると3種類

本体の開発を手掛ける、開発コミュニティ

周辺機能/ツールを開発する外部コミュニティ

利用者としてノウハウを共有したり、普及を推進するコミュニティ

© NEC Corporation 2018

Core Team(5名)

Major Contributors(39名)

Contributors(46人)

PostgreSQL本体の開発コミュニティ

pgpool-II

Slony-I

PostGIS

pg_statsinfo

・・・

周辺機能を開発する外部コミュニティ

普及を推進するコミュニティ

日本PostgreSQLユーザ会

Page 11: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

11

コミュニティにはどう関わるのか

まずは利用者として。利用規模が大きくなれば開発/サポート企業になり、バグ報告やレビュアー参加、ゆくゆくはContributorsの輩出も

▌ユーザコミュニティに参加して、普及を盛り上げる

勉強会活動から、JPUG、PGEConsまで

▌自社製品、システムへの利用やサポートでバグを発見し報告する。または、レビューに参加する

▌自社向けに改造した機能や欲しいと思った機能を周辺ツールとして公開する

OSSで公開すると大きな貢献に⇒NECはTDEforPGを公開し、別途有償版でマネタイズ

内部構造に詳しくなり、コミュニティと議論できる人やContributorsを輩出すれば、要望機能を本体に取り込めるかも

Transparent Data Encryption for

PostgreSQL

2015年GitHubで公開

JPUGカンファレンス

© NEC Corporation 2018

Page 12: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

12

NECはPGECons結成にも関わりました

2012年発足時から理事企業(運営委員長を担当)として参加PostgreSQLのエンタープライズ利用に貢献

© NEC Corporation 2018

PGECons 検索

Page 13: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

2. NECの対応経験から語る、PostgreSQLを活用する上での課題への対処

Page 14: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

14

PostgreSQLへの取り組みを始めるなら

ノウハウをどうやって身に着けるか

▌弊社の場合は、問い合わせ受ける⇒該当箇所のソースを見る、という地道な取り組みからスタートしました

まずは問題のありそうなログを確認。そのログをもとにソースを検索したり、関連する動作の流れをおいかけたり・・・

ソースを読むならIDEなどのデバッガを使ってステップを追っていく

▌今は技術書だったりWebの情報が結構あります

▌Webで検索しても出てこない場合はトライ&エラーの世界

PostgreSQLで〇〇ってできるの? ⇒ VMや実機で検証確認

© NEC Corporation 2018

Page 15: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

15

ノウハウ習得 技術情報は比較的容易に入手可能

一般的な書籍やWebサイトの情報でかなりの技術情報が手に入ります

▌技術書(例)内部構造から学ぶPostgreSQL 設計・運用計画の鉄則

PostgreSQL 全機能バイブル

▌Webサイト

PGECons技術部会 成果物総索引⇒ https://www.pgecons.org/works_index/

slide shareによる勉強会/講演会 資料⇒ slide share内の検索で1000件超!

© NEC Corporation 2018

Page 16: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

16

DBとして求められるノウハウは基本的に変わらない

全体の設計から構築までの検討項目と流れは他のRDBMSと共通

© NEC Corporation 2018

© NEC Corporation 2018

論理設計(テーブル設計)

物理設計(ストレージ等)

SQL設計

パラメタチューニング

インフラ選定バックアップ・リストア

可用性構成

運用設計 DB監視

Page 17: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

17

トラブルに遭遇したら

▌問題が発生したタイミングのログを確認

設定によっては十分な情報が出てないこともそうなるとprefixやログレベルを変えて再現待ち、また再現評価することに

ERROR以上のログが出ていれ原因も特定しやすいが、そうでなければ統計情報(ロックの状況)やOSリソースなども併せて確認する必要が生じる

▌近年は原因がDB側でない場合がほとんど発生しやすいトラブルのパターン、疑うポイントは他のRDBMSと一緒

HWのスペック不足(VMで起こりがち)でディスクI/Oが遅延

AP側の作りの問題。トランザクションを閉じていないとか

▌PostgreSQL固有の問題があるとしたら、他のRDBMSのノウハウで取り組み、仕様差にハマることがある(後ほど紹介)

© NEC Corporation 2018

Page 18: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

18

ログの出力設定は重要

トラブル時の命綱。prefixとローテーションの設定を必ず見直すこと

▌何をログに出すかを、log_line_prefixの値で設定最低限、以下の設定を推奨

▌9.6以前はデフォルト値は“何もなし”だった

つまりメッセージしか出なかった。時刻すら不明…

10でようやく初期値が設定され、時刻とプロセスIDが最低限出るようになったlog_line_prefix = ‘ -> '%m [%p] ’

▌ローテーションの設定については以下の設定値でコントロールする

log_filename = ‘postgresql-%d.log‘ ⇒ %dを推奨。日付単位で生成、ひと月ごとに上書き

log_rotation_age / log_rotation_size ⇒ 切り替えの契機を時間とサイズで指定。ポリシーによる

log_line_prefix = '[%m, %d, %u, %p, %x]'

%m(日付時刻ミリ秒)%d(データベース名)%u(ユーザ名)%p(プロセスID)%x(トランザクションID)

© NEC Corporation 2018

Page 19: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

19

NECのPostgreSQLサポートで検討/対処してきた課題

1. 本体側のバグを発見した場合の修正段取り

ソースレベルで調査した結果、本体のバグであると判明。修正対応はどうすべきか

2. 各バージョンのサポート期間の取り決め

毎年メジャーバージョンがあがっていくが、古いものはどこまでサポートすべきか

出たばかりのバージョンはいつからサポートするか

3. サポート対象とするPostgreSQLプロダクトの範囲

本体機能以外のEXTENSIONとなる部分や、外部コミュニティの周辺ツールまで含めると膨大な数になるがどこまでサポートすべきか

4. 商用RDBMSからの移行のご相談

相談を多く受けるが、どのようにサポートしていくか

© NEC Corporation 2018

Page 20: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

20

1. バグを見つけた場合 コミュニティの修正段取り

▌バグを発見したらまずはコミュニティに報告 ⇒ [email protected]

詳細な原因がわからなくても、『ドキュメントの仕様と挙動が異なる』などでよい

▌コミュニティが確認し、修正イメージも定まればソースへのコミットが行われるソースコード内の該当箇所や、修正イメージもつけるとその通りにコミットされることも

▌修正後のソースを適用させるには、次期リビジョンを待つか自力でビルドリビジョンアップは3か月に一回定期的に行われる(2月、5月、8月、11月)

▌バグレポートは英語必須だが、コミットログに報告者の名前が載る!

↑修正イメージも提案し採用されると”fixed”もつく

© NEC Corporation 2018

Page 21: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

21

1. バグを見つけた場合 NECではどうするか

報告後、コミュニティの修正を待つ。独自パッチは作成しない

▌報告からどれくらいで修正されるのか?

早ければ即日。すぐに原因がわかったり、修正イメージもつけていると早い

内容が改善要望に近かったり、修正影響が大きいなどの場合は修正見送りや、次期メジャーバージョンに持ち越されることも

▌報告しても修正が行われない場合はどうするか

独自パッチを作って欲しい、と言われることもあるが、NECではソースの該当箇所と修正イメージがわかっている場合でもパッチの作成と適用は実施しない

© NEC Corporation 2018

Ver 9.5 Ver 9.6

独自パッチは事実上のフォークとなってしまう Ver 9.5-nec

×何らかの齟齬が

生じうる

Page 22: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

22

NECのバグ報告と修正適用事例

▌NECのサポートメンバがメモリリークのバグを報告PostgreSQL 9.1.9で発見し、9.1.10のリリースで他のメジャーバージョンと共に修正

▌PostgreSQLを組み込んだ自社製PKG製品の開発支援中に発見一部の評価結果に不審な点があり、デバッガで再現評価を重ねメモリリークであると断定

ソース上の修正箇所と修正イメージを策定(然るべき箇所でpfreeを実施させる)

▌コミュニティへの報告を実施([email protected]へメール)半日でコアチームメンバ(Tom Lane)が、報告した修正イメージ通りにコミットを実施

次期Verのリリースノートに報告者の名前が掲載された

https://www.postgresql.jp/document/9.3/html/release-9-1-10.html

© NEC Corporation 2018

Page 23: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

23

2. 各バージョンのサポート期間について NECの場合

コミュニティの公式サポートは5年間で、そこから先は各社の裁量

▌開発コミュニティは5年間のサポートを表明している

5年目以降はリビジョンアップが行われなくなり、パッチの適用が望めなくなる

NECでは以降3年間はそのままサポート可能、リリースから8年間をサポート期間としている

▌新しいメジャーバージョンの利用はX.3あたりを推奨とし、サポート開始

11であれば11.3(5月を予定)から。リリースからすぐは、修正が多く入りやすいため

© NEC Corporation 2018

NECで継続サポート

5年間

NEC+コミュニティのサポート

3年間

コミュニティ正式リリース

NECサポート開始

コミュニティサポート終了

NECサポート終了

Page 24: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

24

3. サポート対象の範囲 NECの場合

本体の開発コミュニティが提供する標準機能とAPIをサポート範囲に設定

© NEC Corporation 2018

PostgreSQL標準機能

postgresサーバ標準ツール

(psql、pg_dump 等)

外部API (※1)

JDBCドライバ

ODBCドライバ(psqlODBC)

contribパッケージ(pgcrypto、dblink等)

libpqライブラリ

ecpgプリコンパイラ

.NET Frameworkデータプロバイダ(Npgsql)

PHP PostgreSQL拡張モジュール

NECでは本体の標準機能と、一部のツールのみをサポート

pgpool-II PostGIS その他pgAdmin

pg_hint_plan pg_dbms_stats pg_statsinfo pg_bigm

その他の独自開発プロジェクトのツールは個別に相談を受けて対応

サポート対象外

個別に応相談

拡張版DB製品

クラウド/DBaaS

Page 25: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

25

3. サポート対象の範囲 NECの場合

2018年度より、特に人気の4種類をサポートメニューに追加

© NEC Corporation 2018

PostgreSQL標準機能

postgresサーバ標準ツール

(psql、pg_dump 等)

外部API (※1)

JDBCドライバ

ODBCドライバ(psqlODBC)

contribパッケージ(pgcrypto、dblink等)

libpqライブラリ

ecpgプリコンパイラ

.NET Frameworkデータプロバイダ(Npgsql)

PHP PostgreSQL拡張モジュール

NECでは本体の標準機能と、一部のツールのみをサポート

pgpool-II PostGIS その他pgAdmin

pg_hint_plan pg_dbms_stats pg_statsinfo pg_bigm

その他の独自開発プロジェクトのツールは個別に相談を受けて対応

サポート対象外

個別に応相談

拡張版DB製品

クラウド/DBaaS

Enterprise Suppot(2018年提供開始)

で4種類まとめてサポート

Page 26: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

26

特に引き合いの多かったツールを標準メニューに

周辺ツールでも特に相談/採用が多かったのが以下4種類

▌pg_hint_plan

PostgreSQLにヒント句にあたる機能を追加できる他DBからの移行時、元々使っていた場合に必要とされる

▌pg_dbms_stats

統計情報を固定化する。実行計画の急な変動を防ぎたいが、hint_planとヒント句を仕込むことが難しい場合にこちらで代替されるケースがある

▌pg_stats_info

統計情報を定期的にスナップショットで取得、保存し、変動を確認できる性能面の監視ツールとして、性能劣化の予兆を把握するために採用される

▌pg_bigm

日本語の全文検索が可能となる。全文検索が要件の場合必須に

© NEC Corporation 2018

Page 27: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

27

4. 商用RDBMSからの移行のご相談

ライセンスの条件変更や、クラウド/SaaSの普及タイミングなどが重なりPostgreSQLへの移行/採用相談が急増

▌移行の相談を数多く受ける

導入中のDB全てというパターンまで検討

成功に導いたものも断念したものもあり、結果として断念の方が多数

▌達成できないケースの多くはコスト低減のみが目的の場合

多くのケースで移行コストがかさむ試算となり、そのまま使い続けた方が安い、となった

▌移行の目的設定と実施可否の見極めを重要視し、事前調査とアセスメントから支援するサポートを提供している

© NEC Corporation 2018

RDBMS PostgreSQL

Page 28: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

28

コスト低減のみが目的の場合の注意点

▌PostgreSQLでも保守費は必要

ライセンス費は不要だが、業務システムとして使う場合保守サポートとその分の費用はコストとして積む必要がある

▌思っているよりも移行コストはかかる

事前の調査/検討コスト、APの改修コスト、評価コスト、技術者育成コスト、etc…

移行元DB固有の関数やストアドプロシージャの利用が多い程、改修コストがかかる

© NEC Corporation 2018

商用ライセンスA PostgreSQL 商用ライセンスB

実際は…

移行コスト

トータルコストではより費用がかかる結果に!

商用ライセンスA PostgreSQL 商用ライセンスB

商用ライセンス費がA⇒Bとなるケース

5年間の運用費試算(保守込み)

Page 29: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

29

移行支援でのトラブル事例

▌ストアドプロシージャも専用関数もなく、最も楽な移行ケースとして着手⇒が、移行後の評価で、特定の処理の実行結果が異なってしまう

▌調べていくと、レコードの見え方やトランザクションの挙動の違いなど複数の条件の違いでエラーになっていた

さらに、PostgreSQLはトランザクションの途中でエラーになるとロールバックしかできなくなる⇒詳細は次のスライドで解説

▌このような『細かな仕様差』が潜んでおりトラブルとなる

評価しなければわからない、気づけない場合が多いそのため移行にあたっては、全評価を推奨

© NEC Corporation 2018

Page 30: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

30

トランザクションの挙動でPostgreSQLだとエラーになったケース

▌ idにユニーク制約のあるレコードに、2つのトランザクションが同時にDELETE⇒INSERTする場合の挙動を考える

© NEC Corporation 2018

TR-A

開始

DELETE id=1

INSERT (1,zzz)

COMMIT

再開

開始

DELETE id=1

COMMIT

開始

DELETE id=1

INSERT (1,zzz)

ROLLBACK

再開

<<ロック待ち>>

<<DELETE 1件>>

<<ロック待ち>>

<<DELETE 0件>>

<<DUPKEY>>

TR-B TR-A TR-B

トランザクションの再開時に、その時点のレコードの状態を参照できる。TR-AのINSERTが反映されたものを見れる

トランザクションの再開示に、中断された時点の状態で参照される。TR-AのINSERTは見えておらず、結果として重複キーエラーとなる

商用DB PostgreSQL

開始

DELETE id=1

INSERT (1,aaa)

COMMIT

この時点の状態を参照

INSERT (1,aaa)

この時点を参照できる

エラーが発生すると強制ロールバックに

Page 31: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

3. ITベンダ視点で見たPostgreSQL

Page 32: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

32

NEC案件で見た、PostgreSQLの対応領域

業種・OS・環境に依存することなく幅広く浸透している

© NEC Corporation 2018

医療

金融

流通

製造

通信

パブリックPostgreSQL

既にどの業種/業界でも使われており、向き/不向きも得意/不得意もないと言える

Page 33: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

33

商用RDBMSと比較した場合の品質は

毎年のメジャーアップデートで機能も充実。十分遜色ないレベルに到達

▌VACUUMについても、小~中規模では恐れることはない

基本的にAUTO VACUUMに任せておける

一テーブルに大量のデータが入る設計だと、VACUUMの負荷が無視できなくなるので設計を考慮する

▌年一回のバージョンアップによる機能拡張は活発大規模/エンタープライズ向け機能が次々実装されている

パラレルクエリ(9.6から。まだまだこれからだが確実に進歩中)

パーティショニング(10と11で大幅に使い勝手が向上。商用レベルに)

▌高MC性が求められる場合や、高負荷なOLAP用途でのDBとして用いる場合は商用RDBMSの上位Editionに軍配があがる

© NEC Corporation 2018

Page 34: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

34

ITベンダとして見たPostgreSQLの評価

© NEC Corporation 2018

商用利用しやすいOSSライセンス

技術・ナレッジが成熟化してきている(技術者の増加)

安定性・性能・運用性は十分に強化されている

業種/領域を選ばず、幅広い分野で実績が積みあがっている

Page 35: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

35

最近のトレンドはクラウドでの活用

商用DBのライセンス体系変更と、クラウド/SaaS人気のダブル追い風

▌仮想基盤で使うならまずPostgreSQLに

仮想基盤で検討されるDBの第一候補となり、クラウド、SaaSの普及と合致し特需の状態

▌PaaS型のPostgreSQL基盤が人気

オンプレならではの苦労を省ける

気を遣うHA構成、バックアップリカバリを安心して任せられる

▌サポートベンダとしてPaaSへのサポートも検討中

© NEC Corporation 2018

AzureAWS

Page 36: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

4. NECのソリューションの紹介

Page 37: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

37

PostgreSQLサポートサービス

DB移行や新規構築など、導入前のご相談はOSSプロフェッショナルサポートを、導入後の運用保守はPostgreSQL保守サポートをご利用下さい

▌OSSプロフェッショナルサポートサービス

お客様の要望に応じて、導入前~導入までの設計、構築など幅広く支援可能

プロジェクト毎に見積もり、個別対応で支援

▌PostgreSQL保守サポートサービス

PostgreSQL導入後の運用を支援

他のソフトウェア製品サポートと同様に、PPサポートサービス、PPサポートパックとして定額メニューでサービスを提供

© NEC Corporation 2018

システム導入前 ~ 導入

事前検証システム設計

システムチューニン

システム構築/評価

OSSプロフェッショナルサービス構築サービス

PostgreSQL保守サポートサービス

作業フェーズ

NECが提供するサービス

システム導入後

運用支援

ご要望に応じて個別対応

サーバ台数に応じた固定価格

Page 38: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

38

他DBからの移行におけるプロフェッショナルサポートの場合

© NEC Corporation 2018

例としてOracleからPostgreSQLへの移行を実施するPJの場合、プロフェッショナルサポートでは以下のような作業内容で支援いたします

PJフェーズと支援概要 NECサポート支援内容 PJメンバ実施作業

移行準備期間(レクチャーと現行環境ヒアリング)

PostgreSQLの概要と、Oracleからの移行ポイントを解説(直接打ち合わせ)

Oracle利用状況ヒアリング、検討ポイントの策定

PJメンバ/エンジニアの打ち合わせ対応

現行システムのOracle利用状況など、ヒアリングに対して調査/回答

移行実施期間(バックエンド問い合わせ対応)

メールベースによる問い合わせ対応(課題管理表のやりとりなど)

電話会議または対面による打ち合わせ(月1~2回など)

APの調査/改修(ソースコード/SQL)

PostgerSQL運用手順の策定(HA構成やバックアップなど)

バックエンドによる支援が前提で、システムの中身を見ての調査や課題点の発見はPJ側に実施頂き、発見された課題に対する対応策の調査/策定を支援いたします

Page 39: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

39

PostgreSQLで透過的暗号化機能を実現

▌Transparent Data Encryption for PostgreSQL

PostgreSQLに透過的暗号化機能を付与する製品です

2015年にOSSとして公開し、NECによるサポートと付加機能をセットにした有償版を別途展開しています

2018年にV1.2をリリースし、暗号化機能の強化と動作環境の拡充を実施しました

© NEC Corporation 2018

管理者

暗号化

復号

データベース内データの漏えいを

防止

A123日電太郎

解読不可

暗号化列をテーブル定義で簡単指定

利用者

暗号鍵を用いた接続後は従来通りの

運用が可能

Transparent Data Encryption for PostgreSQL

PostgreSQL

Page 40: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

40

無償のOSS版と商用版から選択が可能

▌基本的な機能が利用可能なFree Editionと、強化された暗号化機能に保守サポートを含むEnterprise Editionを展開しています

▌Enterprise Editionはサブスクリプションライセンス(1年更新)での提供となります

© NEC Corporation 2018

• GPLライセンスで利用可能

• 2種類のデータ型を暗号化可能(TEXT、BYTEA)

• GitHubで公開中

• 商用版へのアップグレードが可能

Free Edition

(OSS版)

• PostgreSQL本体も含めた保守サポートを提供

• 暗号化データ型を追加(NUMERIC,TIMESTAMP,INTEGER)

• 複数バージョンの暗号鍵に対応

• AWS KMSを利用した鍵管理(Linux版のみ)

• アプリケーション改修が不要な簡易動作モードを選択可能

Enterprise

Edition

(商用版)の強化項目

Page 41: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

41

各ソリューションの関連Webページ

▌PostgreSQLサポートサービスhttps://jpn.nec.com/oss/middle_support/postgresql/index.html

▌Transparent Data Encryption for PostgreSQL Free Editionhttps://github.com/nec-postgres/tdeforpg/

▌Transparent Data Encryption for PostgreSQL Enterprise Editionhttps://jpn.nec.com/tdeforpg/index.html

© NEC Corporation 2018

Page 42: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

5. まとめ

Page 43: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する

43

まとめ

今こそPostgreSQLの時代です。共に盛り上げ磨いていきましょう

▌ビジネスとしての関わり方は色々ありますが、何よりライセンス的に商用利用が簡単です

▌コミュニティへの関わり方も色々ありますまずはノウハウ習得も兼ねてユーザコミュニティや勉強会からお気軽に

▌DBとし成熟し、確実にシェアは伸びつつあります今後はクラウドでの導入活用がますます進むと思います

© NEC Corporation 2018

Page 44: ITベンダから見たPostgreSQL - PGConf ASIA · 勉強会活動から、JPUG、PGEConsまで 自社製品、システムへの利用やサポートで バグを発見し報告する。または、レビューに参加する