0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDS Custom for SQL Server用のCEVを作成する手順

0
Posted at

はじめに

OSレベルの操作が必要など、特定の要件を満たすためにSQL Serverのカスタマイズが必要な場合、RDS Custom for SQL Serverを利用してCustom Engine Version(CEV)を作成する必要があります。

この記事では、SQL Server Developer Editionを使ったCEVの作成手順を、つまずきやすいポイントを中心にまとめます。
他のEditionでも基本的な手順は同じはずですので、参考になれば幸いです。

2025年12月現在、通常のRDSでもSQL Server Developer Edtitionが利用可能になりました。開発用にDeveloper Editionを使いたいだけであれば、RDSの利用を検討してください。

BYOM(Bring Your Own Media)の要件と制限

一般要件

  • サポート対象エディション: SQL Server 2022/2019 の Enterprise、Standard、Developer エディション
  • SA権限の付与: NT AUTHORITY\SYSTEM に SQL Server システム管理者(SA)サーバーロール権限を付与する
  • タイムゾーン設定: EC2 Windows Server OS を UTC で設定する(デフォルトで設定済み)
  • ポート設定: SSM 接続のため TCP ポート 1433 と UDP ポート 1434 を開放する

制限事項

  • インスタンス: デフォルトの SQL Server インスタンス(MSSQLSERVER)のみサポート(名前付きインスタンスは非対応)
  • 複数インストール: 各 AMI では 1 つの SQL Server インストールのみサポート
  • 非対応エディション: Web エディションおよび評価版(Evaluation)は非対応
  • リージョン・バージョン: 機能の利用可能性は AWS リージョンとデータベースエンジンバージョンに依存

詳しくは、公式ドキュメントの「RDS Custom for SQL Server の BYOM の要件と制限」を参照してください。

今回作成するCEVの構成

設定項目 詳細
OS Windows Server 2019
SQL Server SQL Server 2022 Developer Edition
SQL Server Version 16.0.4210.1

重要: OSは必ずWindows Server 2019を使用してください。

SQL Serverのバージョンは、RDSでサポートされているマイナーバージョンから選択してください。

ゴールデンイメージの作成

EC2インスタンスの作成

RDS Custom for SQL Server用のCEVを作成するためのEC2インスタンスを起動します。SQL Serverのインストールをインターネット経由で行う場合は、インターネットアクセス可能なサブネットに配置し、適切なセキュリティグループを設定してください。

  • AMI: Windows Server 2019 Full Base
  • インスタンスタイプ: t3.large以上を推奨
  • ストレージ: 30GB(SQL Server のみインストールする場合)

使用オペレーションの確認

EC2インスタンス作成後、AMIの請求情報が正しく設定されていることを確認します。

  1. Amazon EC2コンソールで作成したEC2インスタンスを選択
  2. [詳細] タブを開く
  3. [使用オペレーション]RunInstances:0002 であることを確認

image.png

SQL Server Developer Editionのインストール

EC2インスタンスにSQL Server Developer Editionをインストールします。

私が試した際は、事前に用意したISOイメージをマウントしてインストールしましたが、インターネットから直接インストールすることも可能です。

ISOイメージの作成方法は、Microsoftの公式ドキュメントを参照してください。
https://learn.microsoft.com/ja-jp/ssms/install/create-offline

インストール時の注意点

基本的にはインストールウィザードに従って進めますが、以下の点に注意してください。

  1. インスタンス構成
  • インスタンス名: デフォルトの MSSQLSERVER を使用

image-1.png

  • インスタンスのルートディレクトリ: C:\Program Files\Microsoft SQL Server\(変更不可)
  1. サービスアカウント設定
  • SQL Server データベースエンジンアカウント名: NT Service\MSSQLSERVER または NT AUTHORITY\NETWORK SERVICE
  • SQL Server のスタートアップモード: 手動 に設定

image-2.png

  1. 認証モード
  • SQL Server 認証モード: 混合モード(Windows認証とSQL Server認証) を選択

image-3.png

  1. データディレクトリ
  • デフォルトの [データ] ディレクトリ: 現在の設定のまま変更しない
  • TempDB ロケーション: 現在の設定のまま変更しない

マイナーバージョンの更新

SQL Serverのインストール完了後、指定のマイナーバージョンにアップデートします。

Microsoft Update カタログから、RDSでサポートされているマイナーバージョンの更新プログラムをダウンロードします。

今回は、2025年12月時点のRDSで使用できる最新バージョン16.0.4195.2をダウンロードしてインストールします。

image-4.png

SQL Server の権限設定

SQL Serverに対して以下のクエリを実行し、NT AUTHORITY\SYSTEMsysadmin 権限を付与します。

USE [master]
GO
EXEC master..sp_addsrvrolemember @loginame = N'NT AUTHORITY\SYSTEM' , @rolename = N'sysadmin'
GO

ついでに、以下のクエリを実行して、指定したバージョンに更新されていることを確認します。

SELECT @@VERSION

インスタンス固有のシステム設定を削除してAMIを作成

System Preparation Tool (Sysprep) を使用して、インスタンス固有のシステム設定を削除します。

EC2インスタンスにプリインストールされているEC2Launchを使用してSysprepを実行します。実行完了後、自動的にシャットダウンされます。

image-7.png

EC2Launchに関する詳しい情報は、以下の公式ドキュメントを参照してください。

EC2インスタンスがシャットダウンされたら、AMIを作成します。

image-5.png

AMIの作成には約20分かかりました。
この手順で作成したAMIがゴールデンイメージとなります。

CEVの作成

作成したAMIを使用して、RDS Custom for SQL Server用のCEVを作成します。

RDSコンソールの「カスタムエンジンバージョン」から新しいCEVを作成し、データベースの種類とバージョンを選択した後、前の手順で作成したAMIを指定します。

image-6.png

RDS Custom for SQL Server インスタンスの作成

前提条件の準備

RDS Custom for SQL Serverインスタンスを作成する前に、リソースを準備する必要があります。

必要なリソースの一例

  • KMSキー: カスタマーマネージド対称暗号化キー(AWSマネージドキーはおそらく不可)
  • IAMインスタンスプロファイル: 特定のポリシーをアタッチしたIAMロールを作成し、インスタンスプロファイルとして設定
  • VPC構成: RDSインスタンス用のVPC、サブネットグループ、セキュリティグループ、エンドポイントなど
  • そのほかいろいろ

これらを手動で作成するのは手間がかかるため、今回はAWSが提供するCloudFormationテンプレートを使用します。

CloudFormationテンプレートの使用:

  1. 公式ドキュメントからテンプレートをダウンロード
  2. CloudFormationコンソールでスタックを作成(約3分で完了)
  3. 出力タブで作成されたリソースIDを確認

今回はテスト用途のため、デフォルト設定のままスタックを作成しました。本番環境では、ドキュメントを参考に適切な設定を行う必要があります。

image-8.png

DBインスタンスの作成

CloudFormationスタックの準備が完了したら、RDSコンソールから新しいデータベースを作成します。

設定のポイント:

  • エンジンバージョン: 前の手順で作成したCEVを指定

image-9.png

VPC、サブネット、セキュリティグループ、IAMインスタンスプロファイル、AWS KMSキーは、CloudFormationで作成したものを指定します。
(以下の画像は、CloudFormationのスタック名をTestRdsCustomStackにした場合の例です)

image-10.png

image-11.png

なにも問題ないことを祈りつつ、インスタンスを作成します。

無事にインスタンスが作成できて、指定したマスターユーザー名とパスワードで接続できれば成功です。
(作成まで約1時間程度かかりました。)

image-12.png

カスタムエンジンバージョンも、検証中から利用可能になっているはずです。

image-13.png

まとめ

前提条件が想像以上に多く大変でした。ゴールデンイメージの作成や、RDSインスタンスの作成などはEC2 Image Builderや、CloudFormationで自動化しておくとよいと思います。

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?