【MS tech・days】Windows Azureのストレージ機能はクラウドを考慮した仕組みに | RBB TODAY

【MS tech・days】Windows Azureのストレージ機能はクラウドを考慮した仕組みに

エンタープライズ その他
マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏
マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏 全 11 枚
拡大写真
 クラウド上にファイルを保存する場合、複数台のサーバに分散する可能性がある。また、大容量のファイルを転送する場合、回線の状態によって時間がかかったり、タイムアウトしたりすることも考えられる。Windows Azureには、これらの問題を考慮したクラウド上の仮想ストレージを扱う機能「Windows Azureストレージ」が搭載されている。

 マイクロソフトの開発者向けイベント「Microsoft tech・days Japan 2009」で27日に開催された、マイクロソフト デベロッパー&プラットフォーム統括本部 カスタマーテクノロジー推進部 プラットフォームストラテジストの佐藤直樹氏によるブレイクアウトセッション「Windows Azure ストレージサービス」では、Windows Azureストレージの概要が説明された。

 Windows Azureストレージでは、ファイルストレージの「ブロブ」、構造化ストレージ「テーブル」、メッセージ交換のための「キュー」の3種類を用意している。いずれも、開発者はクラウドのどこにデータがあるかを気にすることなく、簡単なAPIで利用できるようになっている。

 ブロブは、バイナリデータを含むファイルを扱う機能。1つのブロブにつき、50Gバイトまで扱える。写真はもとより、動画も扱える容量だ。特徴は、「ブロック」と呼ばれる単位で分割できることにある。「ネットワークでエラーが起きるたびに、送信をしなおすようでは困る。そのため、ブロックに砕けるようになっている」とする。ブロブの送受信はこのブロック単位で行い、インターネットの回線状況により、順番に受信できなかった場合の再配置や、欠けていた場合の再送信リクエストなどもできる。

 テーブルは「リレーショナルがない、大きなフラットなテーブル」と表現される構造化ストレージで、データベースの考え方に似ている。「1つのテーブルで、数Tバイトを扱うことを前提にしている」としており、たとえば日々のPOSデータをすべて蓄積し、解析するといったことに向いている。また、クラウドでは同一のテーブルであっても複数のサーバに分散する可能性があるため、「パーティション」の概念を採用しそれを防いでいる。

 通常、リレーショナルデータベースでは、マスターキーフィールドのみが必須となる。しかし、Windows Azureストレージでは、「パーティションキー」と「ローキー」の2つ必須とする。たとえば、“福利厚生”や“勤怠”などの文書管理テーブルを作成する場合、パーティションキーにこれらの文書の種類を入力。パーティションキーに同じ文字を入れると、同じパーティションと認識され、1つのサーバにまとめて保存される。「頻繁にアクセスするデータ同士は近くにあったほうがいい。同一のパーティションは同一のマシンに置いて、パフォーマンスを最適化する」というのが理由だ。

 なおテーブルにはリレーショナルの概念がないため、用途によってSQL Servicesと使い分けるといいだろう。

 キューは、WebロールとWorkerロールの通信で利用する。「Windowsなどのアプリケーションを作る際に、キューではなく、データベースやTCP/IPを用いることが多かった。しかし、相互運用ではキューは重要で、クラウドでもこれが大きな役割を果たす」という。キューは、複数のメッセージで構成され、処理中は見えなくなっており、終了すると削除、また処理が止まった場合は復活するという仕組みを持っている。これも、インターネットでつながるクラウドを考慮した仕組みとなっている。

《安達崇徳》

特集

【注目記事】
【注目の記事】[PR]

この記事の写真

/

関連ニュース