BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Azure ストレージオプション

Azure ストレージオプション

ブックマーク

原文(投稿日:2009/12/22)へのリンク

最初にいくつかの技術用語から。Windows Azure Platform という言葉は、すべての Microsoft のクラウド提供をカバーしている。Windows Azure Platform の内部には、三つの主要な提供がある。仮想マシンコンポーネントは Windows Azure と呼ばれる。また Compute についても知って欲しい、それは Web サイトをホスティングするための Web ロールとバックエンド処理を実行するための Worker ロールをサポートしている。SQL Azure は SQL Server に基づいており、多くの同じ機能を持っている。最後に Windows Azure platform AppFabric がある。それは Windows Server AppFabric と混同させられてはいけない。Azure AppFabric は、認証の作成と特にファイアウォールを横断してメッセージを簡単にやり取りするためのメッセージバスである。

Azure Platform は、場合によってはまったく違うものを使う選択をすることになりかねない、ストレージの過剰なオプションを提供する。Windows Azure のコアは、ブロブ(Blob Binary Large Object)ストレージである。ブロックブロブとページブロブの 2 種類のブロブがある。ブロックブロブは、200GB のデータまで保存でき、ストリーミングに最適化されている。ページブロブは 1TB のデータまでサポートしており、ランダムアクセスに向いている。ブロブは、さらに他の多くの機能の基盤となるために、ユーザが REST スタイルの HTTP リクエストを使って直接ダウンロード可能な、イメージやビデオのようなリソースを保存するのに向いている。

ページブロブの上で動作しているのは、Windows Azure XDrive である。XDrive は、あたかも NTFS でフォーマットされたハードディスクのようにマウントすることができ、通常のファイル IO API でアクセスすることを可能にする。しかしブロブでもあるので、アトミック単位としてコピーされる。

もしより構造化されたデータを探しているならば、いくつかのオプションがある。巨大な量の非リレーショナルデータを保存するための、現時点での一番の選択肢は Table Service である。Azuru Table のそれぞれのエンティティは 1MB の大きさしかないので、全体の Table のサイズには物理的な制限は無く、テラバイトの大きさまでスケールするはずである。それらの大きなサイズにもかかわらずテーブルは実際にはかなり制限的である。少数のデータタイプしかサポートしていないため、開発者は最初から分割について考えておかなければならない。

もし JOIN のようなリレーショナル概念を使いたいなら、SQL Azure がより良い手段である。SQL Azure は、標準の ODBC や ADO.NET クライアント API を含む最新のデータベースで期待するほとんどの機能をサポートしている。けれども、最大のデータベースで 10GB しか保存できないというかなり重大なサイズ上の制限がある。もしデータベース間の問い合わせがサポートされておらず、どんな UNION あるいは JOIN もメモリ内で実行されることを強制しているということが事実でなかったなら、複数のデータベースをまたがって分割することはたいした事ではないだろう。

最後に、メッセージストレージオプションがある。メッセージストレージは、短期間のキューイングとストアアンドフォワード方式のアーキテクチャのために作られている。Azure のキューサービスは 8KB 以下のサイズの XML ベースのメッセージをサポートする。もしより大きなデータを送る必要があるなら、データは他の場所に保存し、メッセージの URI あるいはプライマリキーで参照すべきである。キューメッセージは、受信された時は“隠されて”いる。アプリケーションは、タイムリーな方法でメッセージを削除することを要求されている。さもなければ、最終的にメッセージは再び見えるようになり再送される。設計の観点から、これはメッセージ処理は冪等でなければならないことを意味する。現在のところキュー内のメッセージの数には物理的な制限は無い。

Azure AppFabric もまたメッセージキューを、それらは AppFabric Service Bus Message Buffer と呼ばれているが、提供する。Message Buffer はデフォルトで 10 メッセージしかサポートしていない。しかし、最大 50 まで保存するように構成することができる。バッファ内のメッセージはメモリに保存される。したがってサーバがクラッシュすると生き残ることができず、受信の終了が取り残されるあるいは少しの瞬間以上オフラインにするかもしれない状況でのそれらの制限された使用を引き起こしている。

この記事に星をつける

おすすめ度
スタイル

BT