[アップデート] Amazon RDS Proxy が SQL Server 2022 に対応したので接続してみた
いわさです。
Amazon RDS の RDS Proxy ですが、実はすべてのデータベースエンジンがサポートされているわけではなく、SQL Server だと 2022、2025 は実はまだサポートされていませんでした。
これが先日のアップデートで RDS Prodxy が RDS for SQL Server の 2022 をサポートしたというアナウンスがありました。
2025 は!?今までは!?とか気になったのでそのあたりを調べつつ、使って見たのでその様子を紹介しますね。
RDS Proxy + RDS for SQL Server サポート状況の確認
RDS Proxy の SQL Server 対応ってどうだったんだっけ?と思ったのですが、RDS for SQL Server のサポート自体は以前からあったのですが、これまでは 2016 / 2017 / 2019 が対象になっていました。
AWS 公式ドキュメントだと以下でサポートされているエンジンなやバージョンが確認できるのですが、本日時点では 2022 も追加されていました。
過去のドキュメント探してみたところ、2022 が記述されていなかったので最近追加されたのだとお、もいます。
一方で RDS for SQL Server 本体で 2022 が使えるようになったのは 2023 年 11 月なのでかなり時間が経ってから使えるようになりましたね。
一方で、今年 7 月に RDS for SQL Server 2025 も使えるようになっていますが、こちらは本日時点でもまだ RDS Proxy ではまだドキュメント上追加されていません。
SQL Server 2025 が非対応であることは公式ドキュメントにも明記されていました。
Currently, RDS Proxy does not support RDS for SQL Server DB instances that run on major version SQL Server 2025.
実際に確認してみる
では実際に検証してみましょう。
SQL Server 2022 と 2025 の RDS インスタンスを 1 台ずつ用意しました。
どちらも Express Edition のシングル AZ で、同じサブネットグループとセキュリティグループに作成しています。

まずは SQL Server 2022 のインスタンスに対して RDS Proxy を作成し、ターゲットとして登録してみます。

あー、もうこの時点で SQL Server 2025 が選択肢に出ないですね。なるほど、サポートされてないからか。

ターゲットの正常性が AVAILABLE になり、Proxy が SQL Server 2022 のインスタンスをターゲットに指定できました。
クライアントからは Proxy のエンドポイントに接続するだけです。
接続先を Proxy のエンドポイントにして、sqlcmd でつないでみます。
$ sqlcmd -S blog-proxy-ss2022.proxy-xxxxxxxx.ap-northeast-1.rds.amazonaws.com,1433 \
-U admin -P "$PASSWORD" -C -N \
-Q "SELECT @@VERSION;"
Microsoft SQL Server 2022 (RTM-CU27) (KB5104824) - 16.0.4295.3 (X64)
Express Edition (64-bit) on Windows Server 2019 Datacenter 10.0 <X64>
Proxy エンドポイント経由で SQL Server 2022 に接続できましたね。
データベースとテーブルを作ってデータも入れてみます。
$ sqlcmd -S blog-proxy-ss2022.proxy-xxxxxxxx.ap-northeast-1.rds.amazonaws.com,1433 \
-U admin -P "$PASSWORD" -C -N \
-Q "CREATE DATABASE blogdemo;"
$ sqlcmd -S blog-proxy-ss2022.proxy-xxxxxxxx.ap-northeast-1.rds.amazonaws.com,1433 \
-U admin -P "$PASSWORD" -C -N -d blogdemo \
-Q "CREATE TABLE dbo.items (id INT PRIMARY KEY, note NVARCHAR(50));
INSERT INTO dbo.items VALUES (1, N'via RDS Proxy'), (2, N'SQL Server 2022');"
(2 rows affected)
$ sqlcmd -S blog-proxy-ss2022.proxy-xxxxxxxx.ap-northeast-1.rds.amazonaws.com,1433 \
-U admin -P "$PASSWORD" -C -N -d blogdemo \
-Q "SELECT id, note FROM dbo.items ORDER BY id;"
id note
----------- --------------------------------------------------
1 via RDS Proxy
2 SQL Server 2022
(2 rows affected)
RDS Proxy 経由でひととおりいけましたね。
次に SQL Server 2025 のインスタンスに対して、同じように RDS Proxy のターゲット登録を試してみます。
マネジメントコンソール上だと先ほどのようにもう選択ができないですね。
AWS CLI でターゲット登録できないかやってみたのですが次のようにエラーになりました。
$ aws rds register-db-proxy-targets \
--db-proxy-name blog-proxy-ss2025 \
--db-instance-identifiers blog-ss2025
An error occurred (InvalidParameterValue) when calling the RegisterDBProxyTargets operation:
Database engine SQLSERVER 17.00.5005.3.v1 for DB Instance blog-ss2025 is not supported.
Register the DB cluster instead of DB instance, or use another DB instance that is supported.
サポートされていないと怒られました。なるほどね。
ちなみに公式ドキュメントによると、Proxy をつけた SQL Server 2022 のインスタンスを 2025 にアップグレードした場合、接続自体は切れないものの、ベクトル型とネイティブ JSON 型の列が本来の型ではなく nvarchar(max) として返るようになると記載されていました。
一応接続はできるが期待した動きにならない場合があるようなので注意しましょう。
さいごに
本日は Amazon RDS Proxy が SQL Server 2022 に対応したので接続してみました。
RDS for SQL Server 2022 使っていた方で RDS Proxy 使いたかったけどサポートされてないんだよなぁと思っていた方は再検討してみてください。2022 で使うことは出来ました。2025 は引き続きサポート外です。
というか RDS エンジンバージョンのアップグレード時は RDS Proxy でサポートされているバージョンにアップグレードしようとしているのか?の観点での確認必要ですね。これは気をつけないとな。










