[今週の技術解説] 【これはイイ】 クラウドがデータ ハブになる SQL Azure の活用法

※ この記事は、2 週間前 『20 万人の IT エンジニアが愛読する、現場に役立つニュースレター TechNet Flash』 の特集として配信されたものです。
情報システムの設計 / 構築 / 運用に役立つ情報をお求めの方は、ぜひこの機会にご登録ください。

 

------------------------------------

想像してください。いま手元に 1 つの RDB (リレーショナル データベース) があるとします。業務提携や経営統合などにより、この RDB を共有する必要が出てきました。さぁどうしましょう?
ミラー? 定期的に複製? 既存のテクノロジーを駆使して解決できないこともありませんが、ネットワーク構成にも影響が出て、あまりエレガントではありません。そこでおすすめしたいのが、SQL Azure Sync Service および Sync Framework の活用です。

マイクロソフトのクラウド基盤である Windows Azure platform の特徴の 1 つは、クラウド上の RDB である「SQL Azure」を提供していることです。最近では最大 50 GB の大規模データベース対応や、空間型データ形式のサポートなどこれまでの制限事項が徐々に解除され、オンプレミスの SQL Server に引けを取らない RDB として成長しつつあります。今後は Reporting Service の提供なども予定されており、SQL Azure を使用した業務アプリケーションやサービスを実現しやすくなってきました。
そうした進化の中でも特におすすめなのが、データベース間の「同期」機能です。冒頭に書いた課題である「企業間のデータベース複製」は、古くからのテクノロジーでも実現できそうでありながら、いざ構築しようとするとデータベース以外の考慮事項も多く面倒なものです。

SQL_Azure_Management01マイクロソフトは、クラウド シナリオの 1 つとして 「SQL Azure を中心としたデータ統合シナリオ」 を掲げています。これは、これまで実現が難しかった企業内拠点間および企業間のデータベースの統合を、SQL Azure をハブとして使用することで実現しようという考え方です。マスター データベースとなる SQL Azure は中立なクラウド上に存在しているため、企業内から SQL Azure に接続できさえすればよく、社外からの社内の SQL Server にアクセスさせる経路を確保する必要はありません。
データ同期エンジンである Sync Framework は、SQL Server 2008 が持つ「変更検出」機能を使用したデータ プロビジョニングが可能であり、それぞれの変更点を検出して双方向の同期を高速に行うことができます。最新版の Sync Framework V2.1 ではデータ プロバイダーの 1 つとして SQL Azure もサポートされ、クラウドをハブとした広域なデータ同期環境を構築することができます。

SQL Azure をサポートする同期機能でもう 1 点重要な機能が、 「SQL Azure Sync Service」 です。これは SQL Azure 間のデータベース同期を実現するものであり、2010 年 10 月時点ではプレビュー版として公開されています。
なぜこの機能が重要なのでしょう? 

SQL_Azure_Management02.pngご存知のようにクラウド上にサービスを配備する場合にはデータセンターのロケーションを選択する必要があります。実は、この時点の判断がその後のパフォーマンスを左右すると言っても過言ではありません。なぜならば、データセンター内の通信と比較してデータセンター間の通信は遅くなるはずですし、ましてや国をまたがった場合の影響は顕著です。しかし、ワールドワイドにサービスを展開する場合、利用者を特定のデータセンター周辺に引っ越してもらうわけにはいきませんから、できる限り全利用者にとってネットワーク遅延の影響の少ない場所にデータベースを展開したいと考えるはずです。でも...当然ながら現実は不可能ですから、各データセンターにデータベースを設置し、それぞれを同期する..というソリューションが現実的な解決策となるでしょう。

SQL Azure Sync Service は、まさにそれを実現するソリューションです。ポータル画面で同期の設定をするだけで、定期的にデータベースの差分同期を実現できます。しかも一切コードを書かずに。これは便利です。企業がアジア、アメリカ、ヨーロッパにまたがっている場合には、それぞれのデータセンターにデータベースを置き、そこから企業内の SQL Server に同期を行えば、タイムラグによるストレスを最小限に抑えることができるでしょう。

クラウドのメリットとして「Time To Service」が挙げられることが多いですが、これまで難しかったソリューションを比較的簡単に実現する...というのもクラウドの大きなメリットであり、エンジニア心をくすぐる点でもあるのです。