PostgreSQLコミュニティは、PostgreSQL 9.4やPostgreSQL 10などの以前のバージョンのPostgreSQLのメンテナンスを停止しました。 以前のバージョンのPostgreSQLを実行するRDSインスタンスを引き続き使用すると、リスクが発生する可能性があります。 RDSインスタンスを新しいバージョンにアップグレードする場合、または新しいバージョンの新機能を使用する場合は、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることを推奨します。
背景情報
PostgreSQLコミュニティは、メジャーエンジンバージョンを定期的にリリースしています。 新しいメジャーエンジンバージョンには、以前のメジャーエンジンバージョンと比較して、機能とパフォーマンスの点で改善が含まれています。 PostgreSQLコミュニティは、以前のメジャーエンジンバージョンのテクニカルサポートの提供を段階的に停止します。これにより、これらのバージョンのパフォーマンスリスクとセキュリティリスクの可能性が高まります。 ApsaraDB RDS for PostgreSQLは、メジャーエンジンバージョンのアップグレード機能を提供します。 この機能により、新しいメジャーエンジンバージョンで提供されるパフォーマンスと機能を使用でき、アップグレードによって引き起こされる可能性のあるリスクを軽減できます。
手順
アップグレード中、システムは元のRDSインスタンスを保持し、新しいメジャーエンジンバージョンを実行するRDSインスタンスを作成します。 RDSインスタンスの作成後、従量課金に基づいて新しいRDSインスタンスの課金が開始されます。 新しいRDSインスタンスは、元のRDSインスタンスに提供されている割引を引き継ぎません。 ビジネス要件に基づいて、元のRDSインスタンスのメジャーエンジンバージョンをアップグレードするかどうかを決定できます。
アップグレードチェックを実行します。
元のRDSインスタンスがメジャーエンジンバージョンのアップグレードをサポートしているかどうかを確認します。 次に、生成されたチェックレポートを表示します。 アップグレードチェックレポートのチェック結果が失敗の場合、メジャーエンジンのバージョンをアップグレードすることはできません。 アップグレードチェックに合格した後にのみ、メジャーエンジンのバージョンをアップグレードできます。
オプションです。 互換性テストを実行します。
RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、新しいメジャーエンジンバージョンがワークロードと互換性がない可能性があります。 したがって、アップグレードを実行する前に、[切断なし] 設定方法を使用して、新しいメジャーエンジンバージョンがワークロードと互換性があるかどうかをテストすることを推奨します。
メジャーエンジンのバージョンをアップグレードします。
元のRDSインスタンスのメジャーエンジンバージョンをアップグレードします。 新しいメジャーエンジンバージョンが互換性テストに合格した後、カットオーバー設定方法を選択します。
その他の特長
クロスバージョンアップグレード: 元のRDSインスタンスのメジャーエンジンバージョンを新しいバージョンにアップグレードできます。 たとえば、メジャーエンジンのバージョンをPostgreSQL 10からPostgreSQL 13にアップグレードできます。
アップグレードトライアル: [切断なし] 設定方法を使用して、元のRDSインスタンスのワークロードを中断することなくアップグレードの実現可能性を確認できます。
スムーズなアップグレード:
アプリケーションの変更なし: Cutover設定方法を使用してアップグレードを実行できます。 切り替えが完了したら、アプリケーションのエンドポイント構成を変更する必要はありません。 アプリケーションは、新しいRDSインスタンスに自動的に接続します。
説明Cutover設定方法を使用して元のRDSインスタンスのメジャーエンジンバージョンをアップグレードする場合、新しいRDSインスタンスの仮想IPアドレス (VIP) は元のRDSインスタンスの仮想IPアドレスとは異なります。 アプリケーションで元のRDSインスタンスのVIPを設定した場合、アプリケーションで元のRDSインスタンスのVIPを新しいRDSインスタンスのVIPに変更する必要があります。 アプリケーションで元のRDSインスタンスのエンドポイントを設定することを推奨します。 RDSインスタンスのエンドポイントを取得する方法の詳細については、「エンドポイントとポート番号の表示と変更」をご参照ください。
ダウンタイムなし: アップグレードによって元のRDSインスタンスがダウンタイムになることはありません。 これは、サービス中断のリスクを軽減する。 ただし、元のRDSインスタンスは、アップグレード中の数分間の読み取り要求のみを処理します。 さらに、インスタンスのクローニングを使用してアップグレードを実行します。 アップグレードが失敗しても、元のRDSインスタンスは影響を受けません。
リザーブドインスタンス設定:
新しいRDSインスタンスは、元のRDSインスタンスのIPアドレスホワイトリスト、パラメーター設定、および拡張機能を引き継ぎます。 ただし、これは、新しいメジャーエンジンバージョンでサポートされていない拡張機能またはパラメーターには適用されません。
元のRDSインスタンスが完全に暗号化されたデータベースをサポートしている場合、新しいRDSインスタンスは完全に暗号化されたデータベースもサポートし、元のRDSインスタンスでデータの暗号化に使用されるキーを引き継ぎます。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスでの完全暗号化データベースの作成」をご参照ください。
課金ルール
新しいRDSインスタンスの課金方法は従量課金です。
新しいRDSインスタンスでワークロードが期待どおりに実行されていることを確認したら、新しいRDSインスタンスの課金方法をサブスクリプションに変更し、元のRDSインスタンスからリリースまたはサブスクリプション解除します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスを従量課金からサブスクリプションに切り替える」および「ApsaraDB RDS for PostgreSQLインスタンスのリリースまたはサブスクリプション解除」をご参照ください。
有効期限が切れる前にサブスクリプションRDSインスタンスをリリースした場合、払い戻しの対象となります。 ただし、払い戻しは元の購入金額よりも少なくなります。
元のRDSインスタンスを割引料金で購入した場合、新しいRDSインスタンスは元のRDSインスタンスに提供されている割引を引き継ぎません。 元のRDSインスタンスのメジャーエンジンバージョンをアップグレードするかどうかを確認するには、Alibaba Cloud管理コンソールにログインし、[登録解除] ページに移動して払い戻し額を確認します。
払い戻し金額と払い戻しの到着時間は請求書に表示されます。 払い戻しはすぐには届きません。
前提条件
元のRDSインスタンスは、次の要件を満たす必要があります。
元のRDSインスタンスはPostgreSQL 15以前を実行します。
説明RDSインスタンスのメジャーエンジンバージョンを、PostgreSQL 9.4からPostgreSQL 10、PostgreSQL 11、PostgreSQL 12、PostgreSQL 13、PostgreSQL 14に直接アップグレードできます。 メジャーエンジンのバージョンをPostgreSQL 9.4からPostgreSQL 15にアップグレードする場合は、メジャーエンジンのバージョンをPostgreSQL 10、PostgreSQL 11、PostgreSQL 12、PostgreSQL 13、またはPostgreSQL 14にアップグレードする必要があります。 その後、メジャーエンジンのバージョンをPostgreSQL 15以降にアップグレードできます。
元のRDSインスタンスは、RDS High-availability EditionまたはRDS Basic Editionを実行します。 詳細については、「RDS High-availability Edition」および「RDS Basic Edition」をご参照ください。
元のRDSインスタンスは、仮想プライベートクラウド (VPC) にあります。
元のRDSインスタンスがクラシックネットワークにある場合、アップグレードを実行する前に、元のRDSインスタンスのネットワークタイプをVPCに変更する必要があります。 ネットワークタイプを変更するときは、[元のクラシックネットワークエンドポイントを予約] をオフにします。 RDSインスタンスのネットワークタイプを表示または変更する方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのネットワークタイプの変更」をご参照ください。
説明[元のクラシックネットワークエンドポイントを予約] を選択した場合、アップグレードタスクを開始する前に、エンドポイントの保持期間が終了するまで待つ必要があります。
元のRDSインスタンスを読み取り専用インスタンスにすることはできず、専用クラスターに作成することもできません。 詳細については、「読み取り専用ApsaraDB RDS For PostgreSQLインスタンスの概要」および「ApsaraDB for MyBaseとは」をご参照ください。
元のRDSインスタンスのIDは
pg-cn
で始まりません。
影響
アップグレードには次の影響があります。
Cutover設定方法を選択した場合、アップグレード中にワークロードを新しいRDSインスタンスに切り替える必要があります。 元のRDSインスタンスは読み取り要求のみを処理し、切り替え中に数分間続く一時的な接続が発生します。 オフピーク時にアップグレードを実行することを推奨します。 [切断設定なし] を選択した場合、元のRDSインスタンスは影響を受けません。
説明元のRDSインスタンスが読み取り要求のみを処理する期間は、データベースオブジェクトの数によって異なります。 元のRDSインスタンスに多数のデータベースオブジェクトが存在する場合、元のRDSインスタンスは読み取り要求のみを長期間処理します。 数百万のデータベースオブジェクトが存在する場合、元のRDSインスタンスは数十分または数時間の読み取り要求のみを処理できます。
SELECT count (1) FROM pg_class;
文を実行して、元のRDSインスタンスのデータベースオブジェクトの数を照会できます。一時的な接続の期間は、ドメインネームシステム (DNS) キャッシュがリフレッシュされる間隔によって異なります。 別のvSwitchに切り替えて、一時的な接続の期間に基づいて、データベースクライアントのDNSキャッシュを更新する間隔を見積もることができます。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスの別のvSwitchへの切り替え」をご参照ください。
アップグレードの完了に必要な期間は、データ量と元のRDSインスタンスのデータベースオブジェクトの数によって異なります。 元のRDSインスタンスに大量のデータと大量のデータベースオブジェクトが存在する場合、アップグレードの完了には長い期間が必要です。
元のRDSインスタンスが新しいメジャーエンジンバージョンでサポートされていないパラメーターを使用している場合、パラメーターは新しいRDSインスタンスから削除されます。 以前のメジャーエンジンバージョンのパラメーターの値が、新しいメジャーエンジンバージョンでサポートされている値の範囲内にない場合、システムはパラメーターを新しいメジャーエンジンバージョンで指定されたデフォルト値に設定します。
新しいRDSインスタンスは、元のRDSインスタンスの名前、タグ、アラートルール、およびバックアップデータを引き継ぎません。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスへのタグの追加」、「ApsaraDB RDS for PostgreSQLインスタンスへのアラートルールの設定」、および「ApsaraDB RDS for PostgreSQLインスタンスのバックアップ」をご参照ください。
元のRDSインスタンスがData Transmission Service (DTS) コンソールで作成された移行タスクの移行元RDSインスタンスまたは移行先RDSインスタンスとして機能する場合、アップグレードを実行した後に移行タスクを再作成する必要があります。 DTSコンソールで移行タスクを作成する方法の詳細については、 DTSとは何ですか?
アップグレードが完了した後、元のRDSインスタンスで作成した読み取り専用RDSインスタンスと論理レプリケーションスロットは、新しいRDSインスタンスではなく元のRDSインスタンスにアタッチされたままになります。 アップグレード後、新しいRDSインスタンスに読み取り専用RDSインスタンスと論理レプリケーションスロットを作成する必要があります。
読み取り専用RDSインスタンスが元のRDSインスタンスにアタッチされている場合、アップグレードを実行する前後に次の操作を実行する必要があります。
メジャーエンジンのバージョンをアップグレードする場合は、最新のマイナーエンジンバージョンが必要です。 これにより、拡張機能の互換性の問題が発生します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
アップグレードの完了に必要な期間は、RDSインスタンスのデータ量によって異なります。 アップグレードの進行状況は、ApsaraDB RDSコンソールの [タスクセンター] ページで確認できます。 詳細については、「タスクセンターの使用」をご参照ください。
RDSインスタンスのメジャーエンジンバージョンをアップグレードした後、アップグレードをロールバックすることはできません。 初期のメジャーエンジンバージョンを使用する場合は、必要なメジャーエンジンバージョンを実行する別のRDSインスタンスを作成し、Data Transmission Service (DTS) を使用して、アップグレードされたRDSインスタンスのデータを新しく作成されたRDSインスタンスに移行する必要があります。
手順
読み取り専用RDSインスタンスが元のRDSインスタンスにアタッチされている場合は、メジャーエンジンのバージョンをアップグレードする前に、次の手順を実行します。
読み取り専用RDSインスタンスのエンドポイントを、アプリケーションの元のRDSインスタンスのエンドポイントに変更します。
説明サービスの安定性のために、オフピーク時にアプリケーションのエンドポイント設定を変更することを推奨します。
読み取り専用RDSインスタンスを削除します。
メジャーバージョンのアップグレードページに移動します。
[アップグレードチェック] タブで、新しいメジャーエンジンバージョンを選択し、[アップグレードチェックレポートの作成] をクリックします。 このプロセスには数分かかります。
説明RDSインスタンスがアップグレードチェックに合格していることを確認します。 その後、次のステップに進みます。
RDSインスタンスがアップグレードチェックに合格した後、RDSインスタンスで
CREATE EXTENSION
ステートメントを実行する場合は、再度アップグレードチェックを実行する必要があります。
アップグレードチェックレポートで、RDSインスタンスがアップグレードチェックに失敗したことが示された場合は、[レポートの内容] 列の [情報の表示] をクリックして、レポートの失敗に関する詳細を表示できます。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスへのメジャーエンジンバージョンアップのチェックレポートの概要」をご参照ください。
[インスタンスのアップグレード] タブをクリックします。 表示されたタブで、表示された警告を読み、[アップグレードバージョンの選択] を設定し、[アップグレードインスタンスの作成を続行] をクリックします。
表示されるメッセージで、ヒントを読み、[OK] をクリックします。 次に、パラメーターを設定します。 次の表に、重要なパラメーターのみを示します。
パラメーター
説明
ストレージタイプ
新しいRDSインスタンスに使用するストレージタイプを選択します。
主要なエンジンバージョンのアップグレード機能は、クラウドディスクのスナップショットに基づいています。 次の条件に基づいてストレージタイプを選択できます。
PL1 ESSD
PL2 ESSD
PL3 ESSD
利用可能なゾーン
新しいRDSインスタンスとそのセカンダリRDSインスタンスのゾーンとvSwitchを指定します。 指定するゾーンは、元のRDSインスタンスのゾーンとは異なる場合があります。
利用可能なゾーン
プライマリインスタンスの切り替え
スタンバイインスタンスの切り替え
カットオーバー設定
このシステムでは、データ移行用のRDSインスタンスを作成できます。 データ移行が完了した後、システムがワークロードを新しいRDSインスタンスに自動的に切り替えるかどうかを指定します。
No cutting: システムは、ワークロードを新しいRDSインスタンスに自動的に切り替えません。 アップグレードを実行する前に、[切断なし] 設定方法を選択して、新しいメジャーエンジンバージョンがワークロードと互換性があるかどうかをテストすることをお勧めします。 新しいメジャーエンジンバージョンが互換性テストに合格した場合、新しいRDSインスタンスをリリースできます。 次に、[カットオーバー] 設定方法を選択してアップグレードを実行します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのリリースまたはサブスクリプション解除」および「手順」をご参照ください。
説明データ移行によって、元のRDSインスタンスのワークロードが中断されることはありません。
[切断なし] 設定方法を選択した場合、データが新しいRDSインスタンスに移行された後、アプリケーションで元のRDSインスタンスのエンドポイントを新しいRDSインスタンスのエンドポイントに変更する必要があります。 RDSインスタンスのエンドポイントを表示する方法の詳細については、「エンドポイントとポート番号の表示と変更」をご参照ください。
カットオーバー: システムは自動的にワークロードを新しいRDSインスタンスに切り替えます。 切り替えが完了したら、アプリケーションのエンドポイント構成を更新する必要はありません。 アプリケーションは、新しいRDSインスタンスに自動的に接続します。 この構成方法は、新しいメジャーエンジンバージョンがワークロードと互換性があることを確認した後にアップグレードを実行するために使用されます。
説明切り替えが完了すると、ワークロードを元のRDSインスタンスにロールバックすることはできません。 注意して進めてください。
切り替え中、元のRDSインスタンスは読み取り要求のみを処理します。 そのため、ピーク時間外に切り替えを実行することを推奨します。
元のRDSインスタンスに読み取り専用のRDSインスタンスがある場合、[カットオーバー] 設定方法は選択できません。 この場合、元のRDSインスタンスのメジャーエンジンバージョンをアップグレードするには、[切削なし] 設定方法を使用します。 また、元のRDSインスタンスにアタッチされている読み取り専用RDSインスタンスは複製されません。 アップグレードが完了したら、新しいRDSインスタンスの新しいメジャーエンジンバージョンを実行する読み取り専用RDSインスタンスを作成する必要があります。 詳細については、「読み取り専用ApsaraDB RDS For PostgreSQLインスタンスの作成」をご参照ください。
カットオーバー時間
データが新しいRDSインスタンスに移行された後、システムがワークロードを新しいRDSインスタンスに切り替える時点を指定します。
immediately: データが新しいRDSインスタンスに移行されると、システムはすぐにワークロードを新しいRDSインスタンスに切り替えます。
インスタンスの運用およびメンテナンス時間: 指定したメンテナンス期間中に、システムはワークロードを新しいRDSインスタンスに切り替えます。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのメンテナンス期間の設定」をご参照ください。
説明このパラメーターは、Cutover設定パラメーターをCutoverに設定した場合にのみ使用できます。
統計情報収集モード
システムが新しいRDSインスタンスの統計を収集する時点を指定します。
Collection before cutting: このオプションは、データベースサービスの安定性を保証します。 元のRDSインスタンスに大量のデータが含まれている場合、アップグレードに長時間がかかる場合があります。
カット後の収集: このオプションは、アップグレードプロセスを高速化します。 統計が生成されないテーブルにアクセスすると、指定したクエリプランが不正確に実行される可能性があります。 また、ピーク時にはデータベースサービスが利用できない場合があります。
説明[切断なし] 設定方法を選択した場合、[切断前の収集] オプションは、新しいRDSインスタンスが読み書き要求の処理を開始する前に新しいRDSインスタンスの統計を収集することを指定し、[切断後の収集] オプションは、新しいRDSインスタンスが読み書き要求の処理を開始した後に新しいRDSインスタンスの統計を収集することを指定します。
保管スペース
新しいRDSインスタンスのストレージ容量を指定します。
元のRDSインスタンスがローカルSSDを使用している場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすると、RDSインスタンスのストレージ容量を削減できます。 ストレージスペースパラメーターに指定する最小値は、次の要件を満たす必要があります。
最小値は、次の値の小さい値によって決まります。
元のRDSインスタンスの使用済みストレージに120% (GB) を掛けた値です。 結果が5の倍数でない場合、得られた値は5の倍数に切り上げられる。
説明元のRDSインスタンスの使用済みストレージは、[モニタリングとアラート] ページの [ディスクストレージ (MB)] セクションで確認できます。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスの拡張モニタリングメトリックの表示」をご参照ください。
元のRDSインスタンスのストレージ容量。
最小値は、ESSDの最小記憶容量以上である。 最小値がESSDの最小ストレージ容量より小さい場合は、ESSDの最小ストレージ容量を最小値として使用する必要があります。 次のリストは、異なるパフォーマンスレベル (PL) のESSDの最小ストレージ容量を示しています。
ESSD PL1: 20 GB
ESSD PL2: 500 GB
ESSD PL3: 1,500 GB
説明例:
RDSインスタンスのメジャーエンジンバージョンをアップグレードする場合、元のRDSインスタンスのストレージ容量は100 GB、70 GBのストレージが使用され、ESSD PL1がストレージタイプとして選択されます。
計算方法: 70 × 120% = 84、切り上げて85にする。 ストレージスペースパラメーターの最小値は85 GBです。
RDSインスタンスのメジャーエンジンバージョンをアップグレードする場合、元のRDSインスタンスのストレージ容量が700 GB、350 GBのストレージが使用され、ESSD PL2がストレージタイプとして選択されます。
計算方法: 350 × 120% = 420。 取得された値420 GBは、PL2のESSDでサポートされている500 GBよりも小さい。 ストレージスペースパラメーターの最小値は500 GBです。
インスタンス仕様
新しいRDSインスタンスのインスタンスタイプを指定します。 サポートされているインスタンスタイプの詳細については、「プライマリApsaraDB RDSインスタンスタイプ」をご参照ください。
[今すぐ作成] をクリックします。
元のRDSインスタンスのステータスが [移行中] に変わります。 さらに、[インスタンス] ページで新しいRDSインスタンスを見つけることができます。 新しいRDSインスタンスは [作成中] 状態です。 新しいRDSインスタンスが作成され、アップグレードが完了すると、元のRDSインスタンスと新しいRDSインスタンスのステータスが [実行中] に変わります。 アップグレードに必要な時間は、データ量によって異なります。
説明アップグレードタスクを作成した後、タスクを変更または削除することはできません。
元のRDSインスタンスが移行状態の場合、RDSインスタンスでO&M操作を実行できません。 たとえば、RDSインスタンスのパラメーターを変更し、RDSインスタンスを再起動またはリリースすることはできません。
[今すぐ作成] をクリックした後、リソース不足というメッセージが表示されたら、[使用可能ゾーン] パラメーターの値を変更します。
読み取り専用RDSインスタンスが元のRDSインスタンスにアタッチされていて、手順1で読み取り専用RDSインスタンスを削除した場合は、アップグレード後に次の手順を実行します。
新しいRDSインスタンス用の読み取り専用RDSインスタンスを作成します。 詳細については、「読み取り専用ApsaraDB RDS For PostgreSQLインスタンスの作成」をご参照ください。
元のRDSインスタンスのエンドポイントを、アプリケーションの新しい読み取り専用RDSインスタンスのエンドポイントに変更します。 詳細については、「手順1」をご参照ください。
次のステップ
新しいRDSインスタンスでワークロードが期待どおりに実行されていることを確認したら、新しいRDSインスタンスの課金方法をサブスクリプションに変更します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスを従量課金からサブスクリプションに切り替える」をご参照ください。
元のRDSインスタンスをリリースします。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのリリースまたはサブスクリプション解除」をご参照ください。
説明有効期限が切れる前にサブスクリプションRDSインスタンスをリリースした場合、払い戻しの対象となります。 ただし、払い戻しは元の購入金額よりも少なくなります。
元のRDSインスタンスを割引料金で購入した場合、新しいRDSインスタンスは元のRDSインスタンスに提供されている割引を引き継ぎません。 Alibaba Cloud管理コンソールにログインし、[登録解除] ページに移動して払い戻し額を確認できます。
払い戻し金額と払い戻しの到着時間は請求書に表示されます。 払い戻しはすぐには届きません。
新しいRDSインスタンスは元のRDSインスタンスの読み取り専用RDSインスタンスを引き継がないため、ビジネス要件に基づいて新しいRDSインスタンスの読み取り専用RDSインスタンスを作成します。 詳細については、「読み取り専用ApsaraDB RDS For PostgreSQLインスタンスの作成」をご参照ください。
参考資料
ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンアップグレードのチェックレポートの概要
APIを呼び出して、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることもできます。 次の表に、関連するAPI操作を示します。
操作
説明
アップグレード前に、ApsaraDB RDS for PostgreSQLインスタンスの新しいメジャーエンジンバージョンとワークロードの互換性を確認します。
ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンのアップグレードのチェックレポートを照会します。
ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンをアップグレードします。
ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンをアップグレードするために作成されたタスクを照会します。