Microsoft SQL Server DB インスタンスを作成して接続する
このチュートリアルでは、EC2 インスタンスと RDS for MySQL DB インスタンスを作成します。このチュートリアルでは、Microsoft SQL Server Management Studio クライアントを使用して EC2 インスタンスから DB インスタンスにアクセスする方法を示します。ベストプラクティスとして、このチュートリアルでは、プライベート DB インスタンスを仮想プライベートクラウド (VPC) に作成します。ほとんどの場合、EC2 インスタンスなど、同じ VPC 内の他のリソースは DB インスタンスにアクセスできますが、VPC 外部のリソースはアクセスできません。
チュートリアルを完了すると、VPC 内の各アベイラビリティーゾーンにパブリックサブネットとプライベートサブネットができます。1 つのアベイラビリティーゾーンで、EC2 インスタンスはパブリックサブネットにあり、DB インスタンスはプライベートサブネットにあります。
重要
AWS アカウントを作成するための料金はかかりません。ただし、このチュートリアルを完了すると、使用する AWS リソースのコストが発生する可能性があります。これらのリソースが不要になった場合は、チュートリアルの完了後に削除できます。
次の図は、チュートリアルが完了した時点の設定を示しています。
このチュートリアルでは、次のいずれかの方法を使用してリソースを作成できます。
-
AWS Management Console を使用する ‐「SQL Server DB インスタンスを作成する」と「EC2 インスタンスの作成」
-
AWS CloudFormation を使用してデータベースインスタンスと EC2 インスタンスを作成する ‐ (オプション) AWS CloudFormationを使用して VPC、EC2 インスタンス、SQL Server インスタンスを作成する
最初の方法では、[簡単作成] を使用して、AWS Management Console でプライベート SQL Server DB インスタンスを作成します。ここでは、DB エンジンタイプ、DB インスタンスサイズ、DB インスタンス識別子のみを指定します。[Easy create (簡易作成)] では、他の設定オプションのデフォルト設定を使用します。
代わりに [標準作成] を使用する場合は、DB インスタンスの作成時にさらに多くの設定オプションを指定できます。このようなオプションには、可用性、セキュリティ、バックアップ、メンテナンスの設定があります。パブリック DB インスタンスを作成するには、[標準作成] を使用する必要があります。詳細については、Amazon RDS DB インスタンスの作成 を参照してください。
トピック
前提条件
開始する前に、以下のセクションのステップを完了してください。
EC2 インスタンスの作成
データベースへの接続に使用する Amazon EC2 インスタンスを作成します。
EC2 インスタンスを作成するには
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
AWS Management Console の右上で、以前にデータベースに使用した AWS リージョン を選択します。
-
次の図に示すように、[EC2 ダッシュボード] を選択し、次に [インスタンスの起動] を選択します。
[インスタンスを起動] ページが開きます。
-
[インスタンスを起動] ページで次の設定を選択します。
-
[Name and tags] (名前とタグ) の、[Name] (名前) で、
ec2-database-connect
と入力します。 -
[アプリケーションと OS イメージ (Amazon マシンイメージ)] で [Windows] を選択し、次に [Microsoft Windows Server 2022 Base] を選択します。他の選択肢は、デフォルトの選択のままにします。
-
[Instance type] (インスタンスタイプ) で [t2.micro] を選択します。
-
[Key pair (login)] (キーペア (ログイン)) で、[Key pair name] (キーペア名) を選択して、既存のキーペアを使用します。Amazon EC2 インスタンスの新しい key pair を作成するには、[Create new key pair] (新しい key pair を作成する) を選択し、[Create key pair] (キーペアを作成する) ウィンドウを使用して作成します。
キーペアの作成については、Windows インスタンス用 Amazon EC2 ユーザーガイドの「キーペアの作成」を参照してください。
-
ネットワーク設定の [ファイアウォール (セキュリティグループ)] で、[接続元の RDP トラフィックを許可] を選択して EC2 インスタンスに接続します。
表示された IP アドレスが RDP 接続に適している場合は、[マイ IP] を選択できます。それ以外の場合は、RDP を使用して VPC の EC2 インスタンスへの接続に使用する IP アドレスを決定します。パブリック IP アドレスを決定するには、別のブラウザウィンドウまたはタブで、https://checkip.amazonaws.com
のサービスを使用できます。IP アドレスの例は 192.0.2.1/32 です。 多くの場合、インターネットサービスプロバイダー (ISP) 経由、またはファイアウォールの内側から静的 IP アドレスなしで接続することがあります。その場合、クライアントコンピュータが使用する IP アドレスの範囲を確認してください。
警告
RDP アクセスに
0.0.0.0/0
を使用すると、すべての IP アドレスが RDP を使ってパブリック EC2 インスタンスにアクセスできるようになります。この方法は、テスト環境で短時間なら許容できますが、実稼働環境では安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、RDP を使った EC2 インスタンスへのアクセスを承認します。以下のイメージは、[ネットワーク設定] セクションの例を示しています。
-
残りのセクションをデフォルト値のままにします。
-
[概要] パネルで、EC2 インスタンス設定の概要を確認し、準備ができたら、[インスタンスの起動] を選択します。
-
-
[起動ステータス] ページで、新しい EC2 インスタンスの ID (例:
i-1234567890abcdef0
) をメモします。 -
EC2 インスタンス ID を選択して、EC2 インスタンスのリストを開きます。
-
EC2 インスタンスの [インスタンス状態] が [実行中] になるまで待ってから、続行します。
SQL Server DB インスタンスを作成する
Amazon RDS の基本的な構成要素は DB インスタンスです。これは、SQL Server データベースを実行する環境です。
この例では、[簡単作成] を使用して、db.t2.micro DB インスタンスクラスで SQL Server データベースエンジンを実行する DB インスタンスを作成します。
[Easy create (簡易作成)] を使用して Microsoft SQL Server DB インスタンスを作成するには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
Amazon RDS コンソールの右上で、DB インスタンスを作成する AWS リージョン を選択します。
-
ナビゲーションペインで、[データベース] を選択します。
-
[Create database (データベースの作成)] を選択し、[Easy create (簡易作成)] が選択されていることを確認します。
-
[設定] で、[Microsoft SQL Server] を選択します。
-
[エディション] には、[SQL Server Express Edition] を選択します。
-
[DB インスタンスサイズ] で、[無料利用枠] を選択します。
-
[DB instance identifier] (DB インスタンス識別子) に
database-test1
と入力します。[データベースの作成] ページは、次のイメージのようになります。
-
[マスターユーザー名] に、マスターユーザーの名前を入力するか、デフォルト名のままにします。
-
以前に作成した EC2 インスタンスとの接続をセットアップするには、[EC2 接続のセットアップ - オプション] を開きます。
[EC2 コンピューティングリソースに接続] を選択します。以前に作成した EC2 インスタンスを選択します。
-
DB インスタンス用に自動生成されたマスターパスワードを使用するには、[Auto generate a password (パスワードの自動生成)] を選択します。
マスターパスワードを入力するには、[Auto generate a password (パスワードの自動生成)] チェックボックスをオフにして、[Master password (マスターパスワード)] と [Confirm password (パスワードの確認)] に同じパスワードを入力します。
-
[簡易作成のデフォルト設定を表示] を開きます。
[Easy Create (簡易作成)] で使用されるデフォルト設定を調べることができます。[データベース作成後に編集可能] 列には、データベース作成後に変更できるオプションが表示されます。
-
その列の設定に [いいえ] があり、別の設定が必要な場合は、[標準作成] を使用して DB インスタンスを作成できます。
-
その列の設定に [はい] があり、別の設定が必要な場合は、[標準作成] を使用して DB インスタンスを作成するか、DB インスタンスの作成後に設定を変更できます。
-
-
[データベースの作成] を選択します。
DB インスタンスのマスターユーザー名およびパスワードを表示するには、[認証情報の詳細の表示] を選択します。
表示されるユーザー名とパスワードを使用して、マスターユーザーとして DB インスタンスに接続できます。
重要
マスターユーザーのパスワードを再度表示することはできません。記録していない場合は、変更する必要がある場合があります。
DB インスタンスが有効になった後にマスターユーザーのパスワードを変更する必要がある場合は、そのように DB インスタンスを変更することができます。DB インスタンスの変更の詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
[データベース] リストで、新しい SQL Server DB インスタンスの名前を選択し、詳細を表示します。
DB インスタンスが使用できるようになるまで、DB インスタンスのステータスは [作成中] のままです。
ステータスが [Available] (利用可能) に変わったら、DB インスタンスに接続できます。DB インスタンスクラスとストレージの合計によっては、新しいインスタンスを使用できるようになるまで最長 20 分かかることがあります。
(オプション) AWS CloudFormationを使用して VPC、EC2 インスタンス、SQL Server インスタンスを作成する
コンソールを使用して VPC、EC2 インスタンス、SQL Server インスタンスを作成する代わりに、AWS CloudFormation を使用して Infrastructure as Code として取り扱うことで、AWS リソースをプロビジョンできます。AWS リソースをより小さく管理しやすい単位に整理するには、AWS CloudFormation のネストされたスタック機能を使用できます。詳細については、「AWS CloudFormation コンソールでのスタックの作成」と「ネストされたスタックの操作」を参照してください。
重要
AWS CloudFormation には課金されません。ただし、CloudFormation が作成するリソースは本番稼働です。これらのリソースを終了するまで、標準使用料が発生します。合計料金はごくわずかです。料金を最小限に抑える方法については、「AWS 無料利用枠
AWS CloudFormation コンソールを使用してリソースを作成するには、以下のステップを実行します。
CloudFormation テンプレートをダウンロードする
CloudFormation を使用してリソースを設定する
CloudFormation テンプレートをダウンロードする
CloudFormation テンプレートは、スタックに作成するリソースに関する設定情報が含まれる JSON または YAML のテキストファイルです。このテンプレートは、RDS インスタンスとともに VPC と踏み台ホストも作成します。
テンプレートファイルをダウンロードするには、次のリンク、SQL Server CloudFormation template
この Github ページで、[Download raw file] ボタンをクリックしてテンプレートの YAML ファイルを保存します。
CloudFormation を使用してリソースを設定する
注記
このプロセスを開始する前に、AWS アカウント に EC2 インスタンスのキーペアがあることを確認してください。詳細については、「Amazon EC2 キーペアおよび Linux インスタンス」を参照してください。
AWS CloudFormation テンプレートを使用する場合は、適切なパラメータを選択して、リソースが正しく作成されていることを確認する必要があります。以下のステップを実行します。
AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation
) を開きます。 [Create Stack] (スタックの作成) を選択します。
[テンプレートの指定] セクションで、[コンピュータからテンプレートファイルをアップロード] を選択し、[次へ] をクリックします。
[スタックの詳細を指定] ページで、次のパラメータを設定します。
[スタック名] は [SQLServerTestStack] に設定します。
[パラメータ] で、3 つのアベイラビリティーゾーンを選択して、[アベイラビリティーゾーン] を設定します。
[Linux 踏み台ホスト設定] で、[キー名] に EC2 インスタンスにログインするキーペアを選択します。
-
[Linux 踏み台ホスト設定] で、[許可された IP 範囲] を IP アドレスに設定します。Secure Shell (SSH) を使用して VPC 内の EC2 インスタンスに接続するには、https://checkip.amazonaws.com
のサービスを使用してパブリック IP アドレスを確認します。IP アドレスの例は 192.0.2.1/32 です。 警告
SSH アクセスに
0.0.0.0/0
を使用すると、すべての IP アドレスが SSH を使ってパブリック EC2 インスタンスにアクセスできるようになります。この方法は、テスト環境で短時間なら許容できますが、実稼働環境では安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、SSH を使った EC2 インスタンスへのアクセスを承認します。 [Database General configuration] で、[データベースインスタンスクラス] を [db.t3.micro] に設定します。
[データベース名] を
database-test1
に設定します。[データベースマスターユーザー名] には、PDB のマスターユーザー名を入力します。
-
このチュートリアルでは、[Secrets Manager で DB マスターユーザーパスワードを管理] を
false
に設定します。 [データベースパスワード] には、任意のパスワードを設定します。このパスワードは、チュートリアルの他の手順のために覚えておいてください。
[Database Storage configuration] で、[Database storage type] を [gp2] に設定します。
[Database Monitoring configuration] で、[Enable RDS Performance Insights] を false に設定します。
その他の設定はすべてデフォルトの値のままにします。[次へ] をクリックして続行します。
[スタックオプションの設定] ページでは、すべてのデフォルトオプションをそのまま使用します。[次へ] をクリックして続行します。
[スタックの確認] ページで、データベースと Linux 踏み台ホストのオプションを確認した後、[送信] をクリックします。
スタックの作成プロセスが完了したら、BastionStack と RDSNS という名前のスタックを確認して、データベースへの接続に必要な情報をメモします。詳細については、「AWS Management Console での AWS CloudFormation スタックデータとリソースの表示」を参照してください。
SQL Server DB インスタンスに接続する
次の手順では、Microsoft SQL Server Management Studio (SSMS) を使用して、DB インスタンスに接続します。
SSMS を使用して、RDS for SQL Server DB インスタンスに接続するには
-
DB インスタンスのエンドポイント (DNS 名) とポート番号を見つけます。
-
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 Amazon RDS コンソールの右上で、DB インスタンスの AWS リージョン を選択します。
-
ナビゲーションペインで、[データベース] を選択します。
-
SQL Server DB インスタンスの名前を選択して詳細を表示します。
-
[接続] タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。
-
-
Windows インスタンスに関する Amazon EC2 ユーザーガイドの「Microsoft Windows インスタンスに接続する」のステップに従って、先ほど作成した EC2 インスタンスに接続します。
-
SQL Server Management Studio (SSMS) クライアントをインストールします。
この SSMS のスタンドアロンバージョンを EC2 インスタンスにダウンロードするには、Microsoft ドキュメントの 「Download SQL Server Management Studio (SSMS)
」を参照してください。 -
スタートメニューを使用して、Internet Explorer を開きます。
-
Internet Explorer を使用して、SSMS のスタンドアロンバージョンをダウンロードしてインストールします。サイトが信頼されていないことを示すメッセージが表示されたら、そのサイトを信頼済みサイトのリストに追加します。
-
-
SQL Server Management Studio (SSMS) を起動します。
[サーバーに接続] ダイアログボックスが表示されます。
-
サンプルの DB インスタンスに以下の情報を入力します。
-
[サーバーの種類] で、[データベース エンジン] を選択します。
-
[サーバー名] に、DNS 名、カンマ、ポート番号 (デフォルトポートは 1433) の順に入力します。サーバー名は以下の例のようになります。
database-test1.
0123456789012
.us-west-2
.rds.amazonaws.com,1433 -
[認証] で、[SQL Server 認証] を選択します。
-
[ログイン] に、サンプル DB インスタンスを使用するために選択したユーザー名を入力します。これは、マスターユーザー名とも呼ばれます。
-
[パスワード] に、先ほど選択した、サンプル DB インスタンスのパスワードを入力します。これは、マスターユーザーパスワードとも呼ばれます。
-
-
[接続]を選択します。
しばらくすると、SSMS が DB インスタンスに接続されます。セキュリティのためには、暗号化された接続を使用することがベストプラクティスです。クライアントとサーバーが同じ VPC にあり、ネットワークが信頼されている場合に限り、暗号化されていない SQL Server 接続を使用します。暗号化された接続の使用については、「Microsoft SQL Server DB インスタンスでの SSL の使用」を参照してください
Microsoft SQL Server DB インスタンスへの接続の詳細については、Microsoft SQL Server データベースエンジンを実行する DB インスタンスに接続する を参照してください。
接続の問題については、「Amazon RDS DB インスタンスに接続できない」を参照してください。
サンプル SQL Server DB インスタンスを探索する
Microsoft SQL Server Management Studio (SSMS) を使用して、サンプル DB インスタンスを探索できます。
SSMS を使用して DB インスタンスを試すには
-
SQL Server DB インスタンスには、SQL Server の標準内蔵システムデータベース (master、model、msdb、tempdb) が含まれています。システムデータベースを閲覧するには、次を実行します。
-
SSMS の [ビュー] メニューで、[オブジェクト エクスプローラー] を選択します。
-
図のように、DB インスタンスを展開し、[Databases (データベース)] を展開します。その後、以下のように [System Databases (システムデータベース)] を展開します。
SQL Server DB インスタンスには、
rdsadmin
という名前のデータベースも含まれています。Amazon RDS では、このデータベースを使用して、データベースを管理するために使用するオブジェクトを保存します。rdsadmin
データベースには、詳細なタスクを実行するために保存された手順も含まれます。 -
-
独自のデータベース作成、および通常の DB インスタンスとデータベースに対するクエリの実行をスタートします。サンプルの DB インスタンスに対してテストクエリを実行するには、次を実行します。
-
SSMS の [ファイル] メニューで [新規] をポイントし、[クエリを現在の接続で実行] を選択します。
-
次の SQL クエリを入力します。
select @@VERSION
-
クエリを実行します。SSMS は、Amazon RDS DB インスタンスの SQL Server のバージョンを返します。
-
EC2 インスタンスと DB インスタンスを削除する
作成したサンプル EC2 インスタンスと DB インスタンスに接続して、探索したら、料金がこれ以上発生しないように、それらを削除します。
AWS CloudFormation を使用してリソースを作成した場合は、このステップをスキップして次のステップに進みます。
EC2 インスタンスを削除するには
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[インスタンス] を選択します。
-
EC2 インスタンスを選択し、[インスタンスの状態]、[インスタンスの終了] の順に選択します。
-
確認を求めるメッセージが表示されたら、[Terminate (終了)] を選択します。
EC2 インスタンスの削除の詳細については、Windows インスタンス用ユーザーガイドの「インスタンスの終了」を参照してください。
最終的な DB スナップショットを作成せずに DB インスタンスを削除するには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
削除する DB インスタンスを選択します。
-
[アクション] で、[削除] を選択します。
-
[最終スナップショットを作成] と [自動バックアップの保持] をクリアします。
-
確認を完了し、[削除] を選択します。
(オプション) CloudFormation で作成された EC2 インスタンスと DB インスタンスを削除する
AWS CloudFormation を使用してリソースを作成した場合は、サンプル EC2 インスタンスと DB インスタンスに接続して確認を済ませた後、それ以上料金が発生しないように、CloudFormation スタックを削除します。
CloudFormation リソースを削除するには
AWS CloudFormation コンソールを開きます。
-
CloudFormation コンソールの [スタック] ページで、ルートスタック (VPCStack、BastionStack、または RDSNS という名前がついていないスタック) を選択します。
-
[削除] を選択します。
-
確認を求めるメッセージが表示されたら、[削除] を選択します。
CloudFormation でのスタックの削除方法の詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation コンソールでのスタックの削除」を参照してください。
(オプション) DB インスタンスを Lambda 関数に接続する
RDS for SQL Server DB インスタンスを Lambda サーバーレスコンピューティングリソースに接続することもできます。Lambda 関数を使用すると、インフラストラクチャをプロビジョニングしたり管理したりせずにコードを実行できます。Lambda 関数を使用すると、1 日に 数十件のイベントから 1 秒間に数百件のイベントまで、あらゆる規模のコード実行リクエストに自動的に応答することもできます。詳細については、「Lambda 関数と DB インスタンスを自動的に接続する」を参照してください。