PostgreSQLの主要コントリビューター「EDB」が語る、クラウドネイティブデータベースの現状「Kubernetes Operator」を活用した「Postgres As a Service」を提供

「クラウドネイティブ」という言葉がなじんだ今、市場に登場した新たなデータベースやデータベースを支えるプラットフォームにまつわる情報を紹介していきます。今回はPostgreSQLのコントリビューターが数多く所属するEDBのCROとCPEOの2人に話を伺いました。

» 2023年09月19日 05時00分 公開
[小林隆浩@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 「クラウドネイティブ」という言葉がなじんだ今、市場に登場した新たなデータベースやデータベースを支えるプラットフォームにまつわる情報を紹介していきます。前回は、国内で行われたTiDBの年次イベントの模様をお届けしました。

 2023年後半に向けてデータベースに関するイベントがオフラインで行われる予定もあります。主催者や登壇者と直接会話できるリアルイベントは、皆さんが日々感じていることや問題を議論できる場でもあります。新たなモチベーションにつながることもあるので、ぜひ参加してみてください。

 今回は、PostgreSQLの開発をけん引するコントリビューターが数多く所属するEDBのCRO(収益責任者)とCPEO(プロダクトエンジニアリング責任者)の2人に話を伺いました。EDBがクラウドネイティブなデータベースの提供に向けて何に取り組んでいるのか、EDBが提供している製品で個人的に気になる点を伺いました。

EDBとは?

 EDBは、PostgreSQLのコミュニティーで長くにわたってコントリビューションを続けてきた企業で、世界各国の企業や政府機関にPostgreSQLの利用に関する高度な専門サービスやサポートを提供しています。EDBはオープンソースとしてのPostgreSQLに対する機能開発だけにとどまらず、「エンタープライズレベル」の強力なデータベースである「EDB Postgres Advanced Server」(EPAS)を独自に提供しています。EPASは次のような特徴を持ちます。

  • Oracle Databaseとの強力な互換性
  • ミッションクリティカルなシステムに求められる(PostgreSQL以上の)高い可用性

 本インタビューの前提知識として、筆者が注目しているEDBの製品、サービスを2つ紹介します。

EDB BigAnimal

 BigAnimalは、EDBが提供するPostgres-As-a-Serviceです。主要なクラウドベンダーで利用できるフルマネージドのデータベースサービスで、データベースの構築、管理、拡張の作業を支援します。2021年に正式公開(GA)された同サービスは、顧客が他のデータベースからPostgreSQLベースのサービスへ移行する際の大きな手助けになります。

 他のデータベースとの大きな違いとして、BigAnimalではデータベースエンジンとしてOSS(オープンソースソフトウェア)版のPostgreSQL以外に、EPASを利用できます。EPASのオプション機能として、Extreme-high-availabilityと呼ばれる高い可用性オプションを選択可能で、地理分散型のデータベース配置も可能です。またデプロイ時のアカウント選択が可能であり、幅広い制御や独自のセキュリティを必要とする場合はユーザー自身のクラウドアカウントで、管理を容易にかつ迅速にサービスを使い始めたい際にはBigAnimalのクラウドアカウントでサービスをデプロイできます。

 2023年8月時点でのBigAnimalの提供形態は、下表の通りです。

ディストリビューション 選択可能なPostgreSQLバージョン クラスタの可用性 デプロイアカウント
PostgreSQL 11-15 Single / High availability ユーザー
PostgreSQL 12-15 Single / High availability BigAnimal
EDB Postgres Advanced Server 12-15 Single / High availability ユーザー
EDB Postgres Advanced Server 14-15 Single / High availability BigAnimal
EDB Postgres Advanced Server 14-15 Extreme high availability ユーザー
EDB Postgres Advanced Server 14-15 Extreme high availability BigAnimal

 BigAnimalには後述するEDBのさまざまなコンポーネントが効果的に組み込まれています。

EDB Postgres Distributed

 EDB Postgres Distributedは、99.999%(ファイブナイン)の可用性を実現するアドオンで、オンプレミスや上記のBigAnimalで利用できます。

 以前からPostgreSQLを利用しているなら「BDR(Bi-Directional Replication)」という用語を聞いたことがあるかもしれません。BDRは双方向にロジカルレプリケーションを行うことでマルチプライマリーのPostgreSQLクラスタを実現する技術でしたが、EDB Postgres DistributedのAlways OnアーキテクチャはBDRPGD-Proxyの2つのキーコンポーネントから構成されています。

 EDB Postgres Distributedは、ユーザーが必要なレベルに可用性を調整できるのが特徴です。単一リージョン内の1つのデータセンター障害でもサービス継続が可能なように、3つのデータセンターにまたがる形でデータベースクラスタを構成することもできます。これは他のクラウドサービスでは「トリプルAZ(アベイラビリティーゾーン)」と呼ばれる構成になります。

 これでも十分に高い可用性を実現していますが、さらに複数リージョンに分散したマルチプライマリーなデータベースクラスタを構成することも可能です。下図は、3つのリージョンに分散した構成のイメージです。

複数リージョンのマルチプライマリー構成 複数リージョンのマルチプライマリー構成(EDB Postgres Distributed Always On Architecturesより抜粋)

 イメージでは、各AZに配置されたアプリケーションはローカルなPGD-Proxyを指していますが、Proxyはそれぞれのリージョンのデータベースインスタンス(Data A1またはB1)に接続され、リージョン間は双方向のレプリケーションが行われています。

 EDB Postgres Distributedではデータのレプリカ全般ではなく、グローバルシーケンス生成や分散DDLなど一部の操作でRaftを用いたコンセンサスを利用しています。そのため、可用性を保つために必要なノード数は3以上の奇数となる点は、過去の連載で紹介したNewSQLと同様です。Region C(Optional)にはWitnessというノードがあり、これはデータのレプリカを持たずにRaftコンセンサスに参加します。このWitnessにより、Region Aの障害時にもRegion Bのデータベースが稼働し続けられるのです。

 分散SQLデータベースで使われる技術を取り込んで発展したEDB Postgres Distributedは、オンプレミスでもクラウドでもユーザーが求める幅広い可用性レベルに対応しています。上述のExtreme high availabilityという高可用性構成にもEDB Postgres Distributedの機能が生かされています。

EDBが語る、クラウドネイティブなデータベースへの取り組み

 日本の顧客向けラウンドテーブルに来日した、リーダーシップチームのSean Dolan氏(Chief Revenue Officer/最高収益責任者)とJozef de Vries氏(Chief Product Engineering Officer/最高プロダクトエンジニアリング責任者)に、EDBを取り巻く状況やサービス展開の裏側にある考え方を伺いました。

BigAnimalの特徴と利用状況について

小林 まず、EDBのBigAnimalはどのような顧客に利用されているでしょうか。EPASとPostgreSQLが選択できるとのことですが、利用の割合はどうなっているのでしょうか。

EDB BigAnimalは、Oracle Databaseとの互換性を期待してEPASを選択されることが多い印象です。割合としてはEPASが60〜70%というところでしょうか。もちろん、通常のPostgreSQLをBigAnimalでご利用になる顧客もいて、彼らはシステムをクラウド移行するに当たってポータビリティーを重視しています。ISV(独立ソフトウェアベンダー)などがサービスを提供する際に、特定のクラウドベンダーに依存しない構成とするためBigAnimalを利用するケースもあります。

小林 そうした利用ケースは日本と海外で状況が異なりますか。

EDB はい、少し異なっていると思います。海外では上記のようにポータビリティーやマルチクラウドということを意識するお客さまが増えている印象ですが、日本ではクラウドの移行検討を始めた段階のお客さまも多くいらっしゃるようです。BigAnimal自体が日本で提供を開始したのが2023年なので、これから皆さまのお話を伺えればと思っています

小林 BigAnimalにはExtreme-high-availabilityという、非常に高い可用性のオプションがありますね。こちらはデータベースの障害時には非常に重要な指標であるRTO(障害復旧に要する時間の目安)は、どれくらいなのでしょうか。

EDB Extreme-high-availability利用時のRTOはほぼゼロです。通常のデータベースの高可用性構成はアクティブ-スタンバイで、プライマリーの切り替え後にアプリケーションの再接続時間などがかかります。Extreme-high-availabilityはアクティブ-アクティブの構成なので、そうした待機時間もありません。マルチリージョンでも同様に非常に高い可用性を備えた構成が可能です。

小林 BigAnimalではEDB Postgres Distributedを用いて、そのような高い可用性を実現しているかと思いますが、EDB Postgres Distributedがアクティブ-アクティブの構成で、メンテナンス時などのダウンタイムも避けることができるのはなぜでしょうか。

EDB EDB Postgres Distributedは、PostgreSQLのロジカルレプリケーションをベースに開発されています。前提として、複数のデータベースノードから構成されるクラスタの中に、2つのバージョンの製品が共存しても問題ない仕組みとなっています。ローリングアップデートの方式で1ノードずつバージョンアップをしていき、中では古いバージョン(例えばPostgreSQL v14)でクラスタが動いています。全てのノードでアップデートが終わると、新しいバージョン(PostgreSQL v15など)として動くわけです。アプリケーションから見たデータベースとしては、アップデート中も継続して稼働し続けています。

小林 なるほど、そのような仕組みで高い可用性とメンテナンス性を提供しているということですね。

PostgreSQL on Kubernetesへの取り組み

小林 もう一点、PostgreSQLをKubernetes上で動かすという構成も、ぜひ意見を伺わせてください。EDBではマネージドサービスであるBigAnimalの運用に、Kubernetesを利用していますか。

EDB はい、BigAnimalはKubernetes上に構築されており「Kubernetes Operator」を利用しています。

小林 EDBのKubernetes Operatorといえば、EDB Postgres for KubernetesとOSSのCloudNativePGという2つの提供形態があります。これらの違いは何でしょうか。

EDB EDB Postgres for KubernetesとCloudNativePGで、Kubernetes Operatorとしての基本的な機能は変わりません。大きな違いとして、CloudNativePGが扱えるデータベースはPostgreSQLだけだということです。より強力な機能を持つEPASをKubernetes上で動かす場合は、EDB Postgres for Kubernetesを使用する必要があります。前者なら、EDBが提供するエンタープライズ向けの機能(EDB Advanced Storage Packなど)も利用できます。

小林 プロダクショングレードのデータベースをKubernetes上で動かせるのが、EDB Postgres for Kubernetesというわけですね。一方で、CloudNativePGをOSSとして提供しているのは何か理由があるのでしょうか。

EDB 2019年ごろ、Kubernetes上でデータベースを動かすのは、アンチパターンでした。そうした傾向を打破するために、PostgreSQLの開発者を多く抱えるEDBでのベストプラクティスとして、CloudNativePGを提供しています。もちろん、現時点でEDBの豊富な機能全てがKubernetes上で動く状態ではありません。ただ、それらが取り込まれるように開発に投資していますし、今後も継続していきます。

小林 PostgreSQLコミュニティーでのEDBの存在は唯一無二のものですので、今後もKubernetesやクラウドネイティブ技術への取り組み、貢献に期待しています。貴重なお話をありがとうございました。

最後に

 今回はPostgreSQLコミュニティーで多大な貢献を続けているEDBの2人に、マネージドサービスの中身まで踏み込んだ貴重なお話を伺うことができました。

 本連載の他の回でも触れたように、クラウド上で提供するデータベースサービスをKubernetes Operatorで実装する例は増えてきており、EDBの提供しているサービスもその一例となりました。

 NewSQLで見られるコンセンサスアルゴリズムは、PostgreSQLなどのオープンソースデータベースでも採用されている事例があります。今回取り上げたEDB Postgres Distributedはこの好例であり、また別の回でも同様のデータベースを紹介したいと考えています。次回もお楽しみに。

筆者紹介

小林隆浩

さまざまなプロジェクトで基盤担当のエンジニアとして経験を積む。中でもデータベースに関する設計、運用、トラブルシューティングなどの業務で実績があり、得意とするDBMSはOracle DatabaseおよびPostgreSQL。データベースや基盤技術に関するコミュニティーに積極的に参加し、国内外のカンファレンスで登壇実績を持つ。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。