Amazon RDS for SQL Serverにオンプレミス環境のデータをインポート

 

前回、AWS Elastic BeanstalkのWindows環境に、ASP.NETアプリケーションをデプロイする手順を確認した。

AWS Elastic BeanstalkのWindows環境にASP.NETアプリケーションをデプロイする
https://www.cyberarchitect.net/blog/archives/775
 

今回は、データベースアプリケーションをBeanstalkの環境にデプロイする前準備として、Amazon RDS for SQL Serverを起動し、オンプレミス側のSQL Serverのデータを移行する。

なお、今回の手順はVisual Studioを使って実施したが、Visual Studioは必須ではない。SQL Server Management Studioを使ってもデータのインポートはできる。詳しくは、以下のユーザーガイドを参照されたい。

Importing Data to a Microsoft SQL Server DB Instance
http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/ImportData.SQLServer.html
 

1、オンプレミス側のデータをエクスポート

オンプレミス側のSQL Serverに接続済みのVisual Studioを開き、メニューから、表示→サーバエクスプローラを実行。
データをエクスポートするデータ接続を右クリックし、”Publish to provider”を実行。

なお、今回はSQL Server 2000時代のサンプルデータベースである、Northwindを利用する。Northwindのデータは、マイクロソフトのサイトから.msi形式にてダウンロードできる。

Database Publishing Wizardにて、次へ。

Northwindを選択し、次へ。

スクリプトの保存先を指定し、次へ。

次へ。

完了。

成功すれば、データ移行用の.sqlファイルが作成される。
 

2、Amazon RDS for SQL Serverを起動

前回、AWS Toolkit for Microsoft Visual Studioをインストールしているので、Visual StudioからRDSのインスタンスを起動できる。
メニューから、表示→AWS Explorerを実行。

Amazon RDS→DB Instancesを右クリックし、Launch DB Instanceを実行。

今回は、sqlserver-ex(Express Edition)を選択し、Next。

DB Instance Classは、今回Microを選択。
DB Instance Identifierと、Masterのユーザ名、パスワードを入力。
Next。

Availability Zoneは任意のものを選ぶ。
Add current CIDRは、Visual Studioを実行するインターネット接続環境のグローバルIPが自動で識別されているので、チェックをつけておく。こうすることで、Security Groupに現在使っているグローバルIPが追加される。

バックアップの設定が可能だが、今回はNo automatic backupsをチェックし、Next。

Launch。

SQL ServerのRDSが作成される。Statusがavailableになれば起動完了。

 

3、データベースの作成

RDSの環境にNorthwindデータベースを作成する。
AWS Explorerにて、Amazon RDS→DB Instances→を右クリックし、Create SQL Server Databaseを実行。

masterデータベースのユーザ名、パスワード、Database nameを入力し、OK。

Northwindデータベースが作成される。

4、オンプレミスのデータをインポート

手順1でエクスポートした.sqlファイルを利用し、オンプレミス側のデータをRDS側にインポートする。

表示→サーバエクスプローラーを実行。
RDS用のデータ接続ができている。

データ接続(今回であればrds.awssampledb.Northwind)を選択した状態で、メニューからデータ→Transact SQLエディター→新しいクエリ接続を実行。

サーバ名が自動的に選択されているので、パスワードを入力し、接続。

クエリエディタに、手順1で作成した.sqlスクリプト内のSQL文を張り付ける。
クエリの先頭に、”Use Northwind;”と追記することを忘れないこと。
SQLの実行ボタンをクリック。

「クエリが正常に実行されました。」と表示されれば完了。
 

試しにemployeesテーブルをselectしてみると、

RDSからデータを取得できた。

データベースの準備ができたので、次回、データベースアプリケーションをRDS環境にデプロイする。