Development Storage
Windows Azureストレージのローカル仮想ストレージ環境です。開発環境でのWindows Azureストレージへのアクセスは、このDevelopment Storageに対して行われます。
Windows Azure Platformにおけるクラウド上のデータストアとして、Windows AzureストレージとSQL Azureが用意されています。これら2つのデータストアの使い分けに関して、参考点をまとめてみます。
ここでは特に、分散Key-Valueストアのテーブルと、クラウド上のリレーショナルデータベースであるSQL Azureを比較してみます。
比較内容 | テーブル | SQL Azure |
---|---|---|
データ量 | スケールアウトするので大規模なデータ量にも対応 | データ量に1GBか10GBの上限がある(Web Editionが1GB、Business Editionが10GB) |
運用コスト(1ヶ月当たり) | データ1GB毎に¥14.70(+10,000トランザクション毎に¥0.98) | Web Edition(1GB)が¥979.02、Business Edition(10GB)が¥9,799.02 |
移行コスト(既存のSQL Server対応アプリケーションをクラウド化する場合) | 非リレーショナルでスキーマレスであるテーブルに対応するために、多くの修正が必要 | SQL Serverに対する既存のコードの多くが再利用可能のため、少ない修正で対応可能 |
どちらのストアを使用するか、または共存させるかについては、上記の表にあるような違いをよく考慮して決定する必要があります。
開発環境を整える
まず、Windows Azureストレージプログラミングのための開発環境を整えておきましょう。
前回の「Windows Azureの開発環境のインストール」の部分を参考にしながら、開発環境を整えてください。
なお、Windows Azure Tools for Microsoft Visual Studio(Windows Azure SDKを含む)が更新されており、執筆時点では、バージョン1.1(February 2010)が最新となっています(コラム「Windows Azure SDK 1.1の新機能」を参照)。
注意点として、バージョン1.1は前バージョンとは異なり、Visual Studio 2010 Beta 2をサポートしていません。サポートしている開発環境は、Visual Studio 2008 SP1、Visual Studio 2010 RC(英語版のみリリース)、Visual Web Developer 2008 Express Edition with SP1のいずれかです。それで、VS 2010 Beta 2を使用されている場合は、前バージョンのNovember 2009リリースを使うようにしてください。
加えて、今回はWindows Azureストレージを使用するために、「SQL Server Express versions 2005 or 2008」もインストールする必要があります。
これは、Windows Azureストレージのローカル仮想ストレージ環境であるDevelopment Storageが、内部でSQL Serverデータベースを使用するためです。
なお、デフォルトではSQL Server 2005/2008 Express が使用されますが、ローカル上のSQL Serverを使用することも可能です。その場合は、Windows Azure SDKに付属するDSInitコマンドツール(DSInit.exe)を、/sqlinstanceパラメータを指定して実行します。
DSInit /sqlinstance:インスタンス名
これで、Windows Azureストレージプログラミングの開発環境が整いました。
以降、筆者の環境では、Visual Studio 2008 SP1の環境を使用して、サンプルを作成します。
2010年2月に、Windows Azure Tools for Microsoft Visual Studio 1.1がリリースされました。この中に含まれるWindows Azure SDK 1.1では、いくつかのバグフィックスに加え、次の2つの機能が新たに追加されました。
(1)Windows Azure Drive
Windows Azure Driveを使用すると、Windows AzureストレージのブロブをNTFSボリュームとしてマウントし、NTFSのファイルのように読み書きすることが可能になります。Azureアプリケーションから、X:のようにマップされたドライブレターを通して、通常のファイルのような仕方でブロブを扱うことができる便利な機能です。
Windows Azure Driveの機能は、Microsoft.WindowsAzure.StorageClient名前空間のCloudDriveクラスによって実装されています。
(2)OSバージョンの選択(OS Version Support)
Azureアプリケーションを実行するWindows AzureのゲストOSに、どのバージョンを使用するかを選択できるようになりました。Windows AzureはWindows Server 2008 R2をベースにしていますが、ゲストOSのバージョンの違いにより、どのセキュリティパッチが当てられているかなどが異なってきます。
OSバージョンの指定のために、サービス構成ファイル(ServiceConfiguration.cscfg)のスキーマに変更が加えられました。ServiceConfiguration要素にオプショナル属性としてosVersionが追加され、次のようにバージョンごとに定まっている設定値を指定できます。
osVersion="WA-GUEST-OS-1.1_201001-01"
なお、使用するWindows Azure SDKのバージョンにより、選択可能なゲストOSのバージョンが異なってきます。例えば執筆時点では、Windows Azure SDK version 1.1は、Windows Azure Guest OS 1.1 (Release 201001-01)にのみ対応しています。
Windows Azure SDKとゲストOSの互換性についての詳細は、MSDNの「Windows Azure Guest OS Versions and SDK Compatibility Matrix」を参照してください。