Amazon RDS for PostgreSQL
Amazon RDS では、PostgreSQL の複数のバージョンを実行する DB インスタンスがサポートされています。利用可能なバージョンのリストについては、「利用可能な PostgreSQL データベースのバージョン」を参照してください。
注記
2022 年 4 月 26 日に、PostgreSQL 9.6 の廃止が予定されています。詳細については、「PostgreSQL バージョン 9.6 の廃止」を参照してください。
DB インスタンス、DB スナップショット、ポイントインタイムの復元とバックアップを作成できます。PostgreSQL を実行する DB インスタンスでは、マルチ AZ 配置、リードレプリカ、プロビジョンド IOPS がサポートされています。これらのインスタンスは、仮想プライベートクラウド (VPC) 内で作成できます。PostgreSQL を実行する DB インスタンスには Secure Socket Layer (SSL) でも接続できます。
DB インスタンスを作成する前に、必ず「Amazon RDS 環境のセットアップ」の手順を完了してください。
スタンダード的な SQL クライアントアプリケーションを使用して、クライアントコンピュータからインスタンスに対してコマンドを実行できます。例えば、pgAdmin (PostgreSQL 用に普及しているオープンソースの管理および開発ツール) や psql (PostgreSQL インストールに含まれるコマンドラインユーティリティ) などのアプリケーションを使用できます。マネージド型サービスエクスペリエンスを提供するために、Amazon RDS では DB インスタンスへのホストアクセスが許可されません。また、アドバンストの特権を必要とする特定のシステムの手順やテーブルへのアクセスも制限されいます。Amazon RDS は、任意のスタンダード SQL クライアントアプリケーションによる、DB インスタンス上のデータベースへのアクセスがサポートされています。Amazon RDS では、Telnet またはセキュアシェル (SSH) を使用しての、DB インスタンスへのダイレクトホストアクセスは許可されません。
Amazon RDS for PostgreSQL は、多くの業界スタンダードに準拠しています。例えば、Amazon RDS for PostgreSQL データベースを使用して、HIPAA 準拠アプリケーションをビルドしたり、医療関連の情報を保存したりできます。これには、AWS との間で締結された事業提携契約 (BAA) に基づく保護されるべき医療情報 (PHI) の保存が含まれます。また、Amazon RDS for PostgreSQL は、Federal Risk and Authorization Management Program (FedRAMP) のセキュリティ要件を満たしています。Amazon RDS for PostgreSQL は、AWS GovCloud (US) リージョンにおいて、FedRAMP Joint Authorization Board (JAB) の Provisional Authority to Operate (P-ATO) として、FedRAMP High ベースラインの認証を受けています。サポートされるコンプライアンススタンダードの詳細については、AWS クラウドコンプライアンス
PostgreSQL データを DB インスタンスにインポートするには、「Amazon RDS の PostgreSQL にデータをインポートする」セクションの説明に従ってください。
トピック
- Amazon RDS for PostgreSQL の一般的な管理タスク
- データベースプレビュー環境の使用
- データベースプレビュー環境の PostgreSQL バージョン 17
- 利用可能な PostgreSQL データベースのバージョン
- サポートされている PostgreSQL 拡張機能バージョン
- Amazon RDS for PostgreSQL でサポートされている PostgreSQL の機能を使用する
- PostgreSQL データベースエンジンを実行する DB インスタンスへの接続
- SSL/TLS を使用して RDS for PostgreSQL への接続を保護する
- Amazon RDS for PostgreSQL で Kerberos 認証を使用する
- アウトバウンドネットワークアクセスでカスタム DNS サーバーを使用する
- Amazon RDS の PostgreSQL DB エンジンのアップグレード
- PostgreSQL DB スナップショットエンジンのバージョンのアップグレード
- Amazon RDS for PostgreSQL でのリードレプリカの使用
- Amazon RDS Optimized Reads による RDS for PostgreSQL のクエリパフォーマンスの向上
- Amazon RDS の PostgreSQL にデータをインポートする
- RDS for PostgreSQL DB インスタンスから Amazon S3 へのデータのエクスポート
- RDS for PostgreSQL DB インスタンスから AWS Lambda 関数を呼び出す
- Amazon RDS for PostgreSQL の一般的な DBA タスク
- RDS for PostgreSQL の待機イベントでのチューニング
- Amazon DevOps Guru のプロアクティブインサイトによる RDS for PostgreSQL のチューニング
- Amazon RDS for PostgreSQL で PostgreSQL 拡張機能を使用する
- Amazon RDS for PostgreSQL でサポートされている外部データラッパーを使用する
- Trusted Language Extensions for PostgreSQL を使用した操作
Amazon RDS for PostgreSQL の一般的な管理タスク
以下に示しているのは、Amazon RDS for PostgreSQL DB インスタンスで実行する一般的な管理タスクと、各タスクの関連ドキュメントへのリンクです。
タスク領域 | 関連資料 |
---|---|
Amazon RDS を初めてセットアップして使う DB インスタンスを作成する前に、いくつかの前提条件を満たしていることを確認してください。例えば、DB インスタンスが作成されると、アクセスを禁止するファイアウォールがデフォルトで設定されます。したがって、DB インスタンスにアクセスするために、IP アドレスとネットワーク設定が正しく指定されたセキュリティグループを作成する必要があります。 |
|
Amazon RDS DB インスタンスを理解する 本稼働用に DB インスタンスを作成する場合、インスタンスクラス、ストレージタイプ、およびプロビジョンド IOPS が Amazon RDS でどのように機能するか理解する必要があります。 |
|
利用可能な PostgreSQL バージョンの検索 Amazon RDS は、PostgreSQL の複数のバージョンをサポートします。 |
|
高可用性およびフェイルオーバーサポートのセットアップ 本稼働 DB インスタンスは、マルチ AZ 配置を使用する必要があります。マルチ AZ 配置は、DB インスタンスの拡張された可用性、データ堅牢性、および耐障害性を提供します。 |
|
Amazon Virtual Private Cloud (VPC) ネットワークについて AWS アカウントにデフォルト VPC がある場合、DB インスタンスがデフォルト VPC 内に自動的に作成されます。場合によっては、アカウントにデフォルトの VPC がないため、VPC に DB インスタンスが必要な場合もあります。このような場合、DB インスタンスを作成する前に VPC とサブネットグループを作成します。 |
|
Amazon RDS PostgreSQL にデータをインポートする Amazon RDS の PostgreSQL DB インスタンスにデータをインポートするには、さまざまなツールを使用できます。 |
|
読み取り専用リードレプリカ (プライマリおよびスタンバイ) のセットアップ RDS for PostgreSQL では、同じ AWS リージョン、および、プライマリインスタンスとは別の AWS リージョンの両方で、リードレプリカがサポートされます。 |
|
セキュリティグループの理解 デフォルトでは、DB インスタンスが作成されると、アクセスを禁止するファイアウォールが設定されます。そのファイアウォールを介してアクセスできるようにするには、DB インスタンスをホストする VPC に関連付けられている VPC セキュリティグループのインバウンドルールを編集します。 |
|
パラメータグループおよび機能のセットアップ DB インスタンスのデフォルトパラメータを変更するには、カスタム DB パラメータグループを作成し、設定をそのパラメータグループに変更します。DB インスタンスを作成する前にこの操作を行うと、インスタンスの作成時にカスタム DB パラメータグループを選択できます。 |
|
PostgreSQL DB インスタンスへの接続 セキュリティグループを作成し、それを DB インスタンスに関連付けると、 |
|
DB インスタンスのバックアップと復元 バックアップが自動的に作成されるように DB インスタンスを設定したり、スナップショットを手動で作成したりできます。そうすることで後で、そのバックアップまたはスナップショットからインスタンスを復元できます。 |
|
DB インスタンスのアクティビティとパフォーマンスのモニタリング CloudWatch Amazon RDS メトリクス、イベント、および拡張モニタリングを使用することで、PostgreSQL DB インスタンスをモニタリングできます。 |
|
PostgreSQL データベースバージョンのアップグレード PostgreSQL DB インスタンスのメジャーバージョンとマイナーバージョンの両方をアップグレードできます。 |
|
ログファイルの操作 PostgreSQL DB インスタンスのログファイルにアクセスできます。 |
|
PostgreSQL DB インスタンスに関するベストプラクティスの理解 Amazon RDS での PostgreSQL の使用に関するいくつかのベストプラクティスが見つかります。 |
RDS for PostgreSQL の重要な機能の理解と使用に役立つ、このガイドの他のセクションのリストは次のとおりです。
データベースプレビュー環境の使用
PostgreSQL コミュニティは、ベータバージョンを含め、新しい PostgreSQL バージョンとエクステンションを絶えずリリースしています。これにより、PostgreSQL ユーザーは新しい PostgreSQL バージョンを早期に試すことができます。PostgreSQL コミュニティのベータリリースプロセスの詳細については、PostgreSQL ドキュメントの「ベータ情報
データベースプレビュー環境の RDS for PostgreSQL DB インスタンスは、機能的に他の RDS for PostgreSQL インスタンスに似ています。ただし、プレビューバージョンは本稼働に使用できません。
次の重要な制約事項に留意してください。
-
すべての DB インスタンスは、作成から 60 日後にバックアップおよびスナップショットとともに削除されます。
-
DB インスタンスは、Amazon VPC サービスに基づく仮想プライベートクラウド (VPC) でのみ作成できます。
-
汎用 SSD およびプロビジョンド IOPS SSD ストレージのみを使用できます。
-
DB インスタンスに関して AWS サポートからヘルプを受けることはできません。代わりに、AWS マネージド Q&A コミュニティ、AWS re:Post
に質問を投稿できます。 -
DB インスタンスのスナップショットを本稼働環境にコピーすることはできません。
プレビューでは、以下のオプションがサポートされています。
-
DB インスタンスは、M6i、R6i、M6g、M5、T3、R6g、および R5 インスタンスタイプのみで作成できます。RDS インスタンスクラスの詳細については、「 DB インスタンスクラス」を参照してください。
-
シングル AZ 配置とマルチ AZ 配置の両方を使用できます。
-
スタンダードの PostgreSQL ダンプおよびロード機能を使用して、データベースをデータベースプレビュー環境にエクスポートしたり、データベースプレビュー環境にインポートしたりできます。
データベースプレビュー環境でサポートされない機能
以下の機能は、データベースプレビュー環境で使用できません。
-
クロスリージョンスナップショットのコピー
-
クロスリージョンリードレプリカ
データベースプレビュー環境での新しい DB インスタンスの作成
プレビュー環境で DB インスタンスを作成するには、次の手順を使用します。
データベースプレビュー環境で新しい DB インスタンスを作成するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[ダッシュボード] を選択します。
-
[Dashboard] (ダッシュボード) ページで、次の図に示すように、[Dashboard] (ダッシュボード) ページの [Database Preview Environment] (データベースプレビュー環境) セクションを見つけます。
また、[データベースプレビュー環境]
に直接移動することもできます。先に進む前に、制限事項を確認して同意する必要があります。 -
RDS for PostgreSQL DB インスタンスを作成するには、任意の Amazon RDS DB インスタンスを作成する場合と同じプロセスに従います。詳細については、DB インスタンスの作成 下の コンソール 手順を参照してください。
RDS API または AWS CLI を使用してデータベースプレビュー環境でインスタンスを作成するには、次のエンドポイントを使用します。
rds-preview.us-east-2.amazonaws.com
データベースプレビュー環境の PostgreSQL バージョン 17
注記
これは Amazon RDS PostgreSQL バージョン 17 のプレビュードキュメントです。このドキュメントは変更される可能性があります。
PostgreSQL バージョン 17 RC1 が Amazon RDS データベースプレビュー環境で利用可能になりました。PostgreSQL バージョン 17 RC1 には、PostgreSQL ドキュメント「PostgreSQL 17 RC1 Released!
データベースプレビュー環境の詳細については、「データベースプレビュー環境の使用」を参照してください。コンソールからプレビュー環境にアクセスするには、https://console.aws.amazon.com/rds-preview/
利用可能な PostgreSQL データベースのバージョン
Amazon RDS では、PostgreSQL の複数のエディションを実行する DB インスタンスがサポートされています。新しい DB インスタンスを作成する際、現在利用可能な PostgreSQL バージョンであればどれでも指定できます。メジャーバージョン (PostgreSQL 14 など) と、指定したメジャーバージョンで利用可能な任意のマイナーバージョンを指定できます。バージョンを指定しない場合、Amazon RDS では、利用可能なバージョン (通常は最新バージョン) がデフォルトで設定されます。マイナーバージョンではなく、メジャーバージョンを指定した場合は、Amazon RDS では、お客様が指定したメジャーバージョンの最新リリースにデフォルトで設定されます。
利用可能なバージョンのリストと、新しく作成された DB インスタンスのデフォルト設定を表示するには、AWS CLI の describe-db-engine-versions
コマンドを使用します。例えば、デフォルトの PostgreSQL エンジンのバージョンを表示するには、次のコマンドを使用します。
aws rds describe-db-engine-versions --default-only --engine postgres
Amazon RDS でサポートされている PostgreSQL バージョンの詳細については、Amazon RDS for PostgreSQL リリースノートを参照してください。
RDS 標準サポート終了日より前に新しいメジャーエンジンバージョンに手動でアップグレードする準備ができていない場合、Amazon RDS は RDS 標準サポート終了日以降にデータベースを Amazon RDS 延長サポートに自動的に登録します。その後、RDS for PostgreSQL バージョン 11 以降を引き続き実行できます。詳細については、「Amazon RDS 延長サポートの使用」および「Amazon RDS の料金
PostgreSQL バージョン 10 の廃止
2023 年 4 月 17 日、Amazon RDS では、PostgreSQL 10 の非推奨化を次のスケジュールで予定しています。対策を講じて、メジャーバージョン 10 で実行されている PostgreSQL データベースを PostgreSQL バージョン 14 などの新しいバージョンにアップグレードすることをお勧めします。RDS for PostgreSQL メジャーバージョン 10 DB インスタンスを 10.19 より古い PostgreSQL バージョンからアップグレードするには、最初にバージョン 10.19 にアップグレードしてから、バージョン 14 にアップグレードすることをお勧めします。詳細については、「Amazon RDS の PostgreSQL DB エンジンのアップグレード」を参照してください。
アクションまたは推奨事項 | 日付 |
---|---|
PostgreSQL コミュニティは PostgreSQL 10 を廃止する予定で、この日以降はセキュリティパッチを提供しません。 |
2022 年 11 月 10 日 |
RDS for PostgreSQL 10 DB インスタンスを、PostgreSQL 14 などの新しいメジャーバージョンへのアップグレードを開始します。引き続き PostgreSQL 10 のスナップショットの復元や、バージョン 10 のリードレプリカの作成はできますが、この廃止スケジュールについて、その他の重要な日付と、その影響には注意していてください。 |
2023 年 2 月 14 日まで |
この日付を過ぎると、AWS Management Console または AWS CLI のいずれを使用しても、PostgreSQL メジャーバージョン 10 で新しい Amazon RDS インスタンスを作成することはできません。 |
2023 年 2 月 14 日 |
この日以降、Amazon RDS は、PostgreSQL 10 インスタンスを、バージョン 14 に自動的にアップグレードします。PostgreSQL 10 のデータベーススナップショットを復元すると、Amazon RDS は復元されたデータベースを、PostgreSQL 14 に自動的にアップグレードします。 |
2023 年 4 月 17 日 |
RDS for PostgreSQL バージョン 10 の廃止に関する詳しい情報については、AWS re: POST の 「[お知らせ]: RDS for PostgreSQL 10 の廃止
PostgreSQL バージョン 9.6 の廃止
2022 年 3 月 31 日、Amazon RDS では、PostgreSQL 9.6 の非推奨化を次のスケジュールで予定しています。これにより、以前に発表された日付の 2022 年 1 月 18 日が、2022 年 4 月 26 日まで延長されます。できるだけ早く、すべての PostgreSQL 9.6 DB インスタンスを、PostgreSQL 12 以降にアップグレードする必要があります。間のメジャーバージョンにアップグレードするのではなく、まずマイナーバージョンの 9.6.20 以上にアップグレードしてから、PostgreSQL 12 に直接アップグレードすることをお勧めします。詳細については、「Amazon RDS の PostgreSQL DB エンジンのアップグレード」を参照してください。
アクションまたは推奨事項 | 日付 |
---|---|
PostgreSQL コミュニティは PostgreSQL 9.6 のサポートを終了し、このバージョンのバグ修正やセキュリティパッチを提供しなくなります。 |
2021 年 11 月 11 日 |
できるだけ早く、RDS for PostgreSQL 9.6 DB インスタンスを PostgreSQL 12 以降にアップグレードしてください。引き続き PostgreSQL 9.6 のスナップショットの復元や、バージョン 9.6 のリードレプリカの作成はできますが、この廃止スケジュールについて、その他の重要な日付と、その影響には注意していてください。 |
2022 年 3 月 31 日まで |
この日付を過ぎると、AWS Management Console または AWS CLI のいずれを使用しても、PostgreSQL メジャーバージョン 9.6 で新しい Amazon RDS インスタンスを作成することはできません。 |
2022 年 3 月 31 日 |
この日以降、Amazon RDS は、PostgreSQL 9.6 インスタンスを、バージョン 12 に自動的にアップグレードします。PostgreSQL 9.6 のデータベーススナップショットを復元すると、Amazon RDS は復元されたデータベースを、PostgreSQL 12 に自動的にアップグレードします。 |
2022 年 4 月 26 日 |
Amazon RDS for PostgreSQL の非推奨バージョン
RDS for PostgreSQL 9.5 は、2021 年 3 月に廃止されました。DS for PostgreSQL 9.5 の非推奨化の詳細については、「Upgrading from Amazon RDS for PostgreSQL version 9.5
RDS for PostgreSQL の非推奨ポリシーの詳細については、「Amazon RDS のよくある質問
サポートされている PostgreSQL 拡張機能バージョン
RDS for PostgreSQL は、多くの PostgreSQL エクステンションをサポートしています。PostgreSQL コミュニティでは、これらをモジュールと呼ぶことがあります。エクステンションは、PostgreSQL エンジンが提供する機能を拡張します。Amazon RDS がサポートするエクステンションのリストは、該当する PostgreSQL バージョンのデフォルトの DB パラメータグループで確認できます。また、次の例に示すように、psql
で rds.extensions
パラメータを表示することで、最新のエクステンションのリストを確認することもできます。
SHOW rds.extensions;
注記
マイナーバージョンのリリースで追加されたパラメータは、rds.extensions
で psql
パラメータを使用する際に正しく表示されない場合があります。
RDS for PostgreSQL 13 以降、rds_superuser
以外のデータベースユーザーがインストールできる拡張機能があります。これらは、信頼できる拡張機能として知られています。詳細については、「PostgreSQL 信頼できるエクステンション」を参照してください。
RDS for PostgreSQL の特定のバージョンでは、rds.allowed_extensions
パラメータに対応しています。このパラメータにより、rds_superuser
は RDS for PostgreSQL DB インスタンスにインストールできる拡張機能を制限します。(詳しくは、「PostgreSQL エクステンションのインストールを制限する」を参照してください。)
利用できる各 RDS for PostgreSQL バージョンでサポートされている PostgreSQL 拡張機能のリストについては、Amazon RDS for PostgreSQL リリースノートの「Amazon RDS でサポートされる PostgreSQL の拡張機能」を参照してください。
PostgreSQL エクステンションのインストールを制限する
PostgreSQL DB インスタンスにインストールできるエクステンションを制限できます。デフォルトでは、このパラメータは設定されていないため、ユーザーに権限がある場合は、サポートされている任意の拡張機能を追加できます。そのためには、rds.allowed_extensions
パラメータをカンマで区切った拡張子名の文字列に設定します。このパラメータに拡張機能のリストを追加すると、RDS for PostgreSQL DB インスタンスで使用できる拡張機能が明示的に特定できます。その後、PostgreSQL DB インスタンスにインストールできるのは、これらのエクステンションだけです。
rds.allowed_extensions
パラメータのデフォルトの文字列は '*' です。これは、そのエンジンのバージョンで使用できるエクステンションは何でもインストールできることを意味します。動的パラメータであるため、rds.allowed_extensions
パラメータを変更しても、データベースを再起動する必要はありません。
rds.allowed_extensions
パラメータを使用するには、PostgreSQL DB インスタンスエンジンは次のバージョンのいずれかである必要があります。
-
すべての PostgreSQL 16 バージョン
-
PostgreSQL 15 以降のすべてのバージョン
-
PostgreSQL 14 以降のすべてのバージョン
-
PostgreSQL 13.3 以降のマイナーバージョン
-
PostgreSQL 12.7 以降のマイナーバージョン
どのエクステンションのインストールが許可されているかを確認するには、次の psql コマンドを使用します。
postgres=>
SHOW rds.allowed_extensions;
rds.allowed_extensions ------------------------ *
エクステンションが rds.allowed_extensions
パラメータのリストから除外される前にインストールされていた場合でも、エクステンションは正常に使用でき、ALTER EXTENSION
や DROP
EXTENSION
などのコマンドは引き続き機能します。ただし、エクステンションが制限されると、制限されたエクステンションの CREATE EXTENSION
コマンドは失敗します。
CREATE EXTENSION CASCADE
とのエクステンションの依存関係のインストールも制限されています。エクステンションとその依存関係は、rds.allowed_extensions
で指定する必要があります。拡張依存のインストールが失敗すると、CREATE EXTENSION CASCADE
文全体が失敗します。
rds.allowed_extensions
パラメータにエクステンションが含まれていない場合、インストールしようとすると、次のようなエラーが表示されます。
ERROR: permission denied to create extension "extension-name
"
HINT: This extension is not specified in "rds.allowed_extensions".
PostgreSQL 信頼できるエクステンション
ほとんどの PostgreSQL エクステンションをインストールするには、rds_superuser
権限が必要です。PostgreSQL 13 では、信頼できるエクステンションが導入されました。これにより、一般ユーザーに rds_superuser
特権を付与する必要が少なくなります。この機能を使用すると、ユーザーは、CREATE
ロールを要求する代わりに、現在のデータベースに対する rds_superuser
権限を持っている場合、多くのエクステンションをインストールできます。詳細については、PostgreSQL ドキュメントの SQL CREATE EXTENSION
以下に、現在のデータベースに対する CREATE
権限を持ち、rds_superuser
ロールを必要としないユーザーがインストールできるエクステンションを示します。
-
bool_plperl
-
jsonb_plperl
利用できる各 RDS for PostgreSQL バージョンでサポートされている PostgreSQL 拡張機能のリストについては、Amazon RDS for PostgreSQL リリースノートの「Amazon RDS でサポートされる PostgreSQL の拡張機能」を参照してください。