テスターですが何か?

ホビープログラマ略してHPです

【日本語訳】Exploring Windows Azure Storage あとがき

leave a comment »

こちらのちMSDNのチュートリアル「Exploring Windows Azure Storage」を個人的に日本語訳してみました。まとめはこちらのページから見ることができます。

Windows Azure Platformには使い慣れたSQL Serverと互換性のあるSQL Azureがあります。「SQL Serverがあるのに、なぜAzure Storage Serviceを使うのか?」という疑問に対して軽はずみに「SQL Azureでいいんじゃね?」と答えがちですが、Azure Storage Service の使い所について考察しようと思います。

Table

ほぼ無限にスケールアウト可能な Key-Value ストレージです。リレーショナルなデータ構造ではなかったり、RDBに比べてクエリに制限があったりしますがデータ量に対してパフォーマンスの劣化が少ないと言われています。SQL Serverはスケールアウトさせることが難しいため、SQL Serverのボトルネックを解消させるために利用することが考えられます。(上記データ構造の違いから移行は簡単ではありませんが...)

また、SQL Azureにくらべてデータ量に対する課金額が小さいのもメリットです。

SQL AzureにFederation機能が提供された今、正直言うと所謂BigDataレベルのデータ量でなければ積極的に利用する理由を見つけることが困難ですが、以下の基準でTable Storageを利用を検討してもいいかもしれません。SQL AzureかTable Storageかの二者択一ではなく、必要に応じて併用していくのがいいのではと考えています。

  • リレーショナルでないデータ(リレーショナルなデータはSQL Serverと、使い分ける)
  • 厳密なトランザクション制御は求められず、基本的にデータを追加する操作となる
  • GB級のデータ量になる

Blob

ファイル(ログ、画像、動画、ドキュメント etc)の保管に利用します。オンプレミス環境では、ユーザーからアップロードされた画像・動画や、システムで生成した帳票(PDF, EXCEL など)をバイナリとしてSQL Serverに保存しているケースが多いと思いますが、ファイルはレコードにくらべてサイズが大きいのでSQL Azureでは課金額が大きくなってしまいます。

SQL Azureもデータ量の上限が150GBに引き上げられましたが、動画を扱っていると上限に引っかかってしまう可能性があります。仮に150GBのデータを保管すると仮定すると、Storage Serviceでは約1,800円(12円/GB)、SQL Azureでは約43,000円になります。Tableでも説明しましたが、サイズの大きいデータはSQL Azureではなく、Azure Storage Serviceへ格納したほうがコストメリットがあります。

その反面、アプリケーションの改修コストやSQL AzureとBlob間で分散トランザクション制御ができないリスクもあるため、データ量、データ保管コスト、アプリケーション改修コスト、トランザクション制御リスクを考えて判断する必要があります。

Queue

WebロールからWorkerロールへの非同期連携に使われるようです。オンプレミス環境でWebサーバーからバッチサーバーへ非同期に連携する際にMSMQを利用するのと同じでしょうか。N個のインスタンスのWebロールとN個のインスタンスのWorkerロールで連携を行う際に、Queueを介して行えばどのインスタンスに対して処理の依頼を行えばいいのかを意識する必要がなくなります。あまり話すことがないです。

Drive

積極的に採用する理由が見当たりません...SQL Azure、Table、Blobではなく、Driveをしなければならないと言うことは消極的な理由(ファイルシステムAPI経由でなければサポートされない)しか思い浮かばないのですが。NTFSのドライブとして扱えるということはネットワークドライブとしてマウントできる?できればエクスプローラー経由でアクセスできるメリットはあります。ただ、ロックや同時更新制御ができないので、中途半端な存在です。

Windows Azure上のストレージの考え方としては基本はSQL Azureを使い、容量の大きなデータをStorage Serviceへ格納することを検討するのが現実的な解だと思います。Windows Azureを検討するということは、現在SQL Serverを利用しているケースが多いと思うので、巨大なデータでなければ素直にSQL Azureから始めるのがいいです。無理にStorage Serviceを使おうしても、そのための改修コストがバカにならないと思います。

Written by david9142

2011年12月30日 @ 1:35 PM

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。