PostgreSQL13から15への更新時の注意点について

0

現在、RDS for PostgreSQL 13 から 15 へのメジャーバージョンアップを検討しております。  下記の点について、事前に確認したくご連絡いたしました。  1. RDS上で提供されている拡張機能全般について、バージョン15でも利用可能か、あるいは制限がある機能があればご教示ください。  2. RDSにおける pg_upgrade 実行時の制約事項や注意点(公式ドキュメントに記載されていない留意点等)があれば対応策と合わせてご教示ください。  3. PostgreSQL 15 に関して、RDS環境における既知の問題や、設定面での推奨事項などがあればご教示ください。  4. RDS for PostgreSQL において、バージョン13から15へのアップグレード時に発生し得る、RDS独自の非互換や注意点について、該当する内容があれば対応策と合わせてご教示ください。

質問済み 1ヶ月前90ビュー
1回答
0
承認された回答

以下に、AWS RDS for PostgreSQL 13 から 15 へのアップグレード時に確認・注意すべき点を、項目別に詳しく解説いたします。


1. RDS上で提供されている拡張機能の互換性

  • RDS for PostgreSQL で利用できる拡張機能はバージョンにより異なります。

  • PostgreSQL 13 で利用していた拡張機能のうち、PostgreSQL 15 で非対応になっているものがある可能性があります。

    • 代表的な拡張機能の対応状況例(2024年時点):

      拡張機能1315備考
      pg_stat_statements継続使用可
      plpgsql標準
      postgisバージョンに注意(PostGIS のバージョンアップが必要)
      aws_s3権限設定確認
      pg_partman最新版への更新要
  • 事前対策

    • RDSコンソールや AWS CLI の describe-db-engine-versions コマンドで対象バージョンの利用可能な拡張機能一覧を確認してください。
    • バージョン間で仕様が変わっている拡張機能は、個別にアップグレード・設定変更が必要になることがあります。

2. pg_upgrade(内部的にAWSが使用)の制約と留意点

  • RDS のメジャーバージョンアップは内部的に pg_upgrade を使用していますが、ユーザーが直接操作することはできません

  • 留意点:

    • 無停止ではない:マルチAZ構成でもダウンタイム(10〜30分程度)が発生します。
    • Large Object(lo)使用時にデータ破損の可能性:PostgreSQL 15 では扱いに変更があるため、lo_export/lo_import を使って事前退避・再インポートを検討。
    • Rebuild Index が必要なケース:非互換(特に collation や ICU 周り)が絡む場合、REINDEX が推奨される場合あり。
    • pg_upgrade では統計情報がリセットされるため、アップグレード後に ANALYZE 実行を推奨

3. PostgreSQL 15に関する既知の問題と設定推奨

  • 既知の変更点(互換性に影響):

    • reindexdb の挙動強化 → アップグレード後に REINDEX DATABASE 実施を検討。
    • ICU コレーション(照合順序)の強化 → collation に依存するクエリやインデックスに注意。
    • sql_standard_role オプション導入:ロール名との互換性エラーが発生することがある。
    • wal_compressionlogical_replication のパラメータデフォルトが変更になっている場合あり。
  • 推奨設定

    • track_io_timing = on(性能診断向け)
    • log_checkpoints = onlog_autovacuum_min_duration = 1000(監視強化)
    • アップグレード後、autovacuum の設定も見直しを推奨(特に vacuum_cost_limit

4. RDS固有の非互換・注意点

  • Parameter Group の再作成:

    • PostgreSQL 13 用の DB パラメータグループは PostgreSQL 15 に流用できません。
    • 事前に PostgreSQL 15 用のパラメータグループを作成し、適用してください。
  • 監査・ログ設定

    • log_statement, log_duration などが初期設定で変わる可能性があるため、ログ出力の挙動が変わる場合あり。
  • IAM 認証設定の一部で非互換や権限エラーが発生する場合あり(公式には未記載だが報告事例あり)。

  • エンコードやロケール変更不可

    • PostgreSQL の locale, encoding は作成時固定のため、アップグレードで変更は不可。変更が必要なら新規作成+データ移行が必要。

【対応フロー推奨】

  1. 互換性チェックpg_dump + --load-via-partition-root などでエラー有無の確認
  2. ステージング環境でのテストアップグレードを実施(snapshot からの restore を使う)
  3. 拡張機能・設定項目・クエリの挙動検証
  4. 本番メンテナンス時間の計画と通知
  5. アップグレード後に REINDEX / ANALYZE の実施

必要に応じて、現在のRDSの構成情報(パラメータグループ、拡張機能一覧、使用している論理レプリケーションの有無など)をご共有いただければ、さらに具体的なアドバイスも可能です。

回答済み 1ヶ月前
  • 迅速で丁寧なご回答をありがとうございました。あまりに素早いので大変驚きました。Cooool!

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ