【ThinkIT連載】SQL Azureを見極める、完結。
他媒体で恐縮だが、ThinkITでSQL Azureの連載を担当させていただいており、今日3回目のアップで
無事完結となった。SQL Azure(正確には SQL Azure Database)については期待をいただいていながら
なかなか情報をだせずに申し訳なく思っており、この連載記事が皆様の理解の助けになれば幸いである。
Windows Azureというかクラウド文脈では、スケーラブルなKeyValueストア的な話が多くなりがちであるが、
整合性や資産利用の観点で、クラウド上で利用できるリレーショナルデータベースであるSQL Azureが
よい選択肢になる可能性もある。今回の特集ではSQL Azureの概要理解と使いどころを判断する材料と
していただくことを目的として、下記3本のコンテンツを書かせていただいた。
第1回 雲の上のリレーショナルデータベース
第2回 SQL Azureの使い勝手をSQL Serverと比較する
第3回 マルチテナント・サービスの実現に向けて
私自身、営業として製品を売り込む立場ではなく、正しい技術情報を判断基準と合わせて提供することを
本分としているため、ややネガティブな側面にも触れている。
例えば、初期版ではデータベースあたりの上限サイズが1GB、10GBの2タイプ提供されるが、どちらにせよ
エンタープライズ向け用途の数TBのデータベースをそのまま展開するにはやや非力と思われるだろう。
可用性を優先して3カ所にレプリケーションされる現在のアーキテクチャからくる制約ではあるのだが、
小さすぎて「うちでは使えないな」と見切られる方もいるかもしれない。
今後のサービス展開の中で、上限サイズの拡張は行われるだろうが、本質的にはこの制約を是として
分割可能なデータモデルにいかに適用できるか?よりスケーラビリティを優先したKey Valueストアに
移行するか?オンプレミスに止まるか?を、将来を見越してじっくり検討することが重要と考える。
汎用的な最適解は、残念ながら今のところ存在しない。
中の人的発言になってしまい恐縮だが、将来にわたってリレーショナルデータベースにデータストアを
固定したくないという企業および開発者のみなさんには、将来行使できる選択オプションの幅が広い方が
リスクが少ない。すなわち、クラウド時代に向けたデータストアに悩むくらいなら、SQL Azureか
SQL Serverか、あるいはデータアクセス部分に手を加えてWindows AzureのTable/Blobを利用するかを
選べるマイクロソフトのシナリオはのっておいて損はないのではなかろうか。
ただ、実際にSQL Serverで使っていたデータベースを機能的にはサブセットでしかないSQL Azureに
のせようとすると大変なんでしょ?というご意見もごもっとも。確かにツール一発、きれいごとですまない
こともある。こちらの記事には、現時点で自動化されていないスクリプトの変更手順も記載させていただいている。
トランザクション整合性への配慮など、アーキテクチャ変更が必要なKeyValueストアへの移行に比べれば
たいした話ではないかもしれないが、現場対応の面倒くささの見積もりの参考にしていただきたい。
スクリプトの変換ウィザードくらいマイクロソフトが提供すべきものなのだろうが、現時点そこまで手が
回っておらず、手順はほぼ決まっているので、いっそ誰かが作ってCodeplexにでもあげてもらえると
世界中のみなさんが幸せになれるだろう。