RDS for SQL Server に SQL Server Management Studio(SSMS)でデータを挿入する

RDS for SQL Server に SQL Server Management Studio(SSMS)でデータを挿入する

Windows Server 2022 の EC2 インスタンスに SQL Server Management Studio(SSMS)をインストールして RDS for SQL Server にデータを挿入するまでを試しました。
2025.09.25

コーヒーが好きな emi です。最近はカフェインを控えています。

RDS for SQL Server を使った検証を行いたく、Windows Server 2022 の EC2 インスタンスに SQL Server Management Studio(SSMS)をインストールして RDS for SQL Server にデータを挿入するまでを試しました。

構成イメージ

以下のような構成で検証します。事前に VPC やサブネットは作成しておいてください。
今回は EC2 と RDS で AZ が別になってしまったのですが、同じ AZ に配置した方が通信料を抑えられます。
rds-for-sql-server-ssms_1-2

1. セキュリティグループの作成

EC2 用セキュリティグループ

  • bastion-ec2-sg

インバウンドルールなし

方向 タイプ プロトコル ポート範囲 送信先 説明
アウトバウンド すべてのトラフィック すべて すべて 0.0.0.0/0 -

RDS for SQL Server 用セキュリティグループ

  • source-db-sg
方向 タイプ プロトコル ポート範囲 ソース 説明
インバウンド MSSQL TCP 1433 sg-0aebce100248db683 / bastion-ec2-sg from bastion-ec2-sg
方向 タイプ プロトコル ポート範囲 送信先 説明
アウトバウンド すべてのトラフィック すべて すべて 0.0.0.0/0 -

2. RDS for SQL Server の作成

サブネットグループは事前に作成しておいてください。

以下のような設定項目でマネジメントコンソールから RDS for SQL Server を作成しました。

項目 設定値
エンジンの種類 Microsoft SQL Server
エディション SQL Server Standard Edition
ライセンスモデル ライセンス込み (License included)
エンジンバージョン SQL Server 2016 13.00.6465.1.v1
テンプレート 開発/テスト
DB インスタンス識別子 source-db
マスターユーザー名 admin
認証情報管理 セルフマネージド(パスワードを手動入力)
DBインスタンスクラス db.r5.large
ストレージタイプ 汎用SSD (gp3)
割り当てストレージ 20 GiB
プロビジョンド IOPS 3000
ストレージスループット 125
自動ストレージスケーリング 無効
マルチAZ配置 なし
VPC vpc-xxxxxx (事前に作成済みの VPC)
サブネットグループ test-subnet-gp(事前に作成済みのサブネットグループ)
パブリックアクセス なし (Private)
VPCセキュリティグループ source-db-sg (事前に作成済みのセキュリティグループ)
アベイラビリティゾーン ap-northeast-1c
RDS Proxy なし
認証機関 rds-ca-rsa2048-g1(デフォルト)
ポート番号 1433
Microsoft 認証 なし
モニタリング データベースインサイト - スタンダード
Performance Insights 有効(7日保持)
AWS KMS キー (default) aws/rds
拡張モニタリング 無効
ログのエクスポート エラー, エージェントログ
DB パラメータグループ default.sqlserver-se-13.0
オプショングループ default:sqlserver-se-13-00
タイムゾーン Tokyo Standard Time
照合順序 Japanese_CI_AS
自動バックアップ 無効
暗号化 有効
AWS KMS キー (default) aws/rds
マイナーバージョン自動アップグレード 無効
メンテナンスウィンドウ 指定なし
削除保護 無効

3. EC2 インスタンス作成

RDS for SQL Server に接続する Windows Server 2022 の EC2 インスタンスを作成します。
Systems Managet フリートマネージャーで接続するので、AmazonSSMManagedInstanceCore ポリシーが付与された IAM ロールをあらかじめ作成しておいてください。

項目 設定値
名前タグ bastion-ec2
AMI (OSイメージ) Microsoft Windows Server 2022 Base
AMI ID ami-02f8df8fa7411ff58
インスタンスタイプ t3.medium (2 vCPU, 4 GiB メモリ)
キーペア (自身のキーを指定してください)
VPC vpc-xxxxxx (事前に作成済みの VPC)
サブネット subnet-047f4864552bf0b23 (事前に作成済みのパブリックサブネット)
自動割り当てパブリックIP 無効
セキュリティグループ 既存のセキュリティグループを選択
セキュリティグループ名 bastion-ec2-sg (事前に作成済みのセキュリティグループ)
ストレージ (ルートボリューム) 30 GiB, gp2, 汎用SSD
追加ストレージ なし
IAMインスタンスプロファイル AmazonSSMManagedInstanceCore ポリシーが付与された IAM ロールを指定

EC2 インスタンスが作成できたら、Systems Manager フリートマネージャーからリモートデスクトップ(RDP)接続します。SSM エージェントが起動するまで 5 分程時間がかかる場合がありますので、フリートマネージャー画面に出てこない場合は少し待ってみてください。
rds-for-sql-server-ssms_2

ユーザーはデフォルトの Administorator、EC2 作成時に設定したキーペアを指定して接続します。
rds-for-sql-server-ssms_3

RDP 接続後、私は好みで日本語パックを入れて日本語化しました。OS の日本語化のやり方は以下のブログを参照ください。
https://dev.classmethod.jp/articles/japanese-language-powershell-for-windows-server-2019/

4. SQL Server Management Studio (SSMS) インストール

RDP 接続できたら、SQL Server Management Studio (SSMS) をダウンロードしてインストールします。ブラウザは Edge が入っているので、Edge を使います。
rds-for-sql-server-ssms_4

今回は検証なので、サインインなどせずに進めます。
rds-for-sql-server-ssms_5
rds-for-sql-server-ssms_6
rds-for-sql-server-ssms_7

SQL Server Management Studio (SSMS) のインストール方法は以下のページを参照します。
https://learn.microsoft.com/ja-jp/ssms/install/install

Edge で検索してもいいですし、URL をコピー&ペーストもできます。
ブラウザでクリップボードのアクセスを許可しておけば、 URL を Windows Server 上にペーストできます。

ブラウザでクリップボードのアクセスを許可する方法は以下ブログの Fleet ManagerからRDP接続 部分を参照ください。
https://dev.classmethod.jp/articles/rdp-connection-to-windows-instances-from-aws-systems-manager-fleet-manager-is-now-available/

さて、Edge で SSMS のインストール方法のページを開いたら、「SSMS 21 のダウンロード」をクリックしてインストーラーをダウンロードします。以前は各言語パックのダウンロードリンクがあったのですが、バージョンが上がってインストーラーが一つになったようです。
rds-for-sql-server-ssms_8

「vs_SSMS.exe」というインストーラーをダウンロードできたら、ダブルクリックで実行してインストールを進めます。
rds-for-sql-server-ssms_9

続行で進めます。
rds-for-sql-server-ssms_10

rds-for-sql-server-ssms_11

インストーラーの準備が終わると以下のような画面になります。SSMS のコア機能の他にも色々機能を含めるか選べるようです。
rds-for-sql-server-ssms_12

今回は SSMS のコア機能だけあれば良いのですが、試しに移行機能とコードツールにチェックを入れてみました。チェックを入れた機能はウィザードの右に表示されるようです。
rds-for-sql-server-ssms_13

他のタブも見てみます。個別コンポーネントタブでは含めるコンポーネントが確認できるようです。
rds-for-sql-server-ssms_14

言語パックタブです。初回実行時に OS の言語と一致するようになっているそうです。私は Windows Server 2019 の PowerShell を日本語化する | DevelopersIO を参考に日本語化していたので日本語がチェックされていました。
rds-for-sql-server-ssms_15

インストールの場所タブではインストールする場所を設定できます。今回はこのままデフォルトでいきます。
各タブを確認し終えたので、インストールします。
rds-for-sql-server-ssms_16

インストールが終わったら、「起動」をクリックして SSMS を起動します。
rds-for-sql-server-ssms_17

ちなみにスタートメニューから [Microsoft SQL Server Tools 21] - [SQL Server Management Studio 21] をクリックして起動してもよいです。
rds-for-sql-server-ssms_42

さて、起動すると最初にサインインを促されますが、今回は検証なのでサインインせずにこのまま進めます。
rds-for-sql-server-ssms_18

新しい接続画面が利用できるとのことなので、「はい」で進めてみます。
rds-for-sql-server-ssms_19

こんな接続画面になりました。ここに、作成済みの RDS for SQL Server の接続情報を入れていきます。
rds-for-sql-server-ssms_20

項目 設定値
Server Name <DB 識別子>.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
Authentication SQL Server 認証
User Name source_db_admin
Password ********
Database Name <既定>
Encrypt Mandatory
Trust Server Certificate 有効 (✓)

「Server Name」には、RDS コンソールで作成済みの RDS for SQL Server インスタンスの詳細を開き、「接続とセキュリティ」タブのエンドポイントをコピーして入力してください。
rds-for-sql-server-ssms_23

「接続」をクリックすると、以下のように RDS for SQL Server に接続できます。
rds-for-sql-server-ssms_24

(参考)接続エラー

「Trust Server Certificate」にチェックを入れないと、以下のようなエラーになり接続できませんでした。
rds-for-sql-server-ssms_21

rds-for-sql-server-ssms_22

			
			タイトル:エラー
------------------------------

この接続で暗号化が有効になっているか、ターゲット SQL Server の SSL と証明書の構成を確認するか、接続ダイアログで [サーバー証明書の信頼] を有効にします」

ヘルプを表示するには次をクリックしてください: https://aka.ms/ssdt

------------------------------
追加情報:

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 信頼されていない機関によって証明書チェーンが発行されました。) (Microsoft SQL Server、エラー: -2146893019)

ヘルプを表示するには次をクリックしてください: https://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2146893019&LinkId=20476

------------------------------

信頼されていない機関によって証明書チェーンが発行されました。

------------------------------
ボタン:

OK
------------------------------


		

5. データベースにデータを挿入する

RDS for SQL Server にデータを挿入していきます。
「新しいクエリ」をクリックすると、クエリを入力できます。

まずはデータベースを作成します。

			
			-- データベースの作成
CREATE DATABASE test_db;

		

rds-for-sql-server-ssms_25

「実行」をクリックすると、データベース test_db が作成されました。画面左のメニューからも test_db が確認できます。
rds-for-sql-server-ssms_26

作成したデータベースに切り替えます。

			
			-- 作成したデータベースに切り替え
USE test_db;

		

実行すると、以下のようにデータベースが切り替わりました。ちなみに画面左上から GUI でデータベースの切り替えもできました。
rds-for-sql-server-ssms_27

続いてテーブルを作成します。

			
			-- テーブルの作成
CREATE TABLE [user] (
    id INT,
    name NVARCHAR(10),
    address NVARCHAR(10)
);

		

以下のように dbo.user テーブルが作成されました。
rds-for-sql-server-ssms_28

dbo はスキーマ名です。
SQL Server の場合、テーブルは必ずどれかのスキーマに所属します。
今回は新規でスキーマを作成しなかったので、デフォルトスキーマである dbo スキーマの配下に user テーブルができた形です。

画面左のメニューからテーブルが確認できるのですが、クエリでもテーブルを表示してみます。

			
			-- 現在のデータベースの全テーブルを表示
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE';

		

以下のようにグリッドで結果が表示されました。
rds-for-sql-server-ssms_29

スキーマ名とテーブル名を表示してみます。

			
			-- スキーマ名とテーブル名を表示
SELECT 
    TABLE_SCHEMA,
    TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE';

		

以下のようにグリッドで結果が表示されました。
rds-for-sql-server-ssms_30

このままでもいいのですが、私はテキスト形式で結果が出た方がコピーできて好きなので、結果の表示形式を変えておきます。
クエリメニューから [結果の出力] - [結果をテキストで表示] をクリックします。
rds-for-sql-server-ssms_31

以下のようにテキストで結果が表示されるようになりました。

			
			TABLE_SCHEMA                                                                                                                     TABLE_NAME
-------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------
dbo                                                                                                                              user

(1 行処理されました)

完了時刻: 2025-09-23T21:32:59.2331601+09:00

		

ちょっと横長ですが…まあいいでしょう。
rds-for-sql-server-ssms_32

データを挿入していきます。

			
			-- データの挿入
INSERT INTO [user] VALUES (1, N'Yamada', N'Tokyo');
INSERT INTO [user] VALUES (2, N'Satou', N'Chiba');
INSERT INTO [user] VALUES (3, N'Kinjo', N'Okinawa');

		

rds-for-sql-server-ssms_34

挿入したデータを確認します。

			
			-- データの確認
SELECT * FROM [user];

		

▼実行結果

			
			id          name       address
----------- ---------- ----------
1           Yamada     Tokyo
2           Satou      Chiba
3           Kinjo      Okinawa

(3 行に影響しました)

完了時刻: 2025-09-23T21:57:15.6974707+09:00

		

挿入したデータを確認できました。
rds-for-sql-server-ssms_35

接続を切断する場合は Server Name で入力したエンドポイント名を右クリックし「接続解除」をクリックします。これまで入力した SQL を保存するか聞かれますが、今回は保存しませんでした。
rds-for-sql-server-ssms_36

おまけ:別の RDS に接続する

バージョン違い(15.00.4440.1.v1)の別の RDS for SQL Server も構築して接続を試しました。新しく接続を作成する場合は以下の [接続] - [データベースエンジン] をクリックします。
rds-for-sql-server-ssms_37

接続情報を入力して、
rds-for-sql-server-ssms_38

同様に接続できました。
rds-for-sql-server-ssms_39

切断して、
rds-for-sql-server-ssms_40

再度接続する際は過去の接続履歴から簡単に再接続できます。
rds-for-sql-server-ssms_41

おわりに

SSMS をちゃんと使ったことが無かったので、勉強になりました。

本記事への質問やご要望については画面下部のお問い合わせ 「DevelopersIO について」 からご連絡ください。記事に関してお問い合わせいただけます。

この記事をシェアする

FacebookHatena blogX

関連記事

RDS for SQL Server に SQL Server Management Studio(SSMS)でデータを挿入する | DevelopersIO