Category Archives: SQL Server

AWS Elastic BeanstalkのWindows環境からAmazon RDS for SQL Serverに接続する

  これまで、Beanstalkの環境の準備と、RDSの環境の準備を行ってきた。 1、AWS Elastic BeanstalkのWindows環境にASP.NETアプリケーションをデプロイする http://www.cyberarchitect.net/blog/archives/775 2、Amazon RDS for SQL Serverにオンプレミス環境のデータをインポート http://www.cyberarchitect.net/blog/archives/825   今回は、BeanstalkにデプロイしたASP.NETアプリケーションから、RDS for SQL Serverに接続を行う。   1、オンプレミスでデータベースアプリケーションを作成する 今回も、AWSを意識する必要はない。 普通に、employees表にクエリを発行し、GridViewに結果を表示するアプリを作成しておく。   2、web.configの修正 Beanstalkにアプリをデプロイする前に、web.configに記述されているSqlDataSourceのconnectionStringを、RDSに合わせて変更しておく。 サーバエクスプローラーにて、RDS用のデータ接続(今回であればrds.awssampledb.Northwind)を右クリックし、プロパティを実行。 「接続文字列」の文字列をコピーする。 web.configを開き、connectionStringに値をペーストする。パスワード部分は******になっているので、実際のパスワードを入力すること。 <?xml version=”1.0″?> <!– ASP.NET アプリケーションを構成する方法の詳細については、 http://go.microsoft.com/fwlink/?LinkId=169433 を参照してください –> <configuration> <connectionStrings> <add name=”NorthwindConnectionString” connectionString=”Data Source=awssampledb.c0gklmclwhik.us-east-1.rds.amazonaws.com,1433;Initial Catalog=Northwind;User ID=awsdbadm;Password=” providerName=”System.Data.SqlClient” /> </connectionStrings> <system.web> <compilation debug=”false” targetFramework=”4.0″ /> </system.web> </configuration> これで、データベースアプリケーションをBeanstalkにデプロイする準備はできた。   3、アプリケーションのデプロイ Visual Studio上で、デプロイ対象のWebサイトを右クリックし、Publish to AWSを実行。 前回設定したAccountが残っているので、AWS Elastic Beanstalkを選択し、Next。 今回も”Deploy application incrementaly”のチェックははずし、Next。 URL文字列を設定。Next。 Optionsの設定を行う。32bit環境でアプリを作成した場合は、”Enable 32-bit applications”のチェックを忘れないこと。 RDSが起動した状態でデプロイする場合、RDSのSecurity Groupの設定画面が表示される。 defaultをチェックし、Next。 Deployを実行。 Statusが”Environment is healthy”と表示されれば成功。   4、アプリケーションにアクセス ブラウザを開き、アプリケーションにアクセス。 BeanstalkにデプロイしたASP.NETアプリケーションから、RDSのSQL Serverにクエリを発行し、処理結果をブラウザに返すことができた。     これまでは、 サーバを調達・キッティング、ストレージを調達・設定、L2/L3機器を調達・設定、仮想化環境の設定、OSをインストール・設定、IISと.NET Frameworkをインストール・設定、データベースをインストール・設定、インターネット回線とグローバルIPを調達、負荷分散装置を調達・設定、ファイアウォールを調達・設定・・etc ときて、やっとアプリのデプロイまで辿りつけたのだが、BeanstalkとRDSのWindows対応で、インフラ構築工数が相当削減されることがわかる。 今回は単純な環境でテストしたため、手順としては非常に簡単だったが、商用環境の場合、そもそもデータ容量が数百GB~数TBであったり、外部キーやトリガー等の絡みで、データ移行はもっと複雑になる。また、運用等も含めて色々と考えることはたくさんあるため、商用環境での利用の場合、日本のAmazonさんに技術支援を依頼することが必要になると思われる。営業窓口や勉強会等を通じて、Amazonさんとは日頃からリレーションを作るようにしておきましょう。

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

  前回、AWS Elastic BeanstalkのWindows環境に、ASP.NETアプリケーションをデプロイする手順を確認した。 AWS Elastic BeanstalkのWindows環境にASP.NETアプリケーションをデプロイする http://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 Server 2008でサンプルデータベースを作成

  昔、SQL ServerにはNorthwindとかPubsとか、サンプルテーブルが付属していたが・・・。2008にはない。Oracleのscottと同じで、実運用に不要なものはデフォルト入れてくれない。 というわけで、サンプルDBをインストールする。以下のURLよりインストールモジュールを入手。 http://www.codeplex.com/SqlServerSamples#databases 上記ページにて、Microsoft Sample DatabasesをDownloadクリック。 事前準備 インストール実行前に、以下を確認しておくこと。 1、「フルテキスト検索」がインストール済みであること。 2、FILESTREAMが有効化されていること。(確認方法後述) 3、SQL Serverのインスタンスが起動していること。 インストール実行 Nextをクリック。 acceptしてNextをクリック。 必要なfeaturesを選択して、Nextをクリック。 サンプルデータベースを導入するインスタンスを選択し、Nextをクリック。 Install。インストールが実行される。 ここで、FILESTREAMが有効化されていないか、フルテキスト検索がインストールされていないとエラー発生。”The following features are missing: FILESTREAM and Full Text Search”と叱られる。 インストール完了。 動作確認。Employee表を検索してみる。うまくいってるみたい。 FILESTREAMの確認の仕方 デフォルトでは有効化されてないらしいのだが。私の環境では最初から有効化されていたように見えましたが・・・謎。 Microsoft SQL Server 2008→構成ツール→SQL Server構成マネージャ起動。 SQL Serverのサービスを選択し、右側ペインでインスタンスを右クリック。プロパティ。 FILESTREAMタブで、「Transact-SQL~」と「ファイルI/Oストリーム~」にチェックがついていることを確認。 [amazon_enhanced asin=”4883376826″ /]