RDS for SQL Server Standard Edition から Enterprise Edition に変更してみる
コーヒーが好きな emi です。
RDS for SQL Server では、一部の機能が Enterprise Edition でしかサポートされていない場合があります。
RDS for SQL Server の BCP 対策を検討する中でリードレプリカも視野に入れたのですが、RDS for SQL Server の場合、リードレプリカは Enterprise Edition でのみサポートされています。
RDS for SQL Server Standard Edition から Enterprise Edition に変更するには、スナップショットから復元する必要があります。
本ブログでは RDS for SQL Server Standard Edition から Enterprise Edition への変更を検証してみました。
構成図
AD 環境ではない WORKGROUP 環境で検証しました。
0. 事前準備
- VPC を作成しておいてください。今回は私の検証環境にあらかじめ作成しておいた VPC を使用します。
- DB サブネットグループも作成しておきました。
- 2. クロスリージョン自動バックアップを設定 を参考に、RDS for SQL Server Standard Edition インスタンスを作成しておきます。
1. スナップショットから RDS for SQL Server Enterprise Edition を作成
スナップショットから復元します。
自動バックアップとスナップショットの違いは以下の FAQ の 「自動化バックアップと DB スナップショットの違いは何ですか?」 のセクションを参考にしてください。
スナップショットから復元すると、DB エンジンのエディションが選択できます。ここで、Enterprise Edition を選択します。
DB インスタンス識別子に、Enterprise Edition であることが分かりやすいように ee と入れました。他は画像の通り設定します。
可用性と耐久性は以下のように設定します。セキュリティグループは後で変更します。
暗号化の部分はグレーアウトしており変更できませんでした。
DB インスタンスを復元します。10~20分程度で利用可能になりました。
2. 設定の確認
左が復元した Enterprise Edition、右が元になった Standard Edition です。
設定タブを見ると、復元した Enterprise Edition の方はマスターパスワードがセルフマネージドになっていました。
3. 復元した RDS for SQL Server Enterprise Edition のマスターパスワードを確認する
復元した RDS for SQL Server Enterprise Edition のマスターパスワードを確認します。
(構成図では AZ を跨いでしまっていますが、通信料金が発生しますので同じ AZ を使った方が良かったです)
EC2 インスタンスで Windows Server 2022 を構築し、SSM フリートマネージャーで RDP 接続します。
SQL Server に接続するために、 SQL Server Management Studio (SSMS) をインストールしておきます。
Windows Server 2022 で Edge を使い、以下のダウンロードページを開いてください。
ダウンロードページで、日本語版の SSMS をダウンロードします。
デフォルトのディレクトリにインストールします。
SSMS を開きます。
接続情報として、Secrets Manager 画面を開き、復元もととなった RDS for SQL Server Standard Edition のシークレット情報を取得しておきます。
SSMS で以下のように入力します。
- Server name:復元した RDS for SQL Server Enterprise Edition のエンドポイント
- Authentication:SQL Server Authentication
- Login:復元もととなった RDS for SQL Server Standard Edition のシークレット情報
- Password:復元もととなった RDS for SQL Server Standard Edition のシークレット情報
- Trust server certificate にチェックする
接続できました。復元した RDS for SQL Server Enterprise Edition インスタンスのマスター認証情報は、復元もととなった RDS for SQL Server Standard Edition のシークレット情報がセルフマネージド形式で使える状態であることが確認できました。
一旦 SSMS の接続を切っておきます。
4. 復元した RDS for SQL Server Enterprise Edition のマスターパスワードを Secrets Manager 管理に変更する
復元した RDS for SQL Server Enterprise Edition のマスターパスワードを Secrets Manager 管理に変更します。「変更」 をクリックします。
「認証情報管理」 で 「AWS Secrets Manager で管理」 を選択し、暗号化キーを指定します。
認証情報管理の項目を変更すると、「すぐに変更」 になります。
変更中は Ressetting と表示されます。
少し待つと、利用可能になりました。
再度設定タブを Enterprise Edition と Standard Edition で比べてみます。両方とも Secrets Manager 管理の状態になりました。
Enterprise Edition のシークレットと Standard Edition のシークレットは別のものです。
では、再度 Windows Server 2022 にリモートデスクトップ接続し、SSMS で SQL Server にログインしてみます。Enterprise Edition のインスタンスエンドポイントに対し、新しく設定した Secrets Manager のシークレット情報を入力すると、
接続できました。
古い方のシークレット(Standard Edition)では接続できなくなっていることも確認できました。
(余談)RDS for SQL Server Enterprise Edition ではリードレプリカが作成できる
RDS for SQL Server Enterprise Edition はリードレプリカをサポートしています。以下のように、リードレプリカの作成メニューが表示されます。
RDS for SQL Server Standard Edition ではリードレプリカが作成できません。メニューにも表示されません。
おわりに
本記事への質問やご要望については画面下部のお問い合わせ「DevelopersIO について」からご連絡ください。記事に関してお問い合わせいただけます。
参考