Amazon Web Services ブログ

Amazon Aurora PostgreSQL および Amazon RDS for PostgreSQL のバージョン 13 からのアップグレード戦略

本記事は 2026 年 1 月 27 日 に公開された「Strategies for upgrading Amazon Aurora PostgreSQL and Amazon RDS for PostgreSQL from version 13」を翻訳したものです。

本記事では、2026 年 2 月 28 日にスタンダードサポートが終了する PostgreSQL バージョン 13 からのアップグレードを計画する方法をご紹介します。アップグレードの主なメリット、考慮すべき破壊的変更点、選択可能な複数のアップグレード戦略について説明します。

Amazon Aurora PostgreSQL 互換エディションAmazon Relational Database Service (Amazon RDS) for PostgreSQL バージョン 13 の標準サポートは、2026 年 2 月 28 日に終了します。

これらの更新により、アプリケーションの互換性に影響する変更が導入される可能性があります。アップグレードには慎重な評価が必要ですが、最新のリリースにはより優れた機能、パフォーマンス、セキュリティが備わっています。最大の利点を得つつ、最小限の混乱で済むよう、メジャーバージョンを新しいものにアップグレードする前に、十分に計画と検証を行ってください。

詳細なアップグレード手順については、Amazon Aurora PostgreSQL 互換、および Amazon RDS for PostgreSQL の公式ドキュメントを参照してください。

PostgreSQL の新しいバージョンの主な利点

より新しい PostgreSQL バージョンにアップグレードすると、データベースのパフォーマンスが向上し、新しい機能が追加されます。このセクションでは、新しい PostgreSQL バージョンで導入された機能の一部を紹介します。

パフォーマンスの向上

新しいバージョンでは、次のようなパフォーマンス向上が提供されています:

  • 緊急バキュームモード (v14+) – 古い行バージョンを積極的に管理することで、致命的なトランザクション ID の周回を防ぐのに役立ちます
  • I/O パフォーマンスの向上 (v17) – 強化された WAL 処理により、最大 2 倍の書き込みスループットを提供します
  • クエリ最適化 (v17+) – B ツリーインデックスを使用した IN 句や、並列 BRIN インデックスビルドの性能が向上しています
  • メモリ効率 (v17) – 新しいバキュームのメモリ構造は、最大 20 倍メモリを節約できます

高度なモニタリングと診断

次の高度な監視および診断機能を活用できます:

  • pg_stat_io (v16+) – I/O オペレーションの詳細な統計情報を提供します
  • pg_wait_events (v17+) – 待機イベントのデータベース内リファレンスをサポートし、マニュアルの参照を不要にします

論理レプリケーションの改善

新しいバージョンでは、以下のような論理レプリケーションの改善が提供されています:

  • フェイルオーバーのサポート (v17+) – プライマリからスタンバイサーバーへの論理レプリケーションスロットを自動的に同期できます
  • スロットの移行 (v17+) – 論理レプリケーションスロットを pg_upgrade 経由で移行できるため、アップグレードが簡単になります
  • パラレル適用 (v16+) – この機能では、複数のバックグラウンドワーカープロセスを使用してデータを直接ターゲットテーブルに書き込みます
  • 行フィルタリング (v15+) – レプリケーションするデータを細かく制御できます

開発者エクスペリエンス

新しいバージョンでは、開発者エクスペリエンスが向上しています:

  • JSONB の添字 (v14+) – JSONB データにアクセスおよび変更するための直感的な構文
  • SQL/JSON JSON_TABLE (v17+) – JSON データをリレーショナルテーブルに変換する機能
  • クエリパイプラインモード (v14+) – 高遅延接続の場合のネットワーク遅延の削減

セキュリティの強化

以下のセキュリティ強化機能にアクセスできます:

  • pg_read_all_data および pg_write_all_data ロール (v14+) – 読み取り/書き込みアクセス制御の簡素化
  • pg_maintain ロール (v17+) – ユーザーがデータベースのメンテナンスタスクを実行できるようにする
  • (v15+) – public スキーマに対する PUBLIC ロールの作成権限の削除

Amazon Aurora PostgreSQL 互換 – Aurora 最適化読み取り

Amazon Aurora PostgreSQL 互換ユーザーの方は、v14.9+、v15.4+、v16.1+ およびそれ以降のバージョンにアップグレードすることで、より多くのパフォーマンス最適化を活用できます。

Aurora Optimized Reads は、大規模データセットに対して最大 8 倍高速なクエリレイテンシと最大 30% のコスト削減を実現します。Aurora Optimized Reads は次の 2 つの機能をサポートしています:

  • 階層型キャッシュ – Aurora I/O 最適化クラスターでは、DB インスタンスのキャッシュ容量を最大 5 倍まで拡張できます
  • 一時オブジェクト – ローカル NVMe ストレージを使用すると、高度なクエリの待ち時間が最大 2 倍高速になります

PostgreSQL v13 の非推奨: カタログビューの変更とアップグレードの利点 (v14-v17)

PostgreSQL v13 から新しいバージョンにアップグレードすると、アプリケーションに影響を与える可能性のある変更が導入されることがあります。このセクションでは、システムカタログと設定パラメータに関連する変更点を説明します。

システムカタログビューの変更

以下の表は、PostgreSQL v17 の変更点をまとめたものです。

変更タイプ カラム名 アクション 備考
pg_stat_bgwriter から削除 buffers_backend 削除
pg_stat_bgwriter から削除 buffers_backend_fsync 削除
新しいビュー pg_stat_checkpointer 作成 checkpointer の統計情報を background writer から分離
新しいビュー pg_wait_events 作成 待機イベントの情報

次の表は、pg_stat_progress_vacuum カラムの名称変更の概要をまとめたものです。

変更タイプ 旧名称 新名称 説明
名称変更 max_dead_tuples max_dead_tuple_bytes カラムの名称を変更
名称変更 num_dead_tuples dead_tuple_bytes カラムの名称を変更
新規カラム indexes_total 新しいカラムを追加
新規カラム indexes_processed 新しいカラムを追加
新規カラム dead_tuple_bytes 新しいカラムを追加

次の表は、追加のカタログ変更の概要をまとめたものです。

ビュー/テーブル 変更タイプ 旧名称 新名称 説明
pg_database 新しいカラムの追加 dathasloginevt 新しいカラムを追加
pg_database カラムの名称変更 daticulocale datlocale カラムの名称を変更
pg_collation カラムの名称変更 colliculocale colllocale カラムの名称を変更

次の表は、変更されたシステムビューの概要です。

ビュー名 追加された新しいカラム
pg_replication_slots failover、synced、invalidation_reason、inactive_since
pg_stat_progress_copy tuples_skipped
pg_stat_subscription worker_type
pg_stats range_length_histogram、range_empty_frac、range_bounds_histogram
pg_subscription subfailover

次の表は、PostgreSQL v14 のシステムカタログの変更点をまとめたものです。

ビュー名 変更タイプ カラム名 備考
pg_stat_activity 新規カラム query_id compute_query_id パラメータが必要
pg_stat_statements 新規カラム toplevel 新しいカラムを追加

重要なパラメーター関連の変更点

PostgreSQL v14 におけるパラメータ関連の変更点を以下の表にまとめました。

変更タイプ パラメータ名 説明/注意事項
新規 compute_query_id クエリ識別子の計算を制御
新規 client_connection_check_interval クエリ実行中の切断チェック間隔を設定
新規 idle_session_timeout トランザクション中でない、指定時間以上アイドル状態のセッションを終了
新規 default_toast_compression 圧縮可能な値のデフォルトの圧縮方式を設定
新規 vacuum_failsafe_age 周回問題を回避するために VACUUM がフェイルセーフを起動する年代
新規 huge_page_size 要求する huge page のサイズ
削除 operator_precedence_warning 完全に削除
削除 vacuum_cleanup_index_scale_factor 削除 (v12 で非推奨化)
変更タイプ パラメータ名 旧値 新値 説明/備考
デフォルト値の変更 password_encryption md5 scram-sha-256 パスワード暗号化のデフォルト値を変更

PostgreSQL v15、v16、v17 におけるパラメータ関連の変更点を以下の表にまとめました。

バージョン 変更タイプ パラメータ名 説明/注意事項
PostgreSQL 15 拡張 wal_compression 新しいアルゴリズム: zstd、lz4 をサポート
PostgreSQL 15 新規 wal_decode_buffer_size WAL デコーディングのバッファサイズ
PostgreSQL 16 新規 vacuum_buffer_usage_limit バキューム中のバッファ使用量を制限
PostgreSQL 16 新規 logical_replication_mode 論理レプリケーションの動作を制御
PostgreSQL 17 新規 sync_replication_slots レプリケーションスロットの同期を有効化

アップグレード戦略のオプション

Amazon Aurora PostgreSQL および Amazon RDS for PostgreSQL データベースをアップグレードする方法は複数あります:

  • インプレースアップグレード – このアップグレード方法は、AWS Command Line Interface (AWS CLI) または AWS Management Console を使用して実行できます。インプレースアップグレードには、データベースのサイズに比例したダウンタイムが必要です。まずスナップショットをアップグレードして、正確な所要時間をテストしてください。この方法は、ダウンタイムを許容でき、より簡単な管理を好むワークロードに適しています。
  • Amazon RDS ブルー/グリーンデプロイメント – Amazon RDS ブルー/グリーンデプロイメントは、PostgreSQL の論理レプリケーションを使用して 2 つの同期された環境を維持します。Amazon RDS のワンクリックアップグレードを使ってグリーン (ステージング) 環境をアップグレードし、アプリケーションをしっかりとテストしてから、ほとんどダウンタイムなしに本番トラフィックを切り替えることができます。このメソッドはコンソールまたは AWS CLI を使って簡単に実装できますが、DDL 変更はレプリケートされず、レプリケーションプロセスを中断する可能性があることに注意が必要です。
  • 論理レプリケーション – Amazon Aurora PostgreSQL 互換および Amazon RDS for PostgreSQL は、pglogical を通じた論理レプリケーションをサポートしています。このプロセスには、パブリッシャーデータベースの初期スナップショットを作成し、それをサブスクライバーにコピーし、その後リアルタイムの変更を継続的にレプリケートすることが含まれます。この方法は、ダウンタイムを最小限に抑えつつ継続的なレプリケーションを提供しますが、初期設定が複雑で、大規模なデータベースの同期に時間がかかります。論理レプリケーションでは、DDL、シーケンス、ラージオブジェクトの操作をレプリケートできません。
  • AWS Database Migration Service (AWS DMS) – AWS DMS は、ソースおよびターゲットデータベースとして Amazon Aurora PostgreSQL 互換および Amazon RDS for PostgreSQL をサポートし、変更データキャプチャー (CDC) 機能も備えています。AWS DMS を使えば、ダウンタイムを最小限に抑えつつ継続的なレプリケーションが可能ですが、一部のデータ型 (timestamp with time zone など) をサポートしておらず、移行期間中に追加コストがかかります。

Amazon RDS for PostgreSQL データベースまたは Amazon Aurora PostgreSQL データベースのアップグレードに関する詳細情報については、Upgrade your Amazon RDS for PostgreSQL or Amazon Aurora PostgreSQL database, Part 1: Comparing upgrade approachesを参照してください。各アプローチの長所と短所について説明しています。

アップグレードの準備

アップグレードする前に、以下の操作を行う必要があります:

  • 現在のデータベース構成を確認する
  • ステージング環境でアップグレードプロセスをテストする
  • アプリケーションの互換性を検証する
  • 包括的なバックアップ戦略を作成する

すぐにアップグレードが実行できない場合、Amazon RDS Extended Support では、最大 3 年間にわたるセキュリティパッチとバグ修正を提供しています。RDS Extended Support は、Amazon Aurora PostgreSQL 互換および Amazon RDS for PostgreSQL の主要バージョンについて、標準サポート終了日から最大 3 年間、重要なセキュリティ修正とバグ修正を提供するための有料サービスです。経過年数に応じて価格が上がります。RDS Extended Support の期間を賢明に活用して、データベースとアプリケーションの適切なアップグレードパスを見つけることができます。これにより、本番環境でのアップグレードプロセスを効率化できます。

結論

PostgreSQL v13 からアップグレードすると、大幅なパフォーマンス向上、より優れたセキュリティ機能、より効率的な運用が可能になります。

詳細な技術ガイダンスについては、公式の AWS ドキュメントを参照し、複雑な移行シナリオについては AWS サポートに相談することをお勧めします。AWS エンタープライズサポートをご利用の場合、テクニカルアカウントマネージャー (TAM) が、アップグレードジャーニー全体にわたって専門的なガイダンスを提供できます。TAM は、AWS の専門家とつなぐことができ、スムーズなアップグレードプロセスをサポートするためのリソースを提供します。

著者について

Sachin Murkar

Sachin Murkar

Sachin は、AWS のクラウドサポートデータベースエンジニアであり Amazon RDS for PostgreSQL および Amazon Aurora PostgreSQL に関する専門家です。太平洋岸北西部地域を拠点とし、Sachin は Amazon RDS と Aurora に関する専門知識を活かして、お客様の AWS データベースソリューションの最適化を支援することに注力しています。

Abhimanyu Tomar

Abhimanyu Tomar

Abhimanyu は、AWS のシニアデータベーススペシャリストテクニカルアカウントマネージャーです。また、Amazon Aurora インフラストラクチャ、Amazon RDS for PostgreSQL、および Amazon Aurora PostgreSQL に関する専門家でもあります。ソリューションアーキテクトプロフェッショナルを含む 6 つの AWS 認定資格を保有しています。エンタープライズのお客様が AWS 上でデータベースを最適化できるよう支援し、クラウド移行や技術的改善に関する専門的なガイダンスを提供しています。

Niraj Jani

Niraj Jani

Niraj は現在テクニカルアカウントマネージャーとして勤務しており、以前はクラウドサポートエンジニアを務めていました。Amazon RDS および Amazon Aurora PostgreSQL の専門家であり、太平洋岸北西部地域を拠点としています。Niraj は、お客様が RDS および Aurora クラスターのパフォーマンスを最適化できるよう支援し、幅広い技術的問題のトラブルシューティングをサポートしています。