MEGAZONEブログ
AWS open source strategy and contributions for PostgreSQL
AWSのオープンソース戦略とPostgreSQLへの貢献
Pulisher : AI & Data Analytics Center チョ・ミレ
Description : PostgreSQLを使うAWSの一般的なオープンソース戦略とは何か、そしてPostgreSQLプロジェクトをサポートする方法を紹介するセッション
はじめに
業務中、RDS、Redshiftはいつも使うので、DB関連のセッションを一つ必ず受講したいと思いました。 その中で、AWS Redshiftのエンジンであり、企業で最も人気のあるRDBの中でPostgresqlを扱っているので、申請しました。 今回の課題で、なぜPostgresqlが普遍的に使われるRDSになったのかがわかると思い、申請しました。
セッションの概要紹介
PostgreSQLは、Amazon RDSおよびAmazon Auroraで利用できる人気のあるオープンソースのリレーショナルデータベースです。 このセッションでは、PostgreSQLを使用するAWSの一般的なオープンソース戦略、最近のPostgreSQLリリースの機能、今後のリリースとロードマップ、PostGIS、pgvector、pg_tleなどの拡張機能など、AWSが関連するPostgreSQLプロジェクトをどのようにサポートしているかについて説明します。
Postgresqlのバージョン別 AWSの貢献度
AWSは、PostgreSQL 16の機能において、PostgreSQLに専念する専任のエンジニアを投入し、PostgreSQLのバージョンの中で最も多くのfeature contributionを生み出しました。図では、バージョン16に貢献した企業の割合を確認することができます。
オープンソース – Postgresqlの構成
- PotstgresqlはDrivers, Extensions , Governanceを備えています。
- Postgresに対するデータガバナンスを設けることで、組織はデータが業界標準に従って処理されていることを保証することができます。 また、データガバナンスは、すべての変更と活動に対する正確な記録を維持してデータベース記録を文書化し、エラーが発生した場合、組織に責任を問うことができます。
- extensionsは拡張モジュールAPIを通じてDBMS機能以外にも様々な機能を提供します。
オープンソース – PostgresqlのGovernanceの構成
- NPOs , User groups Committees
- Postgresのデータガバナンスを確立することで、組織はデータが業界標準に従って処理されていることを保証することができます。 また、データガバナンスは、すべての変更とアクティビティの正確な記録を維持することで、データベースの記録を文書化し、エラーが発生した場合に組織に責任を問うことができます。
Postgresqlコミュニティへの貢献活動方針
PostgreSQLのような確立されたオープンソースコミュニティに貢献するためには、既存のプロセス内で学び、信頼を得る必要があり、長期的に検討する作業が好循環する必要があります。
AWSのPostgreSQLへの取り組み方法
- Performance : logical replication適用時、大容量transactionの発生をparallelに適用するようにし、vacuum性能を5倍以上適用しました。
- Operability, Security : logical replicationの性能改善、Vacuumの役割を定義しました。
PostgreSQL 16 Coreの機能
- standby DBで論理的な複製を許可
- 論理的レプリケーションsubscribersが大規模なトランザクションを並列に適用できるように許可
- 待機状態で論理的なデコードを許可
- 論理的デコード発行者が変更を送信する方法とサブスクライバがこれを適用する方法を制御するサーバー変数を追加します。
pg_Vector
- 機械学習(ML)モデルのエンベデッドをデータベースに保存し、効率的な類似性検索を行うことができます。 pgvectorは、Amazon Bedrock、Amazon SageMakerなどでエンベデッドを保存し、検索することができます。
- Aurora PostgreSQLでpgvectorを使用すると、ML対応アプリケーションのためのデータベースを簡単に設定、運用、拡張することができます。
- eコマース、メディア、医療アプリケーションなどにML機能を構築して、カタログ内の類似アイテムを検索することができます。例えば、ストリーミングサービスでpgvectorを使用すると、先ほど視聴したものと類似した映画のおすすめリストを提供することができます。
セッションを終えて
人気のあるオープンソースは、多くの開発者の貢献によって作られたプログラムであり、無料で使えるので、多くの人が愛用し、好循環して使われるプログラムだと思いました。 今回のセッションを通じて、具体的にオープンソースを構成するbackgroundsについてどのようなものがあるのか、構成要素と概念を整理することができました。実際、DBバージョンが昇格されても、新規機能について関心を持って見てこなかったようです。
しかし、オープンソースに参加する多くの企業や個人のcontributionを思い出してみると、どんな要件の流れでバージョンが上がって機能が改善されたのか、あるいは追加が行われたのか気になりました。 そのため、自然と新規機能をdeep diveするのが楽になり、興味を持ちました。
バージョンアップデートによって反映される新規機能、修正補完機能を通じて、現在の技術で要求されるどんな流れを把握するのに今後も役に立ちそうです。