Amazon RDS for PostgreSQL で PostgreSQL 拡張機能を使用する - Amazon Relational Database Service

Amazon RDS for PostgreSQL で PostgreSQL 拡張機能を使用する

PostgreSQL は、さまざまな拡張機能やモジュールをインストールすることで、機能を拡張することができます。例えば、空間データを操作するには、PostGIS 拡張機能をインストールして使用します。詳細については、「PostGIS 拡張機能を使用した空間データの管理」を参照してください。別の例として、非常に大きなテーブルへのデータ入力を改善する場合は、pg_partman 拡張機能を使用したデータのパーティション化を検討できます。詳細については、「pg_partman エクステンションによる PostgreSQL パーティションの管理」を参照してください。

注記

RDS for PostgreSQL 14.5 以降、RDS for PostgreSQL は Trusted Language Extensions for PostgreSQL をサポートしています。この機能は拡張機能 pg_tle として実装され、RDS for PostgreSQL DB インスタンスに追加できます。この拡張を使用することで、開発者は安全な環境で独自の PostgreSQL 拡張を作成できるため、セットアップと設定の要件が簡素化されます。詳細については、「Trusted Language Extensions for PostgreSQL を使用した操作」を参照してください。

場合によっては、拡張機能をインストールする代わりに、Aurora PostgreSQL DB クラスターのカスタム DB クラスターパラメータグループの shared_preload_libraries リストに特定のモジュールを追加することもできます。通常、デフォルトの DB クラスターパラメータグループでは、pg_stat_statements のみが読み込まれますが、リストに追加できるモジュールは他にもいくつかあります。例えば、PostgreSQL pg_cron エクステンションによるメンテナンスのスケジューリング で説明されているように、pg_cron モジュールを追加することでスケジュール機能を追加できます。別の例として、auto_explain モジュールをロードすることでクエリ実行計画を記録できます。詳細については、AWS ナレッジセンターの「クエリ実行計画のログ記録」をご覧ください。

RDS for PostgreSQL のバージョンによっては、拡張機能をインストールする際に、以下のような rds_superuser の権限が必要になる場合があります。

  • RDS for PostgreSQL バージョン 12 以前のバージョンでは、拡張機能をインストールする際に rds_superuser の権限が必要となります。

  • RDS for PostgreSQL バージョン 13 以降のバージョンでは、特定のデータベースインスタンスに対する作成権限を持つユーザー (ロール) は、信頼できる拡張機能をインストールして使用することができます。信頼できる拡張機能のリストについては、「PostgreSQL 信頼できるエクステンション」を参照してください。

また、RDS for PostgreSQL DBインスタンスにインストール可能な拡張機能は、rds.allowed_extensions パラメータにリストアップして、正確に指定することができます。詳細については、「PostgreSQL エクステンションのインストールを制限する」を参照してください。

rds_superuser ロールの詳細については、「PostgreSQL のロールとアクセス権限について」を参照してください。