Amazon Web Services ブログ
Amazon RDS for PostgreSQL のバージョン 9.4 から移行する
歴史的にPostgreSQL コニュニティーでは、年に一度メジャーバージョンをリリースし、それをもって古いメジャーバージョンのエンドオブライフ (EOL) とするポリシーです。これにより、バージョンとアップデートがいつ行われたのか、将来的にも日付で良く分かるようになっています。コミュニティーのこの EOL ポリシーは、メジャーバージョンをその初期リリースから 5 年間サポートするのが目的です。5 年後には、メジャーバージョンは不具合修正を含むマイナーバージョンを 1 つリリースしてから EOL と扱われ、その後はサポートされなくなります。PostgreSQL のすべてのバージョンの最終リリース日は、コミュニティーの Web サイトで見ることができます。直近では、メジャーバージョン 9.4 が 2020 年 2 月 13 日に EOL に達しました。
何が起こるのか
PostgreSQL コミュニティーからの追加不具合修正、特にセキュリティに関連する修正が行われなくなります。すべての PostgreSQL 9.4 インスタンスをアップグレードするには、今がちょうど良い機会です。2020 年 2 月 15 日に Amazon Relational Database Service (RDS) はコンソールからの PostgreSQL 9.4 インスタンスの新規作成サポートを 停止したため、PostgreSQL の新しいバージョンを使った方が良いでしょう。既存の PostgreSQL 9.4 スナップショットからのリストアと、9.4 インスタンスのリードレプリカ作成は、2020 年 4 月 20 日まで可能です。2020 年 4 月 20 日以降、残りの PostgreSQL 9.4 インスタンスはメンテナンスウィンドウで自動的に PostgreSQL 11 にアップグレードされます。何らかの理由により PostgreSQL 11 にアップグレードできない場合、代わりにインスタンスは PostgreSQL 9.5 にアップグレードされます。
2020 年 4 月 20 日までに既存の Amazon RDS PostgreSQL 9.4 のデータベースをアップグレードして、テストの時間を確保することをお勧めします。9.4 のインスタンスがあるかどうかは、コンソールにログインするとすぐに分かります。付与されたリージョンに Amazon RDS PostgreSQL 9.4 インスタンスがある場合は、9.4 のリタイアの詳細について警告が表示されます。
PostgreSQL 9.4 のインスタンスがアカウントに存在する場合、2020 年 4 月 20 日までは、Amazon RDS の PostgreSQL DB エンジンのアップグレードのメジャーバージョンアップグレードの手順に従って、それらのインスタンスをアップグレードできます。
バージョンを選ぶ
PostgreSQL 9.4 は、様々なアプリケーションの新しいセットとして PostgreSQL を位置付けた、機能豊富なリリースでした。最も顕著な機能は、 JSONB データタイプの導入でした。また、PostgreSQL 9.4 ではロジカルデコーディングを導入しました。これにより、AWS Database Migration Service (DMS) のようなレプリケーションツールが、PostgreSQL をソースデータベースとして使うことができます。この他にも、多くの優れた機能が PostgreSQL の新しいメジャーバージョンで利用可能です。
Amazon RDS はすべての Amazon RDS PostgreSQL 9.4 インスタンスの PostgreSQL 11 へのアップグレードを推奨しますが、ビジネス上の理由により、別のメジャーバージョンへアップグレードせざるを得ない場合もあるかと思います。例えば、PostgreSQL 11 ではいくつかのアプリケーションが保証されておらず、もう少し古いバージョンへ移行しなければならないでしょう。4 月 20 日の自動アップグレード開始前に、手動でアップグレードする場合は、ご自身の要望に最適な PostgreSQL のバージョンを選択できます。
バージョン | コミュニティーの EOL の日付 |
主な機能 |
9.5 | 2021 年 2 月 11 日 | 行セキュリティ Insert on conflict (aka Upsert) |
9.6 | 2021 年 11 月 11 日 | Parallel Query 全文検索 |
10 | 2022 年 11 月 10日 | ネイティブのテーブルパーティショニング 論理レプリケーション |
11 | 2023 年 11 月 9 日 | ストアドプロシージャ カバリングインデックス |
メジャーバージョンごとに新しい機能が利用可能になるだけでなく、Amazon RDS PostgreSQL は年々パフォーマンスを向上し続けています。新しい PostgreSQL のバージョンでは、新しいインスタンスタイプへアクセスすることもできます。同じアプリケーションのワークロードでも、デフォルト構成でのパフォーマンスがメジャーバージョンごとに向上していることが、簡単なベンチマークでも分かります。
PostgreSQL の新しいメジャーバージョンごとに年々パフォーマンスが向上していくので、常に最新のメジャーバージョンにせざるを得ません。しかしながら、クエリやオペレーションによってはアプリケーションのパフォーマンスを後退させる恐れがありますので、アップグレードする前には、互換性だけでなくアプリケーションのパフォーマンスについてもテストしてください。
まとめ
PostgreSQL コミュニティーによる PostgreSQL 9.4 の終了に伴い、すべての Amazon RDS PostgreSQL 9.4 インスタンスをアップグレードする時がきました。セキュリティ関連の不具合修正の他にも、PostgreSQL の運用や管理、開発が容易になるため、アップグレードには多くの利点があります。アプリケーションやプロセスにおいて新機能を活用できるような変更点がなかったとしても、ほとんどのアプリケーションで全体的なパフォーマンスの向上がみられます。新バージョンの PostgreSQL を使うアプリケーションについては、2024 年末にコミュニティ版 PostgreSQL の EOL が予定されており、年間プランの一部として管理されることが分かっています。
著者について
Jim は AWS の主席データベースエンジニアです。AWS 入社前は OpenSCG 社の CTO であり、Postgres-XC のスケーラブルなパブリッククラウドソリューションである StormDB 社の CEO でもありました。Jim は EnterpriseDB 社のチーフアーキテクトであり、創設チームの一員でした。PostgreSQL コミュニティでも非常にアクティブに活動している Jim は、ニューヨークとフィラデルフィア両都市の PostgreSQL Meetup グループを共同で立ち上げ、最大規模の PostgreSQL カンファレンスを共同開催しています。また、PostgreSQL Foundation の理事も務めています。Jim は PostgreSQL および他のオープンソースカンファレンスでも定期的に講演しています。
Mohan Manthena は アマゾンウェブサービスのシニアプロダクトマネージャーです。