[技術解説]

「SQL Azure」で得られるRDBMSならではのメリット

Windows Azure解体新書 Part4

2010年5月18日(火)砂金 信一郎

RDBだから可能なリスク管理やクラウド移行──オンプミレスと互換性が高いRDBMSがクラウド上で稼働することは、Windows Azure Platformの大きな特徴の1つだ。拡張性より整合性を重視するRDBMSならではのメリットを解説する。

クラウドが脚光を浴びるのと同時にKVS(キーバリューストア)への注目度が高まっている。分散化により高いスケーラビリティを確保できるなど、Webの世界に求められる大量データの高速処理というメリットが期待できるからだ。Windows Azureでも標準のストレージの1つとしてKVS「Azure Storage Table」を提供している。

一部ではKVSを“NoSQL”と呼ぶほどに期待が高まっているが、だからと言ってRDBMS(リレーショナルデータベース管理システム)が不要になるほど、データストアに対する要件は単純ではない。当然だが、クラウドにおいてもRDBMSが必要になる場面は多い。

加えて、企業が本格的にクラウドのサービスを活用するにあたって必ず意識しておきたい不確実性がいくつか残っている。1つ例を挙げるなら、法律や商習慣の整備がある。クラウドは進化の過程にあり、現時点ではクラウド化を想定した法律や商習慣の整備は十分ではない。今後どのような方向性で整備が進むかすら不透明だ。

こうした不確実性が残っている以上、クラウド上にアプリケーションやデータが取り残されるリスクは最小化しておくべきだろう。具体的には、クラウド上に構築したアプリケーションをオンプレミスに戻す策を講じておくことは、企業IT担当者が見据えておくべき最低限のリスク管理といえる。

移行や連携に伴う“泥臭さ”を解消

マイクロソフトはWindows Azure Platformの主要構成要素の1つとして「SQL Azure Database(以下、SQL Azure)」を提供している。これはSQL Serverをクラウドでも使いたいというユーザーの声に応えた側面も大きいが、企業ITとして本格的にクラウドを活用するうえで、前述したような不確実性を吸収する意味合いもある。オンプレミスのSQL Serverとの高い互換性を持たせているのは、そのためだ。

SQL AzureはSQL Serverのコア機能を備えたクラウド版DBである。ただし、SQL Serverのすべてを持っているわけではない。BIやレポーティング、分散トランザクションなどは、今後の拡張で対応してゆく。

クラウドへのスムーズな移行や、オンプレミスとクラウドのシームレスな連携は、言葉にすると簡単に感じるかもしれないが、一般に実現するのは難しい。ベストプラクティスがまだ整備されてない中、オンプレミスのスキーマとデータを抽出し、クラウドで正しく動作するように手探りで変更・確認していく作業は容易ではない。スケーラビリティの恩恵のためにKVSを選択する場合には、その代償として移行コストをかけたうえに、データの可搬性を犠牲にする側面があることを意識する必要がある。

だが、SQL Azureを用いることで、移行や連携に伴う泥臭い作業の発生を防げる。RDBMSであるSQL Azureは、SQL Serverと同様にSQL/T-SQLを実行できるからだ。SQL Server対応のアプリケーションであれば、大きな変更を加えることなくクラウド上で動かせる。

さらに、スキーマとデータを抽出して変換するクラウドへの移行支援ツールも用意しているので、思い立ったらすぐにデータベースを従量課金体系のクラウド上に移して使い始められる。反対に、クラウドの上のデータベースをオンプレミスに戻すことも簡単に実現できる。

同期フレームワークでシームレスな連携を実現

クラウドとオンプレミスとのシームレスな連携を可能にする機能もある。アプリケーションの同期フレームワーク「Sync Framework」をベースに開発した同期機能「SQL Azure Data Sync(以下、Data Sync)」が、それだ。

一般に2つ以上のデータを同期させる場合、更新差分を発見し、同期の制約などの競合を確認・解決しなければならない。しかし、Data Syncではウィザード形式の画面を使って差分の発見や競合の解決方法を設定し、SQL AzureとSQL Serverを同期させる(図4-1)。

図4-1 SQL Azure Data Sync によるオンプレミスのSQL ServerとクラウドのSQL Azureとの同期の仕組み
図4-1 SQL Azure Data Sync によるオンプレミスのSQL ServerとクラウドのSQL Azureとの同期の仕組み

Data Syncによるシームレスな連携は、ネットワーク遅延の解消に有効だ。クラウドで海外のデータセンターを利用する場合、ネットワークの遅延が無視できなくなるケースもある。そんなときはSQL Azureを介して手元のSQL Serverをキャッシュとして活用すれば良い。

反対に本社で管理するSQL Serverをマスターにして、海外拠点参照用のデータベースを米国、欧州、アジアで運用するSQL Azureに分散配置することも可能だ。最終更新や特定ユーザーを優先するといったルールをData Syncに設定すれば、データ更新時に競合が発生しても自動で解決できる。

Data Syncの元になっているSync Frameworkを使ってキャッシュを多階層に組み合わせ、Silverlightなどで実装したクライアント・アプリケーションに持たせる手もある。そうすれば、データアクセス層の複雑さを意識せずに、データ活用の自由度を格段に高めるクラウド連携アプリケーションを構築できる。

もちろん、SQL Azureへの接続と更新は非同期で実行できるので、オフラインで利用することも可能だ。携帯デバイスを使うなら、フィルタリング機能によってデータベースの一部を同期処理の対象にすることで通信帯域やデバイス側のストレージ容量を押さえられる。

なお、本稿執筆時点でData Syncは開発者向けにプレビュー版を提供している段階であり、近々正式サービスの一部として提供する予定だ。

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
関連キーワード

Azure / SQL Server / RDBMS / Microsoft / Azure AD / SQL Azure

関連記事

トピックス

[Sponsored]

「SQL Azure」で得られるRDBMSならではのメリットRDBだから可能なリスク管理やクラウド移行──オンプミレスと互換性が高いRDBMSがクラウド上で稼働することは、Windows Azure Platformの大きな特徴の1つだ。拡張性より整合性を重視するRDBMSならではのメリットを解説する。

PAGE TOP