

# Amazon RDS for PostgreSQL で PostgreSQL 拡張機能を使用する
<a name="Appendix.PostgreSQL.CommonDBATasks.Extensions"></a>

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

**注記**  
RDS for PostgreSQL は、DB インスタンスに追加できる `pg_tle` 拡張機能を通じて、Trusted Language Extensions for PostgreSQL をサポートしています。この拡張を使用することで、開発者は安全な環境で独自の PostgreSQL 拡張を作成できるため、セットアップと設定の要件が簡素化されます。`pg_tle` 拡張機能をサポートする RDS for PostgreSQL のバージョンと詳細については、「[Trusted Language Extensions for PostgreSQL を使用した操作](PostgreSQL_trusted_language_extension.md)」を参照してください。

場合によっては、拡張機能をインストールする代わりに、Aurora PostgreSQL DB クラスターのカスタム DB クラスターパラメータグループの `shared_preload_libraries` リストに特定のモジュールを追加することもできます。通常、デフォルトの DB クラスターパラメータグループでは、`pg_stat_statements` のみが読み込まれますが、リストに追加できるモジュールは他にもいくつかあります。例えば、[PostgreSQL pg\_cron エクステンションによるメンテナンスのスケジューリング](PostgreSQL_pg_cron.md) で説明されているように、`pg_cron` モジュールを追加することでスケジュール機能を追加できます。別の例として、`auto_explain` モジュールをロードすることでクエリ実行計画を記録できます。詳細については、AWS ナレッジセンターの「[クエリ実行計画のログ記録](https://aws.amazon.com/premiumsupport/knowledge-center/rds-postgresql-tune-query-performance/#)」をご覧ください。

RDS for PostgreSQL のバージョンによっては、拡張機能をインストールする際に、以下のような `rds_superuser` の権限が必要になる場合があります。
+ RDS for PostgreSQL バージョン 12 以前のバージョンでは、拡張機能をインストールする際に `rds_superuser` の権限が必要となります。
+ RDS for PostgreSQL バージョン 13 以降のバージョンでは、特定のデータベースインスタンスに対する作成権限を持つユーザー (ロール) は、*信頼できる拡張機能*をインストールして使用することができます。信頼できる拡張機能のリストについては、「[PostgreSQL 信頼できるエクステンション](PostgreSQL.Concepts.General.FeatureSupport.Extensions.md#PostgreSQL.Concepts.General.Extensions.Trusted)」を参照してください。

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

`rds_superuser` ロールの詳細については、「[PostgreSQL のロールとアクセス権限について](Appendix.PostgreSQL.CommonDBATasks.Roles.md)」を参照してください。

**Topics**
+ [orafce 拡張機能の関数の使用](Appendix.PostgreSQL.CommonDBATasks.orafce.md)
+ [PostgreSQL での Amazon RDS 委任拡張機能サポートの使用](RDS_delegated_ext.md)
+ [pg\_partman エクステンションによる PostgreSQL パーティションの管理](PostgreSQL_Partitions.md)
+ [pgAudit を使用してデータベースのアクティビティを記録する](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)
+ [PostgreSQL pg\_cron エクステンションによるメンテナンスのスケジューリング](PostgreSQL_pg_cron.md)
+ [pglogical を使用してインスタンス間でデータを同期する](Appendix.PostgreSQL.CommonDBATasks.pglogical.md)
+ [pgactive を使用したアクティブ/アクティブレプリケーションのサポート](Appendix.PostgreSQL.CommonDBATasks.pgactive.md)
+ [pg\_repack 拡張機能を使用して、テーブルやインデックスの膨張を抑制する](Appendix.PostgreSQL.CommonDBATasks.pg_repack.md)
+ [PLV8 拡張機能のアップグレードおよび使用](PostgreSQL.Concepts.General.UpgradingPLv8.md)
+ [PL/Rust を使って Rust 言語で PostgreSQL 関数を記述する](PostgreSQL.Concepts.General.Using.PL_Rust.md)
+ [PostGIS 拡張機能を使用した空間データの管理](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md)