アプリケーションサーバーはAmazon Linux 1で実行されているEC2上にあります。PostgresはAmazon Linuxのサポートを終了したため、Amazonがpostgresクライアントを提供することに依存しています。
クライアントは9.6で、AmazonがホストするRDS postgresサーバーは11.4です。自動化のため、Amazon Linux 1からAmazon Linux 2へのアップグレードにはかなりの時間がかかります。それでも、Amazon Linux 2にはpostgres 10クライアントしかありません。
これは、Rails ORM Active Recordを使用し、単純なクエリと挿入のみを実行する小さなアプリです。
クライアントとして9.6を使用することは禁止されていませんか?リスクは何なのだろう。
PostgreSQLがLinuxディストリビューションのサポートを終了したとは思いません。おそらく、提供されているバイナリインストールパッケージがないことを意味します。
9.6はサポートされているリリースであるため、9.6クライアントを使用しても問題ありません。 scram-sha-256認証などの新機能を使用することはできませんが、それがなくても問題ないと思います。
ソースからPostgreSQLをビルドすることも別のオプションです。
さて、完全な答えはもう少し複雑です。 一般的なルールは、libpq通信ライブラリの両方が同じメジャーバージョンを使用する場合、すべてのクライアントバージョンがすべてのサーバーバージョンで機能することです =(およびプロトコル)。
そう:
psqlコマンドラインクライアント9.6(libpqバージョン5.8)はサーバー11.4で正常に動作するはずです(Postgres 12でもlibpq 5.12を使用しています)。
Libpq.so.5クライアントライブラリに基づく他のツールも正しく動作するはずです。
ただし、pg_dumpツールは、新しいメジャーサーバーバージョンでの動作を拒否します(9.6は9.xで動作しますが、10.x以降では動作しません)。この動作は意図的なものであり、不完全または無効なデータベースバックアップの作成を防止します。
Libpq.soライブラリではなく、他のツールの場合。ネイティブJDBCドライバーでは、それらが実装する通信プロトコルの正確なバージョンを確認する必要があります。