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 の公式ドキュメントを参照してください。
- Amazon Aurora PostgreSQL 13.x end of standard support is February 28, 2026
- Amazon RDS for PostgreSQL 13.x end of standard support is February 28, 2026
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 の専門家とつなぐことができ、スムーズなアップグレードプロセスをサポートするためのリソースを提供します。